Páginas

sábado, 14 de janeiro de 2012

O que é uma Máquina Virtual

Definir o que é uma máquina virtual não parece ser difícil e talvez uma postagem sobre o assunto seja só mais uma de tantas que existem na net, mas acredito que o conhecimento sobre o assunto mesmo que se repita só tem a acrescentar. Então vamos tentar entender o que é uma máquina virtual, ou para quem já sabe, talvez se aprofundar um pouco mais no assunto.

Muitos aqui talvez já tenham feito uso de uma máquina virtual, seja para testar um sistema operacional diferente, ou para instalar um programa que não é compatível com sua máquina real e até mesmo sem saber, por exemplo, quando alguém joga nos famosos emuladores de vídeo games (Super Nintendo, Atari, Mega Drive), tais emuladores são máquinas virtuais dos aparelhos reais.

Entendendo uma Máquina Virtual

máquina virtual, conceitos, o que é um maquina virtual

Uma máquina real, os seu computador pessoal, é formada por vários componentes físicos que chamamos de Hardware. De forma bem resumida, temos o processador central (CPU) e o chipset da placa-mãe, conectado a placa temos a memória RAM, o monitor, o dispositivo áudio, os discos rígidos, as unidades de CD/DVD e as portas de entrada e saída (USB, paralela, serial, rede). Numa computador real, o sistema operacional (o Windows, Linux, etc) gerencia essas diferentes partes aproveitando bem os recursos[1]. O sistema operacional se comunica com cada uma das partes quando necessário. Quando um programa precisa imprimir, ele se comunica com o sistema operacional que por sua vez se comunica com o hardware, dessa forma o sistema operacional é um intermediário entre os programas e usuários e o Hardware do computador, assim os programas ou os usuários não precisam saber como exatamente o Hardware funciona, apenas fazem solicitações ao sistema operacional e este se encarrega de distribuir as tarefas nos componentes do Hardware.

Alguns talvez não saibam que existe uma sutil diferença entre um emulador e uma máquina virtual. Ao passo que o emulador é um programa cujo código que simula toda a máquina real, uma máquina virtual é um aplicativo que roda sobre um programa que chamamos de monitor de máquina virtual VMM (Virtual Machine Monitor), ou “monitor de sistema operacional para sistemas operacionais”.

Nota: As finalidades primárias de um sistema operacional são habilitar aplicações a interagir com um hardware de computador e gerenciar os recursos de hardware e software de um sistema. Por tal motivo, o monitor de máquinas virtuais pode ser definido como “sistema operacional para sistemas operacionais”.

Explicando melhor, a máquina virtual é executada sobre o VMM, que fornece abstrações das partes do computador, ou uma parcela do computador real (uma cópia virtual). Dessa forma o VMM cria uma interface do computador real sobre o qual está sendo executado para cada máquina virtual. Assim o VMM pode criar uma ou mais máquinas virtuais funcionando apenas em um computador real. O VMM faz uma espécie de multiplexação dos componentes do hardware do computador, dando acesso ao hardware real a cada máquina virtual.

Ilustrando melhor a diferença: O emulador é como um cover de um artista famoso, vestindo as mesmas roupas e com voz muito parecida ao cantor original, que nesse caso representa o computador real. Este cover canta em qualquer palco onde artista real jamais cantaria (Ilustrando a imcompatibilidade de plataformas), as pessoas que assistem a tal cover recebe um cópia do cantor original. Já uma máquina virtual seria como um telão que recebe imagens trasmitidas ao-vivo de um artista que canta em um certo palco. O VMM seria como esse sistema de transmissão de vídeo ao-vivo, que capta a imagem do artista real e distribui por vários telões espalhado em vários lugares, embora não seja o artista real, as pessoas que observam ao artista pelo telão, assitem e ouvem um "artista virtual" através do telão.

Em cada máquina virtual, que recebe uma cópia (virtual) do computador, pode-se executar um aplicativo ou um “sistema operacional convidado”. Tal aplicativo é executado sobre um ambiente convencional com acesso direto ao hardware, ou seja, cada máquina virtual trabalha como um PC completo. Dispositivos como o CD-ROM e unidades de disquetes podem ser compartilhados entre as máquinas virtuais e o computador real, em alguns casos até mesmo simultaneamente (uma unidade de CD pode ser acessada por todos as máquinas virtuais e o sistema real).

Tipos de máquinas virtuais

Tipo 1: o VMM é desenvolvido para ser executado diretamente sobre o hardware sem precisar de um sistema operacional como interface, é também conhecido como guest system.
Tipo 2: o VMM é implementado como um software que roda sobre um sistema operacional, assim o acesso ao hardware é feito através do sistema operacional que serve como interface de comunicação entre o VMM e os componente do computador.

Formas de Virtualização

Existem três tipos de virtualização:

  • Virtualização do hardware: A virtualização cria um ambiente virtual que representa o hardware real que desejamos simular. Assim, qualquer software escrito para esse hardware irá funcionar no ambiente virtual. Esse foi o modelo adotado na década de 1960 para o VM/370 nos mainframes IBM e é a tecnologia de virtualização utilizada pelo VMware na plataforma x86.
  • Virtualização de Sistemas Operacionais: A virtualização cria um ambiente virtual que representa o sistema operacional que se deseja simular. A máquina virtual roda aplicações – ou um conjunto de aplicações – de um sistema operacional desejado. O FreeBSD Jail ou o User- Mode Linux são exemplos dessa tecnologia.

Vantagens da Virtualização

  • executar um sistema operacional (e suas aplicações) sobre outro;
  • utilizar uma aplicação de outro sistema operacional;
  • executar múltiplos sistemas operacionais;
  • flexibilizar uma plataforma complexa de trabalho.

Conclusão:

A máquina virtual nos abre um leque de recursos que antes não tinhamos: Não precisamos comprar outro PC, ou particionar o HD, para rodar um diferente sistema operacional, podemos realizar testes na máquina virtual que poderiam prejudicar as configurações do computador real. Se quisermos testar um distribuição de um sistema operacional antes de instalar definitivamete no PC real podemos instalar antes numa máquina virtual, e etc. São inúmeras as opções de uso. Espero que vocês tenham gostado da breve explicação.

Notas Explicativas:

[1] (Voltar para o texto) Há não muito tempo, os computadores não possuíam sistema operacional, mas sim um operador humano treinado, que sabia como controlar bem cada parte do computador. Assim, quando alguém desejava rodar um programa, esta pessoa precisava entregar o código de seu programa a esse operador humano, então, ele incluía as instruções na máquina e que executava as instruções. Depois de certo tempo, horas ou até dias, o computador fornecia os resultados. O operador humano gerenciava o uso da memória, do processamento e dos dispositivos de entrada e saída da melhor maneira possível, assim como o sistema operacional faz hoje. Mas tal ambiente, onde o sistema operacional era um humano, era passível de muitos erros e mau gerenciamento dos recursos do hardware, o que poderia gerar perca de dias de trabalho, dessa forma, o operador humano foi logo substituído.

Referênicas:

- LAUREANO, Marcos. Máquinas Virtuais e Emuladores - Conceitos, Técnicas e Aplicações. Novatec Editora.

Consulte as postagens:

Nenhum comentário:

Postar um comentário