Diferença entre máquina virtual e um hipervisor

29

Se você pesquisar no Google o termo "hypervisor", obterá infinitas definições de que um hypervisor também é conhecido como monitor de máquina virtual ou gerente de máquina virtual e que é uma forma de virtualização de hardware. Mas, sendo novato em VMs e seus conceitos, essa é uma definição difusa para mim.

Então, qual é a diferença - e / ou relacionamento entre - uma máquina virtual e seu hypervisor? Alguém pode dar um exemplo concreto?

pnongrata
fonte
Consulte o artigo da Wikipedia sobre hipervisores. Existem alguns tipos diferentes, que podem ser parcialmente por que você está confuso. pt.wikipedia.org/wiki/Hypervisor
Zoredache

Respostas:

17

O hypervisor é o dispositivo ou software que executa a máquina virtual. É normalmente responsável pela alocação dos recursos, fornecendo a interface entre a máquina virtual (o "convidado") e o sistema host, bem como qualquer software de gerenciamento.

Portanto, se você estiver usando o VMware Workstation para executar uma máquina virtual Windows 7, o VMware Workstation é o hipervisor.

Codificação de gorila
fonte
5
Por que eles não podem simplesmente dizer isso na documentação de referência?!? Obrigado!
pnongrata
10
Eles não querem facilitar as coisas para você, ou você não pagará pelo contrato de suporte. ;)
Coding Gorilla
Então ... Qual é a diferença entre VMM e Hypervisor?
Allyourcode # 1
@allyourcode Depende de qual "VMM" você está falando e em que contexto.
Coding Gorilla
Excelente resposta, votada. Mas e os emuladores de software ? Poderíamos dizer que o emulador (DOSBox) é um software que executa a máquina virtual?
john cj
5

Verifique este link. http://blogs.msdn.com/b/virtual_pc_guy/archive/2006/07/10/661958.aspx

A resposta é do blog de virtualização de Ben Armstrong

aqui estão dois significados para 'VMM'. O primeiro é o 'gerenciador de memória virtual' - isso faz parte do sistema operacional Windows e não tem nada a ver com a virtualização do computador - e tudo a ver com o gerenciamento de memória do sistema operacional. Não é isso que estou discutindo hoje :-)

O segundo significado é 'Monitor de máquina virtual'. Existem vários programas e implementações diferentes que usam o apelido 'Virtual Machine Monitor'. Nos termos mais simples - o VMM é o software responsável por monitorar e impor políticas nas máquinas virtuais pelas quais é responsável. Isso significa que o VMM controla tudo o que acontece dentro de uma máquina virtual e, quando necessário, fornece recursos, redireciona a máquina virtual para recursos ou nega acesso a recursos (diferentes implementações de VMMs fornecem ou redirecionam recursos para vários níveis - mas isso é tópico de discussão para outro dia).

Classicamente, existem dois tipos de VMM.

Um VMM tipo II é aquele executado em cima de um sistema operacional de hospedagem e gera máquinas virtuais de nível superior. Exemplos de VMMs do tipo II incluem o ambiente JavaVM e .Net. Esses VMMs monitoram suas máquinas virtuais e redirecionam solicitações de recursos para APIs apropriadas no ambiente de hospedagem (com algum nível de processamento no meio).

Um VMM tipo I é executado diretamente no hardware sem a necessidade de um sistema operacional de hospedagem. Os VMMs do tipo I também são conhecidos como 'hipervisores' - portanto, a única diferença verdadeira entre um VMM e um hipervisor é onde ele é executado. A funcionalidade fornecida por ambos é eqüitativa. Exemplos de VMMs do tipo I incluem as soluções de virtualização de mainframe oferecidas por empresas como Amdahl e IBM, e em computadores modernos por soluções como VMware ESX, Xen e Windows.

Rajind Ruparathna
fonte
3

Essa é uma extensão da terminologia existente do sistema operacional - uma das várias alternativas à metáfora da semente / noz . os programas do usuário são controlados pelo programa supervisor e em um sistema não virtual que é onde as coisas param. Com a virtualização, o supervisor é, por sua vez, controlado (ou monitorado ou gerenciado) por um programa de hipervisor .

Todos esses programas são softwares. A máquina virtual é o pretexto de uma máquina na qual o supervisor e os programas do usuário experimentam a execução. Parece hardware por dentro.

JdeBP
fonte
3
Ironicamente, isso é fora de tópico, e se bem me lembro, o latim "super" e o grego "hiper" derivam da mesma palavra original e significam a mesma coisa. O "ueber" alemão é outro irmão. Portanto, "supervisor" e "hipervisor" são na verdade a mesma palavra, exceto que um é todo latino, enquanto o outro é metade latino, meio grego. :-)
Andrew J. Brehm 23/09
2
Mas, de fato, a terminologia é toda grega para a maioria de nós.
Daniel R Hicks
1

Don Skiba sobre a história do Hypervisor :

Eu estava na IBM em 1966, quando estávamos tentando instalar o novo System 360s. Como você pode imaginar, converter todo esse "código antigo" dos antigos modelos 1401, 1440, 1410, 7080, 7090 foi a maior bagunça que você já desejou ver. No modelo 360 da 360, havia um emulador para algumas máquinas mais antigas. Na verdade, todos os modelos 360, exceto o modelo 75, eram emuladores do conjunto de instruções 360. O popular para o modelo 65 foi o emulador para o IBM 7080. No entanto, era necessário dedicar a máquina ao modo 360 ou ao modo 7080. Isso não estava deixando nossos clientes muito felizes.

Verificou-se que havia alguns registros especiais no modelo 65 que estavam inativos, mas ativos no modelo 67 que foram usados ​​para compartilhamento de tempo e, eventualmente, um sistema operacional virtual, CMS. Eu convenci o engenheiro no modelo 65 de que poderíamos usar esses registradores para trocar entre programas em execução na metade inferior da memória para programas em execução na metade superior e a metade poderia operar no modo 360 ou 7080. Nós apenas precisávamos de um código "pequeno" para fazer a troca, a configuração de modo e a alocação de recursos (E / S). Eu convenci um engenheiro de sistemas na Filadélfia, que tinha um cliente que precisava desesperadamente dessa função, para escrever o código. Nós lançamos vários nomes de código na época. Sugeri que o "hypervisor" poderia ser apropriado, porque, antes do 360, não havia "sistemas operacionais" e todos os sistemas anteriores tinham "supervisores". Então, "hypervisor" parecia apropriado e o nome ficou.

Artru
fonte