Um software como o VMware é executado no espaço do usuário ou no espaço do kernel?

4

VMware é um software instalado pelo usuário. Portanto, ele deve ser executado no espaço do usuário fornecido pelo SO subjacente. No entanto, ele executa OS-es que são totalmente operacionais e precisam ser executados no modo kernel. Então, onde é executado?

    
por quack quixote 20.06.2010 / 12:08

4 respostas

6

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).

por 20.06.2010 / 13:56
2

O VMware funciona, como uma versão para download, como um programa no nível do usuário. Ele usa um monitor de máquina virtual para interceptar instruções x86 reais e um driver de dispositivo para executar simultaneamente um sistema operacional convidado com implementação de virtualização de CPU para obter virtualização assistida por hardware para executar os convidados por meio de seu VMM enquanto ainda está no topo de um sistema operacional. e sendo um processo ou algo assim. A mesma coisa é com o Virtualbox - eles são programas que normalmente não rodam no zero (e poderiam) e eles mesmos usam um VMM e CPU VT da Intel e tal para interceptar o x86 e "enganar" o sistema operacional convidado a pensar que é executando a máquina inteira e emula hardware de suporte que normalmente não é realmente existente. De certa forma, é como emular e não imitar misturados. Por exemplo, provavelmente emula BIOS / firmware, pois não há métodos de virtualização para isso. Provavelmente também emula hardware herdado mais antigo que o Windows 95/98 virtualizado pode precisar.

Em simplicidade, ele usa recursos de CPU que auxiliam no processamento de virtualização para permitir que outro sistema operacional seja executado na mesma CPU por meio de um complexo processo de emulação de monitoramento / substituição sem ter que ser realmente um sistema operacional básico.

    
por 16.10.2014 / 23:16
1

Depende apenas do tipo de programa VMWare que você executa. Alguns rodam no kernel, alguns rodam no espaço do usuário.

    
por 20.06.2010 / 14:24
0

Descontando o fato de que software como o VMWare ESX é um sistema operacional (uma versão modificada do Linux), o topo de outra versão do sistema operacional é executado no espaço do kernel e no espaço do usuário, instala drivers (que rodam no kernel) para todas as tarefas privilegiadas (rede, monitoramento e assim por diante).

    
por 20.06.2010 / 12:12