Como algo como o VirtualBox Guest Additions se comunica com o host?

0

Imagino que o processo inclua a observação de algum padrão específico na memória virtualizada e a alteração, mas estou imaginando como isso funciona exatamente. Talvez uma nova chamada de bios? (Semelhante ao sistema operacional que consulta o tempo do RTC.) Estou interessado porque estou pensando se poderia ligar-me para a comunicação arbitrária de dados entre o host e o cliente.

    
por TheWhoAreYouPerson 02.02.2017 / 23:19

1 resposta

2

Primeiro, entenda que o Virtualbox é um programa instalado no sistema operacional host, de modo que ele envia executáveis, bibliotecas e outros recursos. Muitas dessas bibliotecas chamarão funções e serviços do sistema operacional host para fazer seu trabalho.

O Virtualbox também instala drivers no kernel do sistema operacional. Esses drivers definem como o kernel pode fornecer interfaces de hardware para a camada Virtual Hardware do Virtualbox.

A camada de hardware virtual fica entre o sistema operacional host e o convidado. Para o Host é apenas outro programa, mas para o convidado, parece ser um hardware real.

É importante entender que o Virtualbox como um programa está sendo executado enquanto o convidado está, mas os dois estão fazendo coisas completamente diferentes. O Virtualbox está trabalhando com o host na apresentação de um computador falso para o Guest, enquanto o guest está sendo executado como um SO no hardware falso.

Os drivers do SO geralmente não são adequados para o convidado ou apresentam uma funcionalidade extremamente limitada. O convidado não sabe que é uma VM e não pode fazer as perguntas do host. É por isso que precisamos de Ferramentas para convidados.

Guest Tools atualiza os drivers do sistema com os apropriados para o hardware virtualizado e se comunica com o hardware falso para fazer perguntas como "qual é a minha resolução máxima". VBox, por sua vez, pergunta ao SO e reporta ao convidado.

As Ferramentas do convidado também ativam outros recursos, como o mapeamento de pastas compartilhadas, instalando software no convidado que pode se comunicar com o VBox. VBox, em seguida, usa tecnologias do sistema operacional como pipes nomeados ou ole (nas janelas) ou IPC de rede (Linux) para transmitir dados entre eles e o sistema operacional host.

O importante aqui é que o convidado não sabe que é uma VM, e o host não conhece suas VMs em execução. Vbox fica entre os dois e os corretores toda a comunicação. Não há confiança extraordinária no BIOS físico.

O que pode estar fazendo você pensar no BIOS é as extensões de virtualização. Por favor, entenda que o VT é um conjunto de instruções da CPU e não é relacionado ao BIOS. O VBox executa código que foi compilado em chamadas de instrução VT (quando apropriado) para que possa executar instruções otimizadas relacionadas a operações virtuais. Mais uma vez, o sistema operacional host tem pouco a ver com isso.

    
por 03.02.2017 / 02:56