O VMWare fornece um monte de projetos e a Vinko Vrsalovic já apontou que o VMWare ESX é de fato um sistema operacional próprio.
Geralmente, é possível executar monitores de máquina virtual (VMM), como VMWare Workstation, QEmu ou Virtualbox, completamente no espaço do usuário. Eles apenas pegam uma imagem de disco ou CD-ROM do sistema operacional para rodar e começar a emular um PC, interpretando todas as instruções e emulando acessos a dispositivos. Por motivos de desempenho, o software de virtualização, no entanto, tenta evitar a emulação o mais rápido possível, porque é muito mais rápido executar um fluxo de instruções no hardware real em vez de emulá-lo.
Várias abordagens são usadas para acelerar o processo de virtualização:
-
Reescrita binária : seu sistema operacional virtualizado executa um kernel do SO e aplicativos de espaço do usuário. Para aplicativos de espaço do usuário, as mesmas restrições em termos de execução de instruções aplicam-se ao próprio monitor de máquina virtual, portanto, não há problema em executar esses aplicativos na CPU nativa. No entanto, para a parte do sistema operacional, você precisa emular o comportamento da CPU subjacente, já que seu VMM não é capaz de fazer isso sozinho. O que você precisa agora é detectar todas as opções entre o código do usuário e o código do kernel, para que você possa alternar com eficiência entre execução nativa e emulação. O VMWare e o Qemu aplicam a regravação binária ao SO virtualizado à medida que ele é executado e, assim, interceptam todos esses switches.
-
Assistência de hardware : Com a crescente popularidade dos VMMs (que existem desde os anos 1970), a Intel e a AMD começaram a fornecer extensões de hardware para seus conjuntos de instruções que facilitam a implementação de um VMM. no espaço do usuário.
-
Extensões do kernel : O VMWare e o Qemu também permitem que você instale um driver de dispositivo no sistema operacional do host que permite acelerar a execução do código do kernel e dos acessos ao dispositivo executando diretamente no modo kernel.
-
Drivers de dispositivos de passagem : o dispositivo de E / S é outro problema de desempenho. Normalmente, um VMM implementará um conjunto de dispositivos virtuais que se comportam de maneira semelhante às suas contrapartes no mundo real. Essa etapa de emulação atrasa a E / S e é um grande gargalo de desempenho ao virtualizar um sistema operacional. Para evitar isso, os VMMs também permitem a instalação de vários drivers de dispositivo no sistema operacional convidado virtualizado que estão cientes do hardware convidado e permitem a passagem direta de um dispositivo do sistema operacional hospedeiro para o convidado sem a etapa de emulação. (Isso, no entanto, só funciona se você executar exatamente uma instância do sistema operacional em seu host, porque ninguém mais poderá acessar o dispositivo se você passá-lo para o convidado).