Tipos de Virtualização
Em relação à técnica
      Pode-se ainda classificar a virtualização de acordo com a técnica usada, isto é, virtualização total ou paravirtualização. A virtualização total é a simulação de uma máquina virtual que possui um sistema operacional sem qualquer modificação, o qual funciona através de uma “combinação de tradução binária e técnicas de execução direta[4] (Figura 3.a). Como não é modificado não tem consciência de que está operano sobre o hipervisor, o SO na virtualização total executa as chamadas instruções sensíveis que são instruções de máquina que só podem ser executadas no modo núcleo e que possam alterar o estado do sistema. Sobre as instruções sensíveis Diogo Mattos escreve: “as instruções executadas pelo sistema operacional visitante devem ser testadas pelo VMM para que depois sejam executadas diretamente no hardware, ou executadas pelo VMM e simulada a execução para o sistema visitante[2]. Isto acarreta certa perda de desempenho quando comparado à paravirtualização. Observe que a Figura 2a indica que na virtualização total não há nenhuma camada entre o sistema de hardware e o nível mais alto de privilégio. Observação importante: na arquitetura x86, os níveis de privilégio de acesso ao hardware, são numerados de 0 a 4 (também chamados de anéis ou rings), sendo o nível 0 o mais privilegiado com acesso direto ao hardware.

graphic
Figura 3a - Virtualização total (Retirado de [4])

      A paravirtualização é uma abordagem diferente da virtualização total pois o código-fonte do sistema operacional é intencionalmente modificado de forma que algumas de suas instruções sensíveis sejam removidas e este passe a executar o que é conhecido como chamadas de hipervisor. Observe que na Figura 3b aparece uma camada de virtualização entre o nível mais privilegiado do sistema e o hardware. Lembrando sempre que estamos tratando de linguagem de máquina, a emulação de instruções difíceis é complicada e demorada porque seria necessário a chamada ao hipervisor e tradução exata para a semântica da máquina física. Executando as chamadas de hipervisor, não há a tradução binária nem o teste instrução por instrução, tornando o sistema virtualizado mais eficiente em termos de velocidade de resposta.

graphic
Figura 3b - Paravirtualização (Retirado de [4])