1.7 Tecnologias de virtualização de plataformas: emuladores, máquinas virtuais, paravirtualização. Flashcards
O que é virtualização?
A virtualização é uma tecnologia que oferece uma camada de abstração dos verdadeiros recursos de uma máquina, provendo um hardware virtual para cada sistema, com o objetivo de “esconder” as características físicas e à forma como os sistemas operacionais e aplicações interagem com os recursos computacionais.
As principais qualidades da virtualização são:
O reaproveitamento de recursos, a
portabilidade e a segurança.
Com a virtualização podemos:
Executar diferentes sistemas operacionais em um mesmo hardware
simultaneamente.
Executar um sistema operacional (e suas aplicações) como um processo de
outro.
Utilizar sistemas operacionais e aplicações escritas para uma plataforma em
outra, além de outros usos que serão vistos a seguir.
A virtualização pode ser implementada de duas formas:
Combinação de hardware e software e apenas por software.
Implementação de virtualização por hardware e software:
há uma cooperação entre um software virtualizador (que faz o papel principal) com o hardware, cujo qual fornece partes chaves do processo. O desempenho é a principal vantagem desta tecnologia. São exemplos de arquiteturas que suportam este tipo de virtualização: IBM z/VM e HP-UX Virtual Partition
Implementação de virtualização por
software:
Não é preciso um hardware provendo
recursos para suportá-la, ao invés disso, é o software virtualizador que provê totalmente
os recursos no processo. Essa tecnologia tem como vantagens o baixo custo de
implementação e a portabilidade entre plataformas. São exemplos dessa tecnologia:
VMWare, Xen, Microsoft Virtual Server, Solaris Zones, FreeBSD Jails e outras.
Qual é a principal diferença entre emulação e virtualização?
A principal diferença entre emulação e virtualização na computação é que a emulação reproduz algo de forma semelhante, enquanto a virtualização cria uma representação.
Conceito de emulação:
É o processo de imitar o comportamento e as funções de um dispositivo ou sistema de hardware. Para isso, é utilizado um emulador, que é um software que traduz as instruções da máquina real para as instruções do sistema hospedeiro. A emulação é útil para teste, depuração, preservação e compatibilidade.
O que é uma máquina virtual?
Uma máquina virtual ou virtual machine é um programa que simula um ambiente computacional, capaz de executar sistemas operacionais e aplicativos como se fosse uma máquina física. Também chamada de processo ou camada de virtualização, permite rodar um sistema operacional dentro de outro.
O que difere uma VM de um emulador?
O processo é diferente de um emulador, que visa copiar os recursos de um programa ou sistema e fazê-lo rodar em conjunto com o seu computador. Neste caso, a máquina virtual opera de forma completamente independente e isolada, podendo inclusive rodar sistemas operacionais que normalmente não seriam compatíveis com sua arquitetura.
Atributos comuns de máquinas virtuais:
Compatibilidade do software: a máquina virtual fornece uma abstração
compatível de modo que todo o software escrito para ela funcione.
Isolamento: garante que os softwares executados em cada uma das máquinas
virtuais e os da máquina real estejam totalmente isolados entre si.
Encapsulamento: é usado para manipular e controlar a execução do software na
máquina virtual.
Desempenho: adicionar uma camada de software a um sistema pode afetar o
desempenho do software que funciona na máquina virtual, mas os benefícios de
uso de sistemas virtuais devem compensar.
O que é um monitor de máquinas virtuais (Virtual Machine Monitor – VMM)?
É uma aplicação que implementa uma camada de virtualização, a qual permite que múltiplos sistemas operacionais funcionem sobre um mesmo hardware simultaneamente.
É o monitor de máquinas virtuais que cria e gerencia os ambientes de máquinas virtuais, interpretando e emulando o conjunto de instruções entre as máquinas virtuais e a máquina real (hardware).
As principais funções do monitor de máquinas virtuais são:
Definir o ambiente de máquinas virtuais.
Alterar o modo de execução do sistema operacional convidado de privilegiado
para não privilegiado, e vice-versa.
Emular as instruções e escalonar o uso da CPU para as máquinas virtuais.
Gerenciar acesso aos blocos de memória e disco destinados ao funcionamento
das máquinas virtuais.
Intermediar as chamadas de sistema e controlar acesso a outros dispositivos
como CD-ROM, drives de disquete, dispositivos de rede, dispositivos USB.
Para a construção de máquinas virtuais, existem duas abordagens:
Máquinas virtuais clássicas ou de Tipo I.
Máquinas virtuais hospedadas ou de Tipo II.
Máquinas virtuais clássicas ou de Tipo I:
Nesta abordagem o monitor de máquinas virtuais é implementado entre o hardware e os sistemas convidados (também chamados de sistemas guest ou guest systems).
O monitor possui controle sobre o hardware e cria um ambiente de máquinas virtuais dando a cada máquina virtual o comportamento de uma máquina física, podendo executar sobre esses ambientes, sistemas operacionais iguais ou diferentes, totalmente isolados entre si.