2012-01-22 15 views
9

ho cercato di capire come funziona VMware (in particolare quando è installato Linux) e ho un paio di domande:Le macchine virtuali

  1. Cosa succede quando VMware incontra un comando come push cs? Specificamente cs poiché il suo livello di privilegio è 0 e VMware gira su 1 livello di privilegio, quindi presumo che in qualche modo debba tradurlo in qualche altro comando.

  2. Memoria virtuale: come funziona su una macchina virtuale? ci sono 2 livelli di traduzione - memoria virtuale di processo -> memoria fisica della macchina virtuale -> memoria fisica della macchina reale? come verrebbe notificato VMware quando una pagina viene scambiata dalla macchina reale?

+1

Buone domande. –

+1

Domanda completamente fuori tema. – bmargulies

+1

Buona domanda. Sono interessato alla risposta. – alexy13

risposta

1
  • maggior parte delle istruzioni eseguite direttamente sulla CPU. Ma le istruzioni privilegiate causano un'eccezione, il gestore le emula.
  • Ora capisco cosa intendi con l'esempio push cs. Intendi istruzioni che si comportano silenziosamente in modo diverso su diversi livelli di privilegio. The wikipedia article on x86 virtualization dice che sono tradotti in binario, cioè c'è una fase di ricompilazione prima di eseguire il codice sulla CPU dell'host.
  • Nei vecchi x86, vmware mantiene le tabelle delle pagine shadow. Le tabelle delle pagine degli ospiti devono essere emulate, per consentire a vmware di tenere traccia della vista del sistema operativo guest delle tabelle di pagina. I nuovi x86 hanno estensioni di virtualizzazione che consentono diversi livelli di tabelle di pagine in modo efficiente.
Problemi correlati