Eu classificaria tecnologias de máquinas virtuais em três categorias (nem todos os produtos se encaixam claramente em uma categoria):
- Virtualização completa , ou seja, emulação completa de hardware. Exemplos: Qemu , Dosbox . Pro: você pode emular qualquer arquitetura em qualquer hardware. Con: é a maneira mais lenta de fazer isso.
-
Virtualização assistida por hardware , onde você pode emular a máquina X na máquina X. Isso pode ser muito mais rápido do que a virtualização completa , porque a maioria das instruções são executadas nativamente, mas você perde a capacidade de executar uma arquitetura externa. Existem duas subcategorias:
- VMs baseadas em hipervisor: você executa vários sistemas operacionais ao lado do outro. A camada inferior, chamada hipervisor, é um sistema operacional com finalidade especial que executa as VMs e nada mais. Exemplos: Xen , VMware ESX .
- VMs hospedadas: há um sistema operacional principal, a VM é um aplicativo nesse sistema operacional principal. Exemplos: VirtualBox , KVM .
- Virtualização no nível do sistema operacional : você executa várias instâncias do mesmo sistema operacional. Isso pode ser, por sua vez, muito mais leve do que a virutalização do hardware, mas você perde algum isolamento e, claro, a capacidade de executar diferentes sistemas operacionais. Exemplos: OpenVZ , prisões do FreeBSD .
Primeiro, determine a categoria que corresponde às suas necessidades.