Como os pacotes de integração de máquinas virtuais são implementados internamente?

1

Se eu instalar um pacote de adições de máquina virtual em uma máquina virtual (por exemplo, Virtual Machine Additions para Microsoft Virtual PC 2007, Componentes de integração no Windows Virtual PC e Adições de convidado no Oracle VM VirtualBox), o que acontece no backend no máquina virtual quando eu habilito recursos de integração como integração de ponteiro de mouse, redimensionamento de janela e compartilhamento de pasta? Em outras palavras, como os recursos de integração são implementados internamente?

Para a integração de ponteiro do mouse, no Virtual PC, com os recursos de integração ativados, o mouse se move muito mais rápido e, nas extremidades inferior e direita, partes do cursor do convidado ficam visíveis na parte externa. Com ele desabilitado, o cursor se move mais devagar. Minha suspeita é que, com a integração ativada, o cursor é, na verdade, uma parte do sistema operacional host e envia os comandos para o convidado. Eu ouvi relatos de que instalar o software de integração em um PC host faz com que meu cursor desapareça. Eu também sei que as pastas compartilhadas são implementadas como unidades de rede. Estou certo?

    
por gparyani 18.10.2013 / 00:13

1 resposta

3

Em geral, ele permite que o hypervisor faça interface com o sistema operacional convidado em um nível mais ideal.

Dispositivo apontador

No caso de um dispositivo apontador. O hypervisor primeiro captura a localização do cursor do mouse dentro da janela da janela de operação do convidado, conforme aparece no host.

Quando você move o mouse, esse movimento precisa ser traduzido em um movimento relativo, como aconteceria no ambiente do convidado. Este movimento é então traduzido novamente para que possa ser lido através da interface USB virtual do sistema operacional convidado.

O convidado receberá então o sinal de movimento e o traduzirá para um movimento real do cursor na tela.

Esse processo pode demorar um pouco, então você geralmente tem dois cursores, o do host e o do convidado. O convidado geralmente fica um pouco atrasado.

Note que o mouse é geralmente um dispositivo apontador que envolve um movimento relativo . Alguns hipervisores suportam o uso de um tablet virtual como dispositivo apontador, porque eles suportam o posicionamento absoluto . Isso pode reduzir o atraso geralmente observado.

Ao instalar o pacote de integração, um driver de dispositivo especial é instalado no sistema operacional convidado. Esse driver é capaz de se comunicar com o hipervisor mais diretamente. Como exatamente a comunicação é implementada é específica do fornecedor. Os detalhes não devem ser relevantes para responder à essência da sua pergunta.

Através deste novo caminho de comunicação, o hipervisor pode passar diretamente qualquer movimento do cursor conforme eles acontecem diretamente no driver do convidado. Não há necessidade de traduzir de volta para um nível de interface USB mais genérico.

Pastas compartilhadas

No caso de acessar recursos do sistema de arquivos no host, você normalmente teria que seguir o mesmo caminho que você percorreria ao compartilhar arquivos com qualquer outra máquina em sua rede. Você criaria uma pasta compartilhada, configuraria as permissões de acesso e, em seguida, acessaria a pasta no guest e executaria as transferências de arquivos.

Quando você instala o pacote de integração, o hipervisor pode emular um dispositivo de armazenamento na rede que expõe recursos que você pode ver como pastas compartilhadas em seu convidado.

Isso é possível porque o pacote de integração novamente pode instalar um driver que se comunica diretamente com o hipervisor. As transferências de arquivos simplesmente passarão pelo Virtual PC para o driver no convidado, em vez de usar toda a pilha de rede.

Resumo

Existem muitos outros recursos de integração, especialmente em outros hipervisores. Você encontrará frequentemente recursos como a área de transferência compartilhada. A base para esses recursos é geralmente a mesma descrita acima. O hipervisor estabelece um canal de troca de dados direto através de um driver dedicado no sistema operacional convidado.

O hypervisor geralmente opera em um nível de hardware, os drivers permitem que ele também opere no nível do sistema operacional.

    
por 10.12.2013 / 18:39