Virtualização: uma abordagem objetiva

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