Escolar Documentos
Profissional Documentos
Cultura Documentos
Livro VM Laureano PDF
Livro VM Laureano PDF
Marcos Laureano
Novatec Editora
Capítulo 1
Máquinas virtuais
“O que agora é provado foi uma vez apenas imaginado.” (William Blake,
poeta inglês)
Aplicações
Sistema
operacional
Hardware
Assim, aplicações escritas para uma plataforma operacional (Figura 1.2) não
funcionam em outras plataformas (Figura 1.3).
MacOS
Linux
x86 x86
Aplicações
Sistema
operacional
Hardware
Uma máquina real é formada por vários componentes físicos que fornecem
operações para o sistema operacional e suas aplicações. Iniciando pelo núcleo do
sistema real, o processador central (CPU) e o chipset da placa-mãe fornecem um
conjunto de instruções e outros elementos fundamentais para o processamento
de dados, alocação de memória e processamento de E/S. Olhando mais detalha-
damente um sistema físico, temos ainda os dispositivos e os recursos, tais como
a memória, o vídeo, o áudio, os discos rígidos, os CD-ROMs e as portas (USB,
paralela, serial). Em uma máquina real, a BIOS ou devices drivers específicos for-
necem as operações de baixo nível para que um sistema operacional possa acessar
os vários recursos da placa-mãe, memória ou serviços de E/S (Figura 1.5).
18 Máquinas Virtuais e Emuladores
Camada de software
Camada de hardware
Cada máquina virtual, que recebe uma cópia (virtual) do computador, fornece
facilidades para uma aplicação ou um “sistema convidado” que acredita estar
executando sobre um ambiente convencional com acesso direto ao hardware, ou
seja, cada máquina virtual trabalha como um PC completo (normalmente pos-
suindo BIOS e sendo passível de configuração utilizando-se o Setup). Dispositivos
como o CD-ROM e unidades de disquetes podem ser compartilhados entre as
máquinas virtuais e o sistema host, em alguns casos até mesmo simultaneamente
(uma unidade de CD pode ser acessada por todos os sistemas). Um emulador
fornece uma abstração idêntica do hardware que está em uso, mas também pode
simular outros diferentes do atual.
ë 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”.
• Emulação do processador.
• Consoles de videogames.
Aplicação Aplicação
Convidado Convidado
Monitor
Hardware
Aplicação Aplicação
Sistema convidado
Monitor Aplicação
Sistema anfitrião
Hardware
Aplicação Aplicação
1 Monitor 1
Hardware
Sistema convidado
1 Monitor Aplicação
2
3 Sistema anfitrião
Hardware
Aplicação Aplicação
Máquina virtual
Aplicação Aplicação
Máquina virtual
Aplicação
Máquina virtual
Aplicação Java
Linux
VMware
Windows
Hardware (x86)
JAIL JAIL
Windows Linux
XEN
Hardware (x86)
Máquina virtual
Hardware x86
1.7.2 Paravirtualização
Na paravirtualização, o sistema a ser virtualizado (sistema convidado) sofre
modificações para que a interação com o monitor de máquinas virtuais seja
mais eficiente (Figura 1.16).
Chamadas de sistema do
sistema paravirtualizado
Máquina virtual
Hardware x86
0FFF 0000
Memória virtual
00FF 000F
Espaço reservado pela máquina
virtual para o sistema convidado
0000
O mesmo processo ocorre para acesso a disco: enquanto num sistema com
virtualização total o sistema convidado enxerga o disco como seu para uso ex-
clusivo, na paravirtualização o sistema convidado “sabe” que o disco é comparti-
lhado. Ainda, na virtualização total, sempre que o sistema realiza uma chamada
de sistema para acesso a disco, o monitor de máquinas virtuais deve capturar
essa chamada, interpretá-la e repassá-la para que o sistema anfitrião execute a
operação (em casos de máquinas virtuais de tipo II); em máquinas virtuais de
tipo I, o monitor de máquinas virtuais realiza a chamada de sistema a disco.
Muitos dos benefícios das máquinas virtuais utilizadas no ambiente dos main-
frames também podem ser obtidos nos computadores pessoais.
Software Software
Software Software
Virtualização
Abstração
1.11 O futuro
O uso de máquinas virtuais atingirá o seu auge em um curto espaço de tempo,
pois as pesquisas na indústria e nas universidades para aprimorar as questões
de segurança, mobilidade e performance têm crescido bastante.
38 Máquinas Virtuais e Emuladores
O passo mais importante para a ampla adoção das máquinas virtuais são as
pesquisas para uma nova geração de processadores.
Aplicação 3
Não utilizado 2
Não utilizado 1
Sistema operacional 0
Aplicação Aplicação 3
Não utilizado 2
Sistema Sistema
1 ou 3
convidado convidado
Camada de virtualização 0
Aplicação Aplicação 3
Sistema Sistema
0
convidado convidado
1.13 Bibliografia
GREN, Ola. Teaching computer concepts using virtual machines. SIGCSE Bulletin,
v. 31, p. 84-85, 1999.
AMD – Advanced Micro Devices. AMD64 Virtualization Codenamed “Pacifica”
Technology. Secure Virtual Machine Architecture Reference Manual, 2005.
ATTANASIO, C. R. Virtual machines and data security. Proceedings of the workshop
on virtual computer systems, 1973. Cambridge, Massachusetts, – USA, p.
206-209.
BARHAM, Paul et al. Xen and the art of virtualization. Proceedings of the 19th ACM
Symposium on Operating Systems Principles – SOSP 2003, p. 164-177.
BARHAM, Paul et al. Xen 2002. Technical Report Number 553, UCAM-CL-TR-
553, ISSN 1476-2986. University of Cambridge, 2003.
BELPAIRE, Gerald; HSU, Nai-Ting. Formal properties of recursive virtual machine
architectures. Proceedings of the 5th ACM Symposium on Operating Systems
Principles, 1973. Austin, Texas – USA, p. 89-96.
BLUNDEN, Bill. Virtual machine design and implementation in C/C++. Texas:
Wordware Publishing, 2002.
DEITEL, Harvey M.; DEITEL, Paul J.; CHOFFNES, David R. Operating systems.
3rd ed. New Jersey: Pearson Education, 2004.
Capítulo 1• Máquinas virtuais 41
DIKE, Jeff. A User-mode port of the Linux Kernel. Proceedings of the 4th Annual Linux
Showcase & Conference, 2000. Atlanta – USA. Disponível em: <http://user-
mode-linux.sourceforge.net/als2000/index.html>. Acesso em: 20 mar. 2003.
FRASER, Keir et al. The Xenoserver computing infrastructure. Technical Report
Number 552, UCAM-CL-TR-552, ISSN 1476-2986. University of Cambridge,
2003.
GARFINKEL, Tal; ROSENBLUM, Mendel. A virtual machine introspection based
architecture for intrusion detection. Proceedings of the 2003 Network and
Distributed System Security Symposium (NDSS), 2003.
GOLDBERG, Robert. Architecture of virtual machines. AFIPS National Computer
Conference. New York: NY – USA, 1973.
GOLDBERG, Robert. Survey of virtual machine research. IEEE Computer
Magazine, v. 7, p. 34-45, 1974.
GOLDBERG, Robert; MAGER, Peter. Virtual machine technology: a bridge from
large mainframes to networks of small computers. IEEE Proceedings Compcon
Fall 79, p. 210-213, 1979.
HONEYNET PROJECT. Know your enemy: defining virtual honeynets
– Differents types of virtual honeynets. Disponível em: <http://project.
honeynet.org/papers/virtual/>. Acesso em: 15 dez. 2003.
INTEL, Intel Corporation. Intel Architecture. Developer’s Manual. Santa Clara,
CA, v. 1, 2 and 3, 1998.
INTEL. Intel virtualization technology specification for the Intel Itanium Architecture.
Document Number 305942-002, 2005.
KELEM, Nancy; FEIERTAG, Richard. A separation model for virtual machine
monitors. Research in security and privacy,1991. Proceedings.1991 IEEE Computer
Society Symposium on 1991, Oakland, California – USA, p. 78-86.
KING, Samuel; CHEN, Peter. Operating system extensions to support host based virtual
machines. Technical Report CSE-TR-465-02. University of Michigan, 2002.
KING, Samuel; DUNLAP, George; CHEN, Peter. Operating system support for
virtual machines. Proceedings of the 2003 USENIX Technical Conference,
2003. p. 71-84.
MALLACH, Efrem. On the relationship between virtual machines and emulators.
Proceedings of the Workshop on Virtual Computer Systems, 1973. Cambridge,
Massachusetts – USA, p. 117-126.
42 Máquinas Virtuais e Emuladores