1.7 Tecnologias de virtualização de plataformas: emuladores, máquinas virtuais, paravirtualização. Flashcards

1
Q

O que é virtualização?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

As principais qualidades da virtualização são:

A

O reaproveitamento de recursos, a
portabilidade e a segurança.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Com a virtualização podemos:

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

A virtualização pode ser implementada de duas formas:

A

Combinação de hardware e software e apenas por software.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Implementação de virtualização por hardware e software:

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Implementação de virtualização por
software:

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Qual é a principal diferença entre emulação e virtualização?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Conceito de emulação:

A

É 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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

O que é uma máquina virtual?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

O que difere uma VM de um emulador?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Atributos comuns de máquinas virtuais:

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

O que é um monitor de máquinas virtuais (Virtual Machine Monitor – VMM)?

A

É 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).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

As principais funções do monitor de máquinas virtuais são:

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Para a construção de máquinas virtuais, existem duas abordagens:

A

Máquinas virtuais clássicas ou de Tipo I.
Máquinas virtuais hospedadas ou de Tipo II.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Máquinas virtuais clássicas ou de Tipo I:

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Máquinas virtuais clássicas ou de Tipo II:

A

Nesta abordagem o monitor é implementado como um processo de um sistema operacional “real” (sistema anfitrião).
O monitor de tipo II funciona de forma análoga ao de tipo I, com a diferença que ele é executado sobre o sistema operacional anfitrião, como um processo deste. Neste modelo o monitor simula todas as operações que o sistema anfitrião controlaria.

17
Q

Honeypots

A

Um honeypot é um sistema ou aplicação que é colocado em uma rede de forma
proposital para que seja comprometido ou “atacado”.
Máquinas com honeypots instalados executam serviços falsos, que um atacante trata como se fosse um serviço original. Entretanto serviços como este têm a finalidade de monitorar os passos do atacante para que se saiba como e quando foram feitos os ataques e o que se pretende fazer após a invasão do sistema, gerando logs dessas informações para os administradores do sistema.

18
Q

Sistemas de detecção de intrusão (Intrusion Detection System – IDS):

A

As ferramentas IDS têm a finalidade de ficar a todo tempo monitorando um sistema e
tentando reconhecer ações intrusivas ou fora de um padrão normal de uso. Caso
detectem alguma anomalia, elas automaticamente disparam um alerta ao administrador do sistema ou executam ações defensivas.

19
Q

Existem conceitualmente dois tipos de implementação de ferramentas IDS:

A

Host Based IDS (HIDS): são instalados em um servidor (host) para prevenir ataques ao próprio servidor. Essa implementação é utilizada quando se deseja elevar a segurança das informações contidas neste servidor.

Network Based IDS (NIDS): essa implementação baseia-se na captura e análise dos pacotes na rede, e são instalados em máquinas em que se concentra o tráfego de rede.

20
Q

Basicamente existem dois modos de privilégios na CPU para execução de código
binário:

A

O modo de usuário (user mode) e modo supervisor (kernel mode). O sistema
operacional executa em modo supervisor, gerenciando os processos e, portanto tem o
controle total da máquina. Os processos dos sistemas operacionais executam em modo usuário e por isso não detêm o controle total da máquina.

21
Q

Podemos dizer que as três partes básicas de uma virtualização são:

A
  • Sistema real, nativo ou hospedeiro (host system): possui os recursos reais de hardware e software do sistema, ex.: processador Intel com S.O. Windows;
  • Camada de virtualização, hypervisor ou monitor (VMM - Virtual Machine Monitor):
    disponibiliza as interfaces virtuais e provê suporte às máquinas virtuais;
  • Sistema virtual ou sistema convidado (guest system): executa sobre o sistema virtualizado, vários sistemas virtuais podem coexistir sobre o mesmo sistema real, ex.: uma VM Linux Ubuntu e uma VM Windows XP rodando sobre um sistema operacional Windows Server 2012.
22
Q

Em relação aos níveis de virtualização, temos:

A
  • Nível de hardware: camada de virtualização localizada diretamente sobre o hardware (sem um sistema operacional);
  • Nível de sistema operacional: partições lógicas em uma plataforma, sendo que cada partição é vista como uma máquina isolada. Localizado entre o S.O. e as aplicações;
  • Nível de linguagem de programação: a camada de virtualização é um programa de aplicação (dificilmente cobrado em concurso).
23
Q

Hypervisor Tipo 1 (Baremetal):

A

O hypervisor tipo 1 roda diretamente sobre o hardware, controlando o hardware e o acesso ao sistema operacional convidado (guest). Seu papel é compartilhar os recursos de hardware entre as VMs de forma que elas pensem ter recursos exclusivos (processador, memórias, mídias de armazenamento e dispositivos de E/S).
Existem dois subtipos do baremetal: monolítico e microkernelizado.

24
Q

Hypervisor monolítico:

A

Necessita de grande quantidade de código entre o hardware e as VMs, pois emula todo o hardware para a as VMs. Os drivers estão no próprio hypervisor (como se fosse um S.O. com todos os drivers necessários);

25
Q

Hypervisor microkernelizado:

A

Utiliza drivers em cada VM, tendo o hypervisor como única camada entre o S.O. guest e o hardware. Ou seja, cada VM que “se vire” em buscar os drivers necessários, o hypervisor fica mais enxuto, tornando-se mais seguro (superfície mínima de ataque).

26
Q

Hypervisor Tipo 2 (Hosted):

A

É o hypervisor que funciona como uma aplicação que fornece um ambiente de
execução para outras aplicações. Isso mesmo, uma aplicação que suporta outras aplicações! Agora é necessário um sistema operacional nativo, afinal trata-se de uma aplicação!
A camada de virtualização é composta por um sistema operacional convidado (guest), possivelmente diferente do sistema operacional nativo, por exemplo: rodar o Linux em uma máquina com sistema
operacional Windows. Também é criado um hardware virtual sobre os recursos de hardware oferecidos pelo sistema operacional nativo.

27
Q

Paravirtualização:

A

Para contornar as desvantagens elencadas na virtualização completa, surgiu a paravirtualização. A VM enxerga uma abstração do hardware que não é idêntica ao hardware físico. Os dispositivos de
hardware são acessados por drivers do próprio hypervisor, fazendo com que o desempenho seja melhor! Mas, o problema é que a paravirtualização requer modificação no sistema operacional
convidado.

28
Q

Virtualização assistida por hardware:

A

As máquinas virtuais e emuladores têm acesso direto a determinadas instruções do processador, que rodam de maneira nativa na CPU por serem preparadas especificamente para a virtualização e estarem implementadas no hardware. O método reúne o melhor dos mundos da virtualização e paravirtualização, entregando mais performance e eliminando a necessidade de se realizar ajustes no sistema convidado.