O conceito de virtualização parece novo, mas não é, ele iniciou na década de 60 quando a IBM necessitou usar, de forma simultânea, vários equipamentos caríssimos na época, então os pesquisadores desenvolveram um gerenciador de recursos, dividindo o equipamento principal em pequenas partes para se fazer testes em ambientes diversos, e após essa experiência com esse gerenciador buscou se desenvolver, no início da década de 70, um sistema operacional totalmente diferente, um sistema de multiprogramação e máquina estendida. Nesse sistema cada máquina virtual era uma cópia da máquina original, isso era na época um grande diferencial.
Todo o conceito que se utiliza hoje em máquinas virtuais tem como base a experiência da IBM, mas a grande explosão dessa tecnologia aconteceu em 1998, em um passado falava-se de virtualização de servidores, hoje já se fala sobre a virtualização de ambientes de trabalho e alta disponibilidade que a virtualização pode trazer (
Virtualização - Como surgiu a Virtualização (Baguete.com.br), acessado em 15/06/2009).
Tomando como base, teremos os três componentes onde trabalharemos a virtualização, são eles: hardware, sistema operacional e aplicativos, onde dois deles, o hardware e o software, formam uma interface a INSTRUCTION SET ARCTHTETURE (ISA).
A virtualização sempre será a camada superior a ISA, resta saber se essa camada de virtualização atua tanto sobre o aplicativo quanto ao sistema operacional do hóspede, nesse caso seria a virtualização do sistema. Se a virtualização atuar somente sobre o aplicativo está falando de virtualização de processo, que no nosso caso não é o objetivo, mas para conhecimento de que essa ferramenta não é usada somente com sistema, temos o exemplo de virtualização de processo o JAVA e sua máquina virtual que atua sobre ISAs distintas.
Virtualização paralela
Baseado no modelo do livro CARMONA, Tadeu. Virtualização, 2008.
O Java Virtual Machine é construído do lado do ISA do hardware em uma descrição genérica, isso seria a HIGH LEVEL LANGUAGE VIRTUAL MACHINE (HLL VM).
Mas o que veremos com mais profundidade é a virtualização de sistemas completos, nesse caso o host e seus hóspedes utilizam a mesma ISA, e por isso a camada de virtualização é tão importante, porque o hóspede não sabe que não possui privilégio sobre o hardware e quem faz esse balanço é a camada de virtualização, é ela que captura essa informação e divide conforme a necessidade.
Virtualização direta do hardware
Baseado no modelo do livro de CARMONA, Tadeu. Virtualização, 2008.
Existem outras formas de virtualização, uma das mais utilizadas é a de um hipervisor acima da ISA, onde os hóspedes sabem da existência de um hipervisor e é ele que corrige, traduz e prioriza as chamadas dos hóspedes, é uma das formas mais seguras também na questão de hosts distintos, como mostra a figura abaixo.
Virtualização a partir de um S.O. preparado
Baseado no modelo do livro CARMONA, Tadeu. Virtualização, 2008.
(SIQUEIRA, Luciano, BRENDEL, Jens-Christoph, 2007).