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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

2.3.2 Problemi nella virtualizzazione software-only<br />

Abbiamo visto il sistema <strong>di</strong> protezione ad anelli dei processori x86 e il fatto che la<br />

virtualizzazione software-only implica la tecnica del “ring deprivileging”, che prevede che<br />

tutti i guest OS siano eseguiti a un livello <strong>di</strong> privilegio maggiore <strong>di</strong> 0 (in generale al livello 1 o<br />

al livello 3).<br />

I problemi che s’incontrano nel virtualizzare l’hardware con tecniche solo software sono<br />

molteplici [22]:<br />

Ring aliasing<br />

Il ring aliasing si riferisce al problema che sorge quando un software viene eseguito a<br />

un livello <strong>di</strong> privilegio <strong>di</strong>verso da quello per il quale è stato scritto.<br />

Address-space compression<br />

Il sistema operativo si aspetta <strong>di</strong> avere accesso a tutto lo spazio in<strong>di</strong>rizzabile virtuale<br />

del processore. L’hypervisor deve riservarsi una porzione dello spazio in<strong>di</strong>rizzabile del<br />

guest; le istruzioni dell’hypervisor e le strutture dati, in questo modo, usano una<br />

quantità sostanziale dello spazio in<strong>di</strong>rizzabile del guest. In un modo alternativo,<br />

l’hypervisor può usare uno spazio <strong>di</strong> in<strong>di</strong>rizzamento <strong>di</strong>verso, ma anche in questo caso<br />

usa una quantità, seppur minima, dello spazio virtuale in<strong>di</strong>rizzabile del guest, per le<br />

strutture <strong>di</strong> controllo che gestiscono le transizioni tra l’OS guest e l’hypervisor.<br />

L’hypervisor, inoltre, deve evitare l’accesso del guest alla porzione dello spazio<br />

in<strong>di</strong>rizzabile che usa, altrimenti si può compromettere l’integrità dell’hypervisor (se il<br />

guest può leggere o scrivere in quella porzione). I tentativi del guest <strong>di</strong> accedere alle<br />

porzioni <strong>di</strong> spazio riservate devono generare transizioni verso l’hypervisor, che può<br />

emulare o supportarle; l’espressione “address-space compression” in<strong>di</strong>ca appunto i<br />

tentativi <strong>di</strong> proteggere le parti <strong>di</strong> memoria riservate e <strong>di</strong> supportare gli accessi del<br />

guest ad esse.<br />

Non-faulting access to privileged state<br />

La protezione “privilege-based” evita che software senza <strong>di</strong>ritti <strong>di</strong> privilegio acceda<br />

alla CPU; nella maggior parte dei casi i tentativi <strong>di</strong> accesso si risolvono in guasti<br />

(faults), che permettono all’hypervisor <strong>di</strong> emulare l’istruzione richiesta dal guest.<br />

Tuttavia abbiamo visto che ci sono istruzioni che non generano faults quando sono<br />

eseguite senza i privilegi sufficienti.<br />

38

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

Saved successfully!

Ooh no, something went wrong!