O que é um hipervisor?
Um hypervisor é um tipo exclusivo de software que permite que um computador execute mais de um sistema operacional (SO). Por meio de um processo conhecido como virtualização, o software faz com que cada sistema operacional pense que ele tem acesso exclusivo a um conjunto específico de hardware. Ele fica entre o hardware físico e o sistema operacional e apresenta um conjunto virtual de hardware para todos os outros softwares em execução na máquina. Ele também gerencia o fluxo de informações entre o software, o hardware virtualizado e o hardware físico. Esse tipo de software é usado nas configurações do consumidor e da empresa.
Na maioria dos casos, o sistema operacional de um computador é executado em um estado altamente privilegiado, com acesso irrestrito ao hardware da máquina, enquanto os aplicativos são executados em um estado menos privilegiado e devem contar com o sistema operacional. Esses diferentes níveis de privilégios de acesso ao hardware são conhecidos como anéis, com o sistema operacional executando tradicionalmente no anel 0; os aplicativos de usuário são executados nos anéis 1 a 3, que possuem menos privilégios. Esse modelo funciona bem na maioria das vezes, mas desmorona completamente ao tentar executar mais de um sistema operacional em um único computador simultaneamente. Um hipervisor resolve esse problema usando uma técnica chamada virtualização.
A virtualização não é uma idéia nova, mas tornou-se uma palavra de ordem desde meados da década de 2000, quando as empresas e o setor de tecnologia da informação (TI) realizaram seu potencial para reduzir custos e aumentar a eficiência. Existem muitas abordagens diferentes para a virtualização, mas a idéia básica é criar conjuntos simulados de hardware, geralmente conhecidos como máquinas virtuais. No caso de um hipervisor, que também pode ser chamado de monitor de máquina virtual, cada máquina virtual contém um sistema operacional “convidado”. O próprio hipervisor pode ser executado diretamente no hardware físico; nesse caso, é conhecido como um tipo "bare metal" ou dentro de um sistema operacional host como um hipervisor de "software".
Os hipervisores devem usar algumas técnicas muito sofisticadas para gerenciar seus sistemas operacionais convidados e garantir que eles não entrem em conflito. Como um sistema operacional dentro de uma máquina virtual não sabe que foi privado dos privilégios de anel 0, ele pode tentar executar funções restritas sem permissão. Nesses casos, o hipervisor pode interceptar uma função antes que ela atinja o hardware, execute as instruções de uma maneira que não cause danos a outros sistemas operacionais em execução no hardware e retorne o resultado ao sistema operacional original. Conhecida como uma técnica de "capturar e emular", esse é apenas um dos muitos conceitos avançados exclusivos para o mundo da virtualização.
Como esse tipo de software se tornou mais importante e lucrativo, mais empresas procuraram maneiras de aliviar a carga de um hipervisor e fornecer um desempenho aprimorado. Os fornecedores de software modificaram seus sistemas operacionais para conhecer as máquinas virtuais nas quais estão executando, o que significa menos tipos de cenários de interceptar e emular. Os fornecedores de hardware adicionaram suporte para um novo nível de privilégios, às vezes conhecido como anel -1. Programas de software mais recentes podem tirar proveito de uma ou de ambas as técnicas para aumentar o desempenho.
Agora, os hipervisores podem ser encontrados em uma variedade de produtos, tanto no nível do consumidor quanto da empresa. Os produtos de consumo que permitem que um sistema operacional seja executado em outro geralmente usam um hipervisor do tipo software. No espaço corporativo, o software permite a consolidação de servidores subutilizados que executam diferentes sistemas operacionais. Os desenvolvedores de software podem usar essa abordagem para executar várias instâncias de sistemas operacionais semelhantes ou mesmo idênticos para testar problemas de compatibilidade.