O que é um hipervisor?
Um hipervisor (também conhecido pelo seu nome em inglês: hypervisor) é um software ou firmware que cria e gere máquinas virtuais, abstraindo os recursos de hardware de um computador físico e disponibilizando-os a vários sistemas operativos em simultâneo. Em vez de montar um sistema completo (hardware mais sistema operativo), gera-se simplesmente uma versão virtual: uma representação virtual de um ambiente de PC.
Como funciona um hipervisor?
Ao criar uma máquina virtual (VM), esta é executada numa máquina real não virtualizada, como um PC. A VM depende, portanto, do hardware físico. Por isso, existe uma camada intermédia entre ambos os níveis, responsável pela gestão: o hipervisor.
O hipervisor é um software responsável pela gestão dos recursos necessários. Este programa, também conhecido como Virtual Machine Monitor (VMM), atribui os recursos do sistema. Desta forma, é possível executar várias máquinas virtuais diferentes num mesmo sistema anfitrião, uma vez que o hipervisor garante que não interferem entre si e que todas dispõem da capacidade necessária.
Em resumo, o hipervisor cria uma camada de abstração entre o hardware e os sistemas operativos que nele são executados. Isto é conseguido dividindo os recursos de hardware em unidades lógicas e atribuindo a cada VM um ambiente próprio. Assim, as máquinas virtuais dão a sensação de estarem a ser executadas diretamente no hardware real, embora, na realidade, estejam a partilhar os recursos com outras VM.
A separação rigorosa entre as diferentes máquinas virtuais não só garante uma boa distribuição dos recursos, como também aumenta a segurança. Graças ao hipervisor, garante-se que um sistema convidado não possa aceder aos ficheiros de outro. Isto é especialmente importante em ambientes de teste, uma vez que, desta forma, um programa defeituoso não pode danificar outras máquinas virtuais de teste.
Gestão da memória
Na virtualização da CPU, o hipervisor utiliza técnicas como a divisão temporal (time-slicing) para distribuir a capacidade de computação de forma equitativa entre as máquinas virtuais (VM). Os processadores modernos incluem funcionalidades específicas de virtualização (por exemplo, Intel VT-x ou AMD-V) que auxiliam o hipervisor e reduzem a sobrecarga.
A gestão da memória RAM é realizada através de técnicas de paginação (paging) e mapeamento (mapping). O hipervisor atribui endereços de memória virtual a blocos de memória física, de modo que cada VM só pode aceder ao seu próprio espaço de memória.
Quando a memória é insuficiente, pode utilizar mecanismos como a sobrealocação de memória (memory overcommitment) ou o balonamento de memória (memory ballooning) para distribuir os recursos de forma mais eficiente entre as máquinas virtuais.
Gestão de E/S e de dispositivos
As máquinas virtuais acedem a dispositivos de hardware, como discos rígidos, placas de rede ou placas gráficas, através de interfaces virtuais. O hipervisor emula esses dispositivos ou redireciona os pedidos diretamente para o hardware físico, utilizando técnicas de E/S direta (Direct I/O) ou passagem direta (pass-through). Isto garante um equilíbrio entre compatibilidade e desempenho.
Isolamento e segurança
Uma das principais vantagens da virtualização é o isolamento entre as máquinas virtuais (VM). Cada VM é executada no seu próprio ambiente, de modo que os erros ou ataques numa máquina virtual não têm efeitos diretos sobre outras máquinas virtuais nem sobre o sistema anfitrião. O hipervisor aplica diversos mecanismos de segurança para garantir esta separação rigorosa, entre os quais a proteção de memória, os controlos de acesso e as técnicas de isolamento em ambientes de teste (sandboxing).
Diferentes tipos de monitores de máquinas virtuais
Distinguem-se dois tipos de monitores de máquinas virtuais (VMM): hipervisores de tipo 1 e de tipo 2. Cada um oferece vantagens muito específicas. O primeiro é também o mais antigo: já na década de 1960 foram realizadas as primeiras tentativas de virtualização com esta tecnologia.
Hipervisor de tipo 1
O primeiro tipo é conhecido como hipervisor nativo (em inglês, native hypervisor) ou bare metal hypervisor. Esta forma de VMM é instalada diretamente no hardware físico e não está ligada ao sistema operativo do anfitrião. Por conseguinte, este hipervisor também deve incluir todos os controladores de dispositivos. O consumo de recursos do hipervisor de tipo 1 é comparativamente reduzido, porque os processos informáticos não são executados através do sistema operativo do anfitrião. Este tipo de hipervisor é especialmente adequado para utilizadores que pretendam configurar um servidor dedicado à virtualização. Para projetos de pequena dimensão em ambientes domésticos, não faria sentido utilizar um hipervisor de tipo 1, uma vez que seria demasiado complexo.

Hipervisor de tipo 2
O segundo tipo (também conhecido como hipervisor hospedado) requer um sistema operativo existente, que, por sua vez, assenta no hardware físico. Os hipervisores de tipo 2 são instalados como qualquer outro programa. Em seguida, o VMM gere a virtualização. Neste caso, não é necessário que os controladores de dispositivos estejam instalados no hipervisor, uma vez que o próprio sistema operativo se encarrega de os transferir para o software. No entanto, esta comodidade reduz o desempenho, porque grande parte dos recursos é investida no sistema operativo do anfitrião. De qualquer forma, graças à simplicidade do processo de instalação e configuração, os hipervisores de tipo 2 são perfeitos para projetos de menor dimensão.
