El software de máquina virtual (software VM) es un simple emulador para una computadora, todo creado en software. Se instala un programa de VM sobre la cima de otro sistema operativo, conocido como sistema operativo anfitrión, el cual podría ser Windows o GNU/Linux. Luego se pueden iniciar computadoras virtuales en el software de VM, cada una de las cuales se denomina sistema operativo invitado o máquina virtual. Cada sistema operativo invitado tiene su propia asignación de memoria, adaptadores de red virtualizados, discos duros, y otros componentes de hardware. Los diferentes invitados y el anfitrión parecen ser sistemas operativos verdaderamente independientes, todos ejecutándose sobre el mismo hardware.
El software de VM es cargado en el sistema operativo anfitrión, como cualquier otra aplicación. Después de instalarlo su trabajo es interactuar con todos los componentes de hardware y crear entornos de hardware virtualizados, de tal manera se puedan instalar otros sistemas operativos y aplicaciones. El sistema operativo o la aplicación no es consciente se está ejecutando en una máquina virtual. Por lo tanto se pueden instalar cuatro sistemas operativos invitados diferentes, cada uno con una tarjeta de interfaz de red (NIC) virtualizada. Esto significa a cada uno se le puede asignar una dirección IP única y conectarse e interactuar como si estuviese instalado sobre cuatro sistemas de cómputo diferentes y conectado con un switch.
La virtualización es la herramienta fundamental del software de VM. Este software toma la memoria física, los procesadores, la tarjeta de red (NIC), y otros componentes de hardware, para luego crear componentes virtualizados para interactuar con los diferentes sistemas operativos invitados. El software de VM debe rastrear el intercambio entre los componentes físicos y virtuales para garantizar todo funcione apropiadamente.
Cuando se diagnostican problemas de un sistema operativo, es importante recordar si se trata de un sistema operativo anfitrión o invitado. Aunque parecen funcionar de la misma manera, existen sutiles diferencias entre los dos. Un sistema operativo anfitrión accede directamente al hardware, y el sistema operativo invitado accede al hardware virtual a través de un emulador.
Fuentes: