27 de janeiro de 2011

Virtualização: noções de Máquinas Virtuais


Continuando com nossa série sobre VMs, nos últimos posts tivemos uma visão geral sobre o hardware e o sistema operacional dos sistemas computacionais modernos. Como já temos os conceitos prévios necessários, vamos falar um pouco sobre máquinas virtuais.

Mas antes de começar, só para relembrar:
  • HOST - é o sistema operacional do computador, o sistema principal;
  • GUEST - é o sistema operacional hospedado na máquina virtual;
  • VM - Virtual Machine - é o hardware virtual sobre o qual roda o sistema guest.
Máquinas virtuais conhecidas

A idéia das VM’s não é nova, na verdade elas existem a bastante tempo e um dos exemplos mais conhecidos é a Java Virtual Machine ou JVM da SUN. Como sabemos, a grande vantagem de aplicações escritas em Java é a independência de plataforma, ou seja, um aplicativo Java bem desenvolvido pode ser executado em qualquer sistema operacionalde qualquer sistema computacional, desde que haja uma JVM para estes sistemas.

Na verdade um aplicativo Java é desenvolvido para ser executado em um único sistema computacional, chamado bytecode Java, feito para um hardware padronizado pela SUN, proprietária do Java, e bem específico. Para que este aplicativo rode no Linux, no Windows, no Mac, no celular, no Palm ou em qualquer outro sistema, basta instalar no sistema uma JVM feita para ele. O que esta JVM faz é simular um sistema bytecode Java dentro do sistema real para que o aplicativo Java rode neste sistema virtual.

Virtualizando PCs

Um software de virtualização de hardware faz mais do que a JVM faz, ele simula todo o hardware necessário para rodar um sistema operacional completo e os softwares de determinada plataforma. Uma característica interessante é que a VM tem seu próprio hardware que não necessariamente coincide com o da máquina real e precisa de seus próprios drivers para funcionar.

Um exemplo práticoA imagem abaixo é um screenshot do PC que estou usando agora, ou seja, da máquina “real” na esquerda e da máquina virtual que no caso é o VMware. Compare o gerenciador de dispositivos do Windows XP nos dois casos e veja como a VM tem seus próprios dispositivos.


Clique na imagem para ampliar

Por sorte, o software da VM já vem com os drivers adequados para a maioria dos S.O.s atuais. O software de virtualização faz toda a ligação ou tradução entre o hardware real e os virtuais, inclusive, podem ver na “máquina real” da imagem acima uma destas ligações, lá em “Adaptadores de rede”.

Para o Windows “real”, o VMware é apenas um software como outro qualquer, e o VMware simula para o Windows “virtual” ser um hardware com todas as funcionalidades. Até mesmo um BIOS está presente, parte essencial da plataforma IBM-PC compatible.

O HD virtual

Duas dúvidas comuns: "- Onde ficam armazenados os dados que gravamos no HD virtual? Eles competem com o HD "real?"

Os dados que foram transferidos para o HD ficam em um ou mais arquivos comuns, armazenados no H.D. “real” ou noutra unidade de armazenamento "real", dentro de uma pasta comum. Veja a imagem abaixo que é do VMware e note o arquivo maior. Ele é a imagem binária do HD da máquina virtual que, neste caso, tem o Ubuntu instalado. Os outros arquivos são as configurações, a BIOS virtual, a imagem binária da RAM virtual e os logs. Você pode inclusive transportar estes arquivos para outro PC com VMware instalado e roda-los sem problemas.


Clique na imagem para ampliar

Quando carregamos uma máquina virtual, parte destes arquivos são abertos pelo software de virtualização em uma área de RAM específica para este software da mesma forma que uma fotografia de alta resolução é carregada na RAM pelo Photoshop sem interferir na área da RAM em que um documento do Word, por exemplo, esteja aberto. Cada software tem sua fatia da RAM, determinada e gerenciada pelo sistema operacional host. Veja o diagrama abaixo:


Sistema virtual rodando no sistema real.

Por este motivo, é importante que um PC em que se pretenda virtualizar sistemas mais “pesados”, haja bastante RAM, mais importante até que o processador, já que qualquer processador mediano de última geração consegue virtualizar um hardware sem problemas.

Conforme vamos abrindo aplicativos no S.O. virtual, eles vão sendo carregados da imagem do H.D. para a RAM da VM, assim como acontece com os S.O.s normalmente. Se fechamos o aplicativo virtual, seus dados são salvos na imagem do H.D. e ele é removido da RAM. Da mesma forma, áreas de RAM são delimitadas e gerenciadas pelo S.O. virtual para cada aplicativo aberto na VM.

Na prática, para o S.O. e os aplicativos virtualizados a VM é um PC, descrito da mesma forma que uma máquina real, se não fosse assim, seria (quase) impossível rodar um Windows, um Linux ou até mesmo um Mac OS e seus aplicativos.

Por hoje, é só! Aproveite para comentar...

Esta é uma edição revisada, ampliada e atualizada. A versão anterior não está mais disponível na Internet.

1 comentários neste post

Olá a todos, gostaria de saber um pouco mais sobre virtualização existe o xen serve que também é um sistema de virtualização assim como o VM ware. Sendo assim como acontece nas máquinas reais onde cada dispositivo tem sua própria configuração de Hardware. Nos sistemas de virtualização migrar uma máquina virtual que roda em vm ware para um sistema xen server causa algum conflito de configuração de hardware ?

Postar um comentário

Atenção comentarista!
  • Todos os comentários serão rigidamente moderados;
  • Identifique-se! Comentários anônimos não são recomendados;
  • Comentários com três ou mais links serão removidos;
  • Comentários escritos em miguxês ou excesso de gírias serão removidos;
  • Comentários escritos com predominância de maiúsculas serão removidos;
  • Por favor, prove que você é coerente, educado e bem informado: conheça o restante do site, saiba quem somos, sobre o que, para quem e como escrevemos antes de comentar futilidades;
  • Respeite as opiniões dos autores e dos outros comentaristas. Seja breve e sem ofensas;
  • Escreva comentários relevantes e que contribuam de alguma forma para o bem da humanidade;
  • Não seja um inútil social. Lembre-se que o mundo não gira ao seu redor.