O ponto chave da
resolução dos desafios da virtualização na
arquitetura IA-32 pela tecnologia VT-x é permitir que o
sistema visitante seja executado no nível de privilégio
para o qual ele foi projetado. A limitação imposta ao
software visitante, agora, não é mais o nível de
privilégio, mas o fato desse ser executado no modo VMX
non-root, que introduz algumas
limitações.
- Compressão do espaço de
memória
Com a VT-x, cada
transação entre o software visitante e o VMM pode trocar
o espaço de endereçamento linear, permitindo ao software
visitante o uso de todo o seu espaço de endereçamento. As
transições VMX são gerenciadas pela VMCS, que reside
no endereço físico e não no espaço de
endereçamento linear.
- Ring Aliasing e
Ring Compression
VT-x elimina o
problema do ring aliasing, pois permite que o VMM execute o
software visitante no nível de privilégio a que ele se
destina. Instruções como PUSH (do CS) não podem
revelar ao software que está sendo executado em uma
máquina virtual. VT-x também elimina o problema da
compressão de níveis de privilégio (ring
compression), que surgia quando o sistema operacional visitante
e as aplicações, que eram executadas sobre ele, tinham o
mesmo nível de privilégio.
- Acesso ao estado privilegiado sem gerar
falta
Um VMM baseado na
VT-x não requer o controle do nível de privilégio do
visitante e a VMCS controla a veracidade das interrupções
e exceções. Sendo assim, ele pode permitir que o seu
visitante acesse o GDT, IDT, LDT e TSS. A VT- x que um software
visitante que esteja executando no nível 0 de privilégio
use as instruções LGDT, LIDT, LLDT, LTR, SGDT, SIDT, SLDT
e STR.
- Impactos adversos nas chamadas de sistema dos
SO visitantes
Alguns problemas
ocorriam com as instruções SYSENTER e SYSEXIT da
arquitetura IA-32, quando o SO não estava sendo executado no
nível 0 de privilégio. Com VT-x, o sistema operacional
visitante pode ser executado no nível 0 de privilégio,
eliminando o problemas associados com as transições de
visitantes.
- Virtualização das
Interrupções
VT-x inclui um
controle de execução de máquina virtual de
saída de interrupções externas. Quando este controle
está configurado para 1, o VMM previne o controle do visitante
sobre o mascaramento de interrupções sem que tenha
ganhado o controle de todas tentativas dos visitantes de modificar
o EFLAGS.IF. A VT-x também inclui um controle de saída da
janela de interrupção. Quando este controle está
configurado para 1, a saída da VM ocorre sempre que um
software visitante estiver pronto para receber a
interrupção. O VMM pode configurar esse controle, quando
tiver uma interrupção virtual a ser entregue para o
sistema visitante.
- Acesso ao Estado
Oculto
A tecnologia VT-x
inclui, na área de estado do visitante na VMCS, campos de
estado da CPU, que não são representados por qualquer
registrador que seja acessível por software. O processador
carrega os valores dos campos da VMCS a cada entrada na VM (VM
entry) e os salva na VMCS, a cada vez que sai da VM (VM
exit). Esse mecanismo preserva o estado da CPU para cada
máquina virtual, quando ocorre uma troca de máquinas
virtuais ou quando o VMM está sendo
executado.