Na virtualização “Full”, o hypervisor emula todo o hardware para as máquinas virtuais. O sistema operacional da máquina virtual nem percebe que está rodando em um ambiente virtualizado, e tudo o que ele precisa são os device drivers para os dispositivos que o hypervisor emula (normalmente o hypervisor emula dispositivos reais e populares, para garantir a disponibilidade de drivers). Para realizar isso, o hypervisor usa uma técnica chamada “binary translation” para executar instruções de modo kernel (ring 0) da máquina virtual, substituindo estas instruções críticas por uma seqüência de instruções que simulam o comportamento esperado no hardware virtualizado.
A grande vantagem da virtualização “Full” é a compatibilidade com qualquer sistema operacional que rode no hardware emulado (sem a necessidade de alterações).
Já com paravirtualização, o hypervisor interage de uma forma mais eficiente com o sistema que roda na máquina virtual, mas isso tem um custo: o sistema operacional precisa ser modificado para ser compatível com a paravirtualização. Caso contrário, a emulação tem que entrar em cena, penalizando a performance.
Paravirtualização não é uma coisa absoluta! Um hypervisor pode fazer uso de paravirtualização para interagir com um sistema operacional ou simplesmente com um device driver rodando numa máquina virtual. No Hyper-V, os device drivers que têm conhecimento da sua paravirtualização são chamados “enlightened” e implementam os dispositivos sintéticos (componentes conceituais que nem sempre possuem um equivalente real no mercado). Estes device drivers são instalados através dos “Integraion Components” do Hyper-V.