Segundo Maziero (2013), as tecnologias de virtualização do ambiente de execução de aplicações ou de plataformas de hardware têm sido objeto da atenção crescente de pesquisadores, fabricantes de hardware/software, administradores de sistemas e usuários avançados.
História
O conceito de virtualização é antigo. Uma das primeiras referências a ele data do ano de 1960, marcado pelo surgimento do sistema operacional experimental M44/44X da IBM, que mais tarde deu origem ao famoso OS/370 (GOLDBERG, 1973; GOLDBERG; MAGER, 1979), um sistema operacional comercial com suporte a virtualização.
Na década de 1970, Popek e Goldberg (1974) definiram as condições necessárias para que uma plataforma de hardware suportasse virtualização de forma eficiente.
Já na década de 1980, com a popularização e o barateamento dos PCs, a virtualização perdeu força, afinal de contas era mais barato ter um computador completo por usuário do que uma máquina robusta para virtualizar ambientes desktop. Porém, a tecnologia continuou a evoluir e o hardware ficou cada vez mais poderoso, o que fez com que o interesse pelas tecnologias de virtualização voltasse ao centro das discussões no final da década de 1990, juntamente com o surgimento da linguagem Java.
O que é virtualização?
É comum os iniciantes em tecnologia da informação acreditarem que o uso de tecnologias de virtualização se aplica somente a um determinado nicho de mercado, ou que atenda apenas a uma finalidade muito específica, tal como virtualizar um sistema operacional. Mas o conceito de virtualização vai muito além; uma definição mais adequada para expressar o potencial da técnica poderia ser: virtualização é a capacidade de abstrair uma camada física para múltiplas camadas lógicas.
A tecnologia de virtualização consiste em fazer um computador físico comportar-se como se fosse um ou mais computadores, sendo que todos esses computadores virtualizados acessam a mesma arquitetura básica de um computador físico genérico (BUYTATERT et al., 2007).
Certamente todos nós já fizemos uso prático desse conceito sem nem ao menos notá-lo. Um HD (disco rígido) particionado (dividido), por exemplo, traz consigo o conceito de virtualização, pois temos nele uma unidade física que é subdividida em partições, ou seja, em várias unidades lógicas, o que se enquadra na definição apresentada no primeiro parágrafo deste tópico.
Existem basicamente três tipos (“segmentos”) de soluções de virtualização. São eles:
- Virtualização de servidores;
- Virtualização de aplicações;
- Virtualização de desktop.
Camada de virtualização
As interfaces padronizadas entre os componentes do sistema de computação permitem o seu desenvolvimento independente, mas também são fonte de problemas de interoperabilidade, devido à sua pouca flexibilidade (MAZIERO, 2013).
Maziero (2013) afirma que é possível contornar o problema de interoperabilidade utilizando uma camada de virtualização construída sobre o software, a qual ficaria responsável por oferecer aos componentes uma interface de comunicação. As novas interfaces, vistas através dessa camada de virtualização, são conhecidas como máquinas virtuais. A camada de virtualização propriamente dita é o hipervisor ou monitor de máquina virtual (VMM – Virtual Machine Monitor).
A Figura 1, retirada de Smith e Nair (2004), é um exemplo de máquina virtual. Nela o hipervisor executa um sistema operacional Windows (sistema convidado, ou em inglês guest system) sobre uma plataforma Sparc:
Figura 1 – Máquina virtual
Fonte: SMITH; NAIR, 2004.
O restante deste artigo está disponível em: https://www.linkedin.com/pulse/virtualização-uma-abordagem-objetiva-fábio-j-l-ferreira