2012-01-22 13 views
9

He estado tratando de averiguar cómo funciona VMware (en concreto cuando se instala Linux) y tengo un par de preguntas:máquinas virtuales

  1. ¿Qué pasa cuando VMware se encuentra con un comando como push cs? Específicamente cs ya que su nivel de privilegio es 0 y VMware se ejecuta en 1 nivel de privilegio, así que supongo que de alguna manera tiene que traducirlo en algún otro comando.

  2. Memoria virtual: ¿Cómo funciona en una máquina virtual? ¿Hay 2 niveles de traducción - memoria virtual de proceso -> memoria física de la máquina virtual -> memoria física de la máquina real? ¿Cómo se notificaría VMware cuando la máquina real intercambia una página?

+1

Buenas preguntas. –

+1

Pregunta completamente fuera de tema. – bmargulies

+1

Buena pregunta. Estoy interesado en la respuesta. – alexy13

Respuesta

1
  • mayoría de las instrucciones se ejecutan directamente en la CPU. Pero las instrucciones privilegiadas causan una excepción, el manejador las emula.
  • Ahora veo lo que quiere decir con el ejemplo push cs. Te refieres a instrucciones que se comportan silenciosamente de forma diferente en diferentes niveles de privilegios. The wikipedia article on x86 virtualization dice que son binarios traducidos, es decir, hay una fase de recompilación antes de ejecutar el código en la CPU del host.
  • En x86 anterior, vmware mantiene tablas de páginas ocultas. Deben emularse las tablas de la página de invitados para permitir que vmware realice un seguimiento de la vista que tiene el sistema operativo invitado de las tablas de página. Los nuevos x86 tienen extensiones de virtualización que permiten varios niveles de tablas de páginas de una manera eficiente.
Cuestiones relacionadas