Máquina virtual

Origem: Wikipédia, a enciclopédia livre.
Ir para: navegação, pesquisa
VirtualBox 2.0.4 no Ubuntu rodando o Fedora 10

Na ciência da computação, máquina virtual é o nome dado a uma máquina, implementada através de software, que executa programas como um computador real, também chamado de processo de virtualização.

Uma máquina virtual (Virtual Machine – VM) pode ser definida como “uma duplicata eficiente e isolada de uma máquina real”. A IBM define uma máquina virtual como uma cópia isolada de um sistema físico, e esta cópia está totalmente protegida.

Máquinas virtuais são extremamente úteis no dia a dia, pois permitem ao usuário rodar outros sistemas operacionais dentro de uma janela, tendo acesso a todos os softwares que precisa.

História[editar | editar código-fonte]

VM ou VM/CMS, do inglês Virtual Machine/Conversational Monitor System 1 nota 1 é um sistema operativo que permite a vários utilizadores trabalharem ao mesmo tempo como se estivessem a utilizar sozinhos o computador. O sistema foi empregue na IBM mainframes System/360, donde VM/360, em 1964 - História do Mainframe 2 .

IBM 704

O sistema VM é empregue nos mainframes - computadores de grande capacidade capazes de oferecer serviços de processamento a milhares de usuários através de milhares de terminais conectados diretamente ou através de uma rede. O sistema operava unicamente em modo batch (arquivo de lote).

O programa de controle (CP) gere o computador e efetua todas as operações necessárias de tal forma que cada máquina virtual reagisse e trabalhe como um computador pessoal. O utilizador tinha em frente de si unicamente: um écran, um teclado, e a caixa de ligação com mainframe.

Definição[editar | editar código-fonte]

O termo máquina virtual foi descrito na década de 1960 utilizando um termo de sistema operacional: uma abstração de software que enxerga um sistema físico (máquina real). Com o passar dos anos, o termo englobou um grande número de abstrações – por exemplo, Java Virtual Machine – JVM que não virtualiza um sistema real.

Ao invés de ser uma real, isto é, um computador real feito de hardware e executando um sistema operacional específico, uma máquina virtual é um computador fictício criado por um programa de simulação. Sua memória, processador e outros recursos são virtualizados. A virtualização é a interposição do software (máquina virtual) em várias camadas do sistema. É uma forma de dividir os recursos de um computador em múltiplos ambientes de execução.

Os emuladores são máquinas virtuais que simulam computadores reais. São bastante conhecidos os emuladores de vídeo games antigos e os emuladores de microcomputadores, como o VMware, o Bochs e o VM VirtualBox (software livre da Oracle).

Tipos[editar | editar código-fonte]

As máquinas virtuais podem ser divididas em três tipos:

  • Tipo 1: Sistema em que o monitor é implementado entre o hardware e os sistemas convidados (guest system).
  • Tipo 2: Nele o monitor é implementado como um processo de um sistema operacional real, denominado sistema anfitrião (host system).
  • Tipos Híbridos: Os monitores de tipo 1 e 2 raramente são usados em sua forma conceitual em implementações reais. Na prática, várias otimizações são inseridas nas arquiteturas apresentadas, com o objetivo principal de melhorar o desempenho das aplicações nos sistemas convidados. Como os pontos cruciais do desempenho dos sistemas de máquinas virtuais são as operações de E/S, as principais otimizações utilizadas em sistemas de produção dizem respeito a essas operações.

Outra importante categoria de máquinas virtuais são as máquinas virtuais para computadores fictícios projetados para uma finalidade específica. Atualmente a mais importante máquina virtual desta família é a JVM (máquina virtual Java). Existem simuladores para ela em quase todos os computadores atuais, desde computadores de grande porte até telefones celulares, o que torna as aplicações Java extremamente portáveis.

Uma importante vantagem sem duvida de se escrever código para uma máquina virtual é a de se poder compilar o código sem que seja perdida a portabilidade, melhorando-se a velocidade em relação à programação interpretada, que também é portátil, porém mais lenta, já que neste caso cada linha será traduzida e executada em tempo de execução, e no caso da máquina virtual cada mnemônico da máquina virtual é convertido no equivalente em linguagem de máquina (ou assembly) da máquina real.

Vantagens[editar | editar código-fonte]

  • Facilita o aperfeiçoamento e testes de novos sistemas operacionais.
  • Possibilita a comparação de vários sistemas operacionais utilizando o mesmo equipamento.
  • Executa diferentes sistemas operacionais sobre o mesmo hardware, simultaneamente.
  • Simula alterações e falhas no hardware para testes ou reconfiguração de um sistema operacional, provendo confiabilidade e escalabilidade para as aplicações.
  • Diminuição de custos com hardware.
  • Facilidades no gerenciamento, migração e replicação de computadores, aplicações ou sistemas operacionais.
  • Confiança e disponibilidade: A falha de um software não prejudica os demais serviços.

Desvantagens[editar | editar código-fonte]

  • Gerenciamento: Os ambientes virtuais necessitam ser, monitorados, configurados e salvos . Existem produtos que fornecem essas soluções, mas esse é o campo no qual estão os maiores investimentos na área de virtualização, justamente por se tratar de um dos maiores contratempos na implementação da virtualização.
  • Desempenho: Atualmente, não existem métodos consolidados para medir o desempenho de ambientes virtualizados. No entanto, a introdução de uma camada extra de software entre o sistema operacional e o hardware, o VMM ou hypervisor, gera um custo de processamento superior ao que se teria sem a virtualização. Outro ponto importante de ressaltar é que não se sabe exatamente quantas máquinas virtuais podem ser executadas por processador, sem que haja o prejuízo da qualidade de serviço.

Segurança[editar | editar código-fonte]

Embora a máquina necessite do sistema real para sua inicialização, trabalha de maneira independente como se fosse outro computador, isto requer também um sistema de segurança independente, ou seja, a ocorrência de infecção por vírus na máquina virtual não afeta a máquina real.

Ver também[editar | editar código-fonte]

Referências

Notas

Ícone de esboço Este artigo sobre Informática é um esboço. Você pode ajudar a Wikipédia expandindo-o.