19.05.2013 Views

Facoltà di Ingegneria Tesi di laurea ANALISI DELLE TECNOLOGIE ...

Facoltà di Ingegneria Tesi di laurea ANALISI DELLE TECNOLOGIE ...

Facoltà di Ingegneria Tesi di laurea ANALISI DELLE TECNOLOGIE ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Si nota che l’istruzione jge è cambiata in due istruzioni translator-invoking (anche se il co<strong>di</strong>ce<br />

viene presentato in forma testuale, si deve ricordare che in realtà il BT produce <strong>di</strong>rettamente il<br />

co<strong>di</strong>ce binario); le istruzioni da mo<strong>di</strong>ficare (e quin<strong>di</strong> tradurre), riguardano soprattutto le<br />

istruzioni privilegiate. Ogni invocazione del traduttore produce un compiled code fragment<br />

(CCF) e l’insieme dei CCF costituisce il co<strong>di</strong>ce tradotto; dal momento che 49 non è un<br />

numero primo, non viene tradotto il blocco che ritorna 1 in isPrime, perchè il BT cattura una<br />

traccia <strong>di</strong> esecuzione del co<strong>di</strong>ce guest, traducendo le istruzioni maggiormente eseguite durante<br />

le esecuzioni del guest, e lasciando in un secondo momento la traduzione <strong>di</strong> istruzioni<br />

eseguite <strong>di</strong> rado.<br />

Quin<strong>di</strong> la Binary Translation sta tutta nell’analizzare il co<strong>di</strong>ce che il kernel dell’OS guest<br />

dovrebbe eseguire e nel sostituirlo con qualcosa <strong>di</strong> sicuro (virtualizzato). Chiaramente il fatto<br />

<strong>di</strong> sostituire il co<strong>di</strong>ce con uno più sicuro è molto meno <strong>di</strong>spen<strong>di</strong>oso <strong>di</strong> far risultare le istruzioni<br />

privilegiate come “traps” e gestire queste ultime in seguito. Tuttavia ciò non significa che<br />

33

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!