Académique Documents
Professionnel Documents
Culture Documents
Marcos Laureano
Novatec Editora
Captulo 1
Mquinas virtuais
O que agora provado foi uma vez apenas imaginado. (William Blake, poeta ingls)
O conceito de mquina virtual no novo suas origens remetem ao incio da histria dos computadores, no final dos anos de 1950 e incio de 1960. As mquinas virtuais foram originalmente desenvolvidas para centralizar os sistemas de computador utilizados no ambiente VM/370 da IBM. Naquele sistema, cada mquina virtual simula uma rplica fsica da mquina real e os usurios tm a iluso de que o sistema est disponvel para seu uso exclusivo. A utilizao de mquinas virtuais est se tornando uma alternativa para vrios sistemas de computao, pelas vantagens em custos e portabilidade, inclusive em sistemas de segurana.
16
O papel do hardware executar as operaes solicitadas pelas aplicaes. O sistema operacional recebe as solicitaes das operaes (por meio das chamadas de sistemas) e controla o acesso ao hardware principalmente nos casos em que os componentes so compartilhados, como sistema de memria e Entrada e Sada. Os sistemas operacionais, assim como as aplicaes, so projetados para aproveitar o mximo dos recursos que o hardware fornece. Normalmente os projetistas de hardware, sistema operacional e aplicaes trabalham de forma independente (em empresas e tempos diferentes). Esses trabalhos independentes geraram, ao longo dos anos, vrias plataformas operacionais diferentes (e no compatveis entre si). Assim, aplicaes escritas para uma plataforma operacional (Figura 1.2) no funcionam em outras plataformas (Figura 1.3).
Aplicaes Macintosh Aplicaes Windows Aplicaes Linux
MacOS
Windows
Linux
Power PC
x86
x86
MacOS
A utilizao de mquinas virtuais possibilita resolver esse problema, pois a mquina virtual cria uma camada para compatibilizar diferentes plataformas (Figura 1.4). Essa camada softwares que podem ser utilizados para fazer os
17
recursos parecerem diferentes do que realmente so chamada de virtualizao. A conceituao de mquinas virtuais, seus tipos, caractersticas e mtodos sero detalhados nos prximos tpicos.
Aplicaes Sistema operacional Mquina virtual Hardware Camada de compatibilidade
18
Camada de software Camada de hardware virtual Aplicaes Linux Aplicaes Windows
Aplicaes
Aplicaes
Camada de hardware
Processador
Perifricos
Discos
Disquete
19
A funcionalidade e o nvel de abstrao de uma mquina virtual encontramse em uma posio intermediria entre uma mquina real e um emulador, de forma que os recursos de hardware e de controle so abstrados e usados pelas aplicaes. Uma mquina virtual um ambiente criado por um monitor de mquina virtual (Virtual Machine Monitor VMM), tambm denominado sistema operacional para sistemas operacionais . O monitor de mquinas virtuais tambm conhecido como hypervisor. O monitor pode criar uma ou mais mquinas virtuais sobre uma nica mquina real. Enquanto um emulador fornece uma camada de abstrao completa entre o sistema em execuo e o hardware, um monitor fornece uma interface (por meio da multiplexao do hardware) que idntica ao hardware subjacente e controla uma ou mais mquinas virtuais. Cada mquina virtual, que recebe uma cpia (virtual) do computador, fornece facilidades para uma aplicao ou um sistema convidado que acredita estar executando sobre um ambiente convencional com acesso direto ao hardware, ou seja, cada mquina virtual trabalha como um PC completo (normalmente possuindo BIOS e sendo passvel de configurao utilizando-se o Setup). Dispositivos como o CD-ROM e unidades de disquetes podem ser compartilhados entre as mquinas 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 abstrao idntica do hardware que est em uso, mas tambm pode simular outros diferentes do atual.
Nota: As finalidades primrias de um sistema operacional so habilitar aplicaes a interagir com um hardware de computador e gerenciar os recursos de hardware e software de um sistema. Por tal motivo, o monitor de mquinas virtuais pode ser definido como sistema operacional para sistemas operacionais.
20
diferente. a mais rpida tecnologia de emulao, mas tambm a mais complexa de se implementar e de se manter a compatibilidade com verses anteriores. Software: Toda emulao feita por software, ou seja, o emulador reconfigura a mquina em uso para a aplicao que se deseja emular. A emulao por software a mais fcil de se implementar e portar para outras plataformas, mas em compensao a forma mais lenta de emulao. Combinao, emulao combinada ou combo: O emulador composto de hardware e software. O software normalmente faz o papel principal da emulao, enquanto o hardware fornece partes chaves do processo. Oferece grande flexibilidade em termos de projeto. A classificao mais atual, e mais completa, define que os emuladores podem ser divididos em quatro tipos bsicos: Totalmente baseada em hardware: A soluo independe de software para ser utilizada. Um exemplo de aplicao seria um processador emulando uma arquitetura mais antiga para garantir a execuo de softwares legados, como os atuais processadores de 64 bits da AMD, que rodam aplicaes 32 bits por meio da emulao do processador. Parcialmente baseada em hardware: O hardware projetado para suportar a emulao, mas precisa de uma aplicao em software para que seus recursos sejam utilizados. O hardware da IBM para mainframes um exemplo, pois foi desenvolvido para suportar a virtualizao, porm necessita de um sistema operacional que utilize esses recursos disponveis. Parcialmente baseada em software: A emulao obtida pelo software que utiliza alguns recursos do hardware para prover a emulao. Alguns emuladores na plataforma Macintosh utilizam-se de recursos de algumas placas de vdeo (3dFX Voodoo2, por exemplo) diretamente, mesmo que a plataforma no suporte o perifrico adequadamente ou o prprio perifrico no disponibilize nativamente os recursos para o sistema operacional. Totalmente baseada em software: O emulador no precisa de nenhum hardware para prover a emulao, ou seja, o software prov todos os recursos para isso. Esse tipo de emulador o mais popular pela adaptabilidade (o cdigo-fonte de um emulador pode ser aproveitado para emular vrias plataformas parecidas) e portabilidade. Emuladores de plataformas Atari e Amiga so alguns exemplos.
21
Os emuladores podem ser classificados ainda de acordo com a natureza do uso: Emulao do processador. Emulao de um sistema operacional. Emulao de uma plataforma de (hardware) especfico. Consoles de videogames.
22
Aplicao Convidado Monitor Hardware
23
1. O sistema convidado (guest system) acessa diretamente o hardware. Essa forma de acesso se d pela implementao de modificaes no ncleo do sistema convidado e no monitor. Essa otimizao ocorre, por exemplo, no subsistema de gerncia de memria do ambiente Xen. Em monitores de tipo II (Figura 1.9):
Aplicao Aplicao Aplicao Sistema convidado 1 2 3 Sistema anfitrio Hardware
Monitor
Aplicao
1. O sistema convidado (guest system) acessa diretamente o sistema anfitrio (host system). Essa otimizao implementada pelo monitor, oferecendo partes da API do sistema anfitrio ao sistema convidado. Um exemplo dessa otimizao ocorre no sistema de arquivos no VMware: em vez de reconstruir integralmente o sistema de arquivos sobre um dispositivo virtual provido pelo monitor, o sistema convidado faz uso da implementao de sistema de arquivos nativa existente no sistema anfitrio.
24
2. O sistema convidado (guest system) acessa diretamente o hardware. Essa otimizao implementada parcialmente pelo monitor e parcialmente pelo sistema anfitrio, pelo uso de um device driver especfico. Um exemplo tpico dessa otimizao o acesso direto a dispositivos fsicos como leitor de CDs, hardware grfico e interface de rede provida pelo sistema VMware aos sistemas operacionais convidados. 3. O monitor acessa diretamente o hardware. Neste caso, um device driver especfico instalado no sistema anfitrio, oferecendo ao monitor uma interface de baixo nvel para acesso ao hardware subjacente. Essa abordagem usada pelos sistemas VMware e UML. Essas otimizaes levam a arquiteturas que diferem dos modelos bsicos I e II, sendo por isso chamadas de abordagens hbridas.
25
Aplicao
Aplicao
Sistema operacional (Linux, Windows, Unix) CPU, RAM, dispositivos de E/S - Virtual Mquina virtual Sistema operacional (Linux, Windows, Unix) CPU, RAM, dispositivos de E/S - Real
Figura 1.10 Virtualizao do hardware.
Aplicao
Aplicao
Sistema operacional (Linux, Windows, Unix) - Virtual Mquina virtual Sistema operacional (Linux, Windows, Unix) CPU, RAM, dispositivos de E/S - Real
Figura 1.11 Virtualizao do sistema operacional.
26
Aplicao
Mquina virtual Sistema operacional (Linux, Windows, Unix) CPU, RAM, dispositivos de E/S - Real
Figura 1.12 Virtualizao de linguagens de programao.
27
A Figura 1.14 apresenta um exemplo mais complexo de utilizao de mquinas virtuais. Este exemplo teoricamente possvel, mas s implementvel se todas as aplicaes de mquinas virtuais e emuladores suportassem a auto-virtualizao, ou seja, se fossem capazes de executar uma cpia de si internamente. Infelizmente nem todas as mquinas virtuais ainda tm essa capacidade.
Apl JAIL Apl JAIL Aplicao Windows II Windows II Windows XEN Hardware (x86)
Aplicao
FreeBSD VMware
JVM
28
OS Level (sistema operacional): Esse nvel de virtualizao obtido utilizando-se uma chamada de sistema (system call) especfica. O principal benefcio da virtualizao nesse nvel criar uma camada para obter o isolamento de processos. Cada sistema virtualizado com seu prprio endereo IP e outros recursos de hardware (embora limitado). A virtualizao ocorre a partir de um diretrio ou sistema de arquivos previamente preparado para esse fim. O Jail e o Ensim so exemplos dessa arquitetura. Nvel de aplicao ou virtualizao de linguagens de programao: A virtualizao obtida por meio da abstrao de uma camada de execuo Uma aplicao utiliza essa camada para executar as instrues do . programa. Essa soluo garante que uma aplicao possa ser executada em qualquer plataforma de software ou hardware, pois a camada abstrada de forma idntica em todas as plataformas, porm necessria uma mquina virtual especfica para cada plataforma. Java, Microsoft .NET CLI e Parrot so exemplos dessa arquitetura.
29
User level library interface (biblioteca de interface para usurio) : Vrios sistemas e aplicaes so escritos utilizando-se um conjunto de APIs fornecidos pelo sistema (aplicaes sob o sistema Windows so os exemplos mais populares), exportados para o nvel do usurio por meio de bibliotecas. A virtualizao nesse nvel obtida com a abstrao do topo do sistema operacional para que as aplicaes possam executar em outra plataforma. O Wine um exemplo desse tipo de arquitetura.
O principal benefcio da virtualizao total justamente o fato de que o sistema a ser virtualizado no sofre qualquer tipo de alterao; em compensao, o sistema virtualizado executa de forma mais lenta e o monitor de mquinas virtuais precisa implementar alternativas para que as operaes privilegiadas possam ser executadas em processadores que no suportem a virtualizao nativamente, tais como os processadores Intel 32 bits disponveis atualmente.
30
1.7.2 Paravirtualizao
Na paravirtualizao, o sistema a ser virtualizado (sistema convidado) sofre modificaes para que a interao com o monitor de mquinas virtuais seja mais eficiente (Figura 1.16).
Sistema convidado paravirtualizado (com modificaes) Chamadas de sistema do sistema paravirtualizado Chamada de sistema padro Hardware x86 virtualizado totalmente Mquina virtual Hardware x86
Figura 1.16 Representao da paravirtualizao.
A paravirtualizao embora exija que o sistema a ser virtualizado precise ser modificado, o que diminui a portabilidade do sistema permite que o sistema convidado consiga acessar recursos do hardware diretamente. O acesso monitorado pelo monitor de mquinas virtuais, que fornece ao sistema convidado todos os limites do sistema, tais como endereos de memria que podem ser utilizados e endereamento em disco, por exemplo. A paravirtualizao reduz a complexidade do desenvolvimento das mquinas virtuais, j que, historicamente, os processadores no suportam a virtualizao nativa. A performance obtida, a principal razo para utilizar a paravirtualizao, compensa as modificaes que sero implementadas nos sistemas convidados.
31
utilizando o incio da memria. A Figura 1.17 demonstra exatamente essa dificuldade: a mquina real tem endereamento de memria iniciando em 0000 at FFFF. O monitor reserva o espao de memria compreendido entre 000F e 00FF, mas o sistema convidado enxerga esse espao reservado como sua memria total e, portanto, iniciando em 0000 e finalizando em 000F. Sempre que o sistema convidado acessa a memria virtual, o monitor faz a traduo dos endereos para acessar a memria real. Isso no ocorre na paravirtualizao, pois o monitor informa ao sistema convidado qual o espao de memria que pode ser utilizado. Dessa forma, o sistema convidado acessa diretamente a memria fornecida sem interferncia do monitor de mquinas virtuais.
FFFF 0FFF Memria fsica 0000 Memria virtual
00FF 0000
000F
O mesmo processo ocorre para acesso a disco: enquanto num sistema com virtualizao total o sistema convidado enxerga o disco como seu para uso exclusivo, na paravirtualizao o sistema convidado sabe que o disco compartilhado. Ainda, na virtualizao total, sempre que o sistema realiza uma chamada de sistema para acesso a disco, o monitor de mquinas virtuais deve capturar essa chamada, interpret-la e repass-la para que o sistema anfitrio execute a operao (em casos de mquinas virtuais de tipo II); em mquinas virtuais de tipo I, o monitor de mquinas virtuais realiza a chamada de sistema a disco. O resultado da chamada de sistema ento repassado para o sistema convidado. Na paravirtualizao, o sistema convidado sabe que o disco compartilhado e realiza diretamente o acesso ao disco (sem a interferncia do monitor de mquinas virtuais), bem como aos demais dispositivos (mouse, teclado etc.); o monitor somente controla a ordem de acesso, no caso de mltiplos sistemas convidados em execuo simultaneamente.
32
33
34
Encapsulamento: A camada de virtualizao pode ser usada para manipular e controlar a execuo do software na mquina virtual. Pode tambm usar uma ao indireta para dar prioridade ao software ou fornecer um ambiente melhor para execuo. Por exemplo, mquinas virtuais para as verificaes de runtime podem ajudar a reduzir a quantidade de erros de programas. O encapsulamento fornece outra propriedade, que o encapsulamento de estado, que pode ser utilizado para construir checkpoints do estado da mquina virtual. Estados salvos tm vrios usos, como rollback e anlise post-mortem. Desempenho: Adicionar uma camada de software a um sistema pode afetar o desempenho do software que funciona na mquina virtual, mas os benefcios proporcionados pelo uso de sistemas virtuais compensam a perda de desempenho. Hardwares virtualizveis, como as mquinas mainframe da IBM, tm uma propriedade chamada execuo direta que permite que esses sistemas obtenham, com a utilizao de mquinas virtuais, desempenho similar ao de um sistema convencional equivalente.
35
Muitos dos benefcios das mquinas virtuais utilizadas no ambiente dos mainframes tambm podem ser obtidos nos computadores pessoais. Existem vrias vantagens para a utilizao de mquinas virtuais em sistemas de computao: Facilitar o aperfeioamento e testes de novos sistemas operacionais. Auxiliar no ensino prtico de sistemas operacionais e programao ao permitir a execuo de vrios sistemas para comparao no mesmo equipamento. Executar diferentes sistemas operacionais sobre o mesmo hardware, simultaneamente. Simular configuraes e situaes diferentes do mundo real, como, por exemplo, mais memria disponvel ou a presena de outros dispositivos de E/S. Simular alteraes e falhas no hardware para testes ou reconfigurao de um sistema operacional, provendo confiabilidade e escalabilidade para as aplicaes. Garantir a portabilidade das aplicaes legadas (que executariam sobre uma mquina virtual simulando o sistema operacional original). Desenvolvimento de novas aplicaes para diversas plataformas, garantindo a portabilidade dessas aplicaes. Diminuio de custos com hardware, utilizando a consolidao de servidores. Facilidades no gerenciamento, migrao e replicao de computadores, aplicaes ou sistemas operacionais. Prover um servio dedicado a um cliente especfico com segurana e confiabilidade.
36
Processador no virtualizado: A arquitetura dos processadores Intel 32 bits no permite naturalmente a virtualizao. O trabalho Formal Requirements for Virtualizable Third Generation Architectures demonstra que uma arquitetura pode suportar mquinas virtuais somente se todas as instrues aptas a inspecionar ou modificar o estado privilegiado da mquina forem executadas em modo mais privilegiado e puderem ser interceptadas. O processador Intel de 32 bits no se encontra nessa situao, pois no possvel virtualizar o processador para executar todas as operaes em um modo menos privilegiado.
Nota: Esto sendo conduzidas pesquisas por parte dos fabricantes de processadores para a implementao da virtualizao nos processadores atuais. Um exemplo tecnologia da Advanced Micro Devices (AMD) batizada de Pacifica adotada nos processadores de 64 bits. Outro exemplo a tecnologia de virtualizao do processador batizada de Vanderpool adotada pela Intel nos seus processadores Itanium. Infelizmente as tecnologias Pacifica e Vanderpool no sero compatveis em sua totalidade, o que certamente ir dificultar o desenvolvimento de novos softwares para essas arquiteturas.
Diversidade de equipamentos : Existe uma grande quantidade de equipamentos disponveis (caractersticas da arquitetura aberta do PC). Em uma execuo tradicional, o monitor teria de controlar todos esses dispositivos, o que requer um grande esforo de programao por parte dos desenvolvedores de monitores. Preexistncia de softwares: Ao contrrio de mainframes, que so configurados e controlados por administradores de sistema, os desktops e workstations normalmente j vm com um sistema operacional instalado e pr-configurado, e que normalmente ajustado pelo usurio final. Nesse ambiente, extremamente importante permitir que um usurio possa utilizar a tecnologia das mquinas virtuais, mas sem perder a facilidade de continuar utilizando seu sistema operacional padro e aplicaes. A principal desvantagem do uso de mquinas virtuais o custo adicional de execuo dos processos em comparao com a mquina real. Esse custo muito varivel, podendo chegar a 50% ou mais em plataformas sem suporte de hardware virtualizao, como os PCs de plataforma Intel. Esse problema inexiste em ambientes de hardware com suporte virtualizao, como o caso de mainframes. Todavia, pesquisas recentes tm obtido a reduo desse custo a patamares abaixo de 20%, graas, sobretudo, a ajustes no cdigo do sistema anfitrio.
37
Outra tcnica utilizada a reescrita on-the-fly de partes do cdigo executvel das aplicaes, inserindo pontos de interceptao do controle antes/aps as instrues privilegiadas cuja virtualizao no permitida na plataforma Intel de 32 bits. Um exemplo desse avano o projeto Xen, no qual foram obtidos custos da ordem de 3% para a virtualizao de ambientes Linux, FreeBSD e Windows XP. Esse trabalho abre muitas perspectivas na utilizao de mquinas virtuais em ambientes de produo, ainda mais com novas pesquisas para suporte de virtualizao nos processadores.
Software
Software
Virtualizao
Arquivo Arquivo
Arquivo
Arquivo
Abstrao
1.11 O futuro
O uso de mquinas virtuais atingir o seu auge em um curto espao de tempo, pois as pesquisas na indstria e nas universidades para aprimorar as questes de segurana, mobilidade e performance tm crescido bastante.
38
Os principais campos de pesquisas nos prximos anos, para melhorar o suporte a virtualizao, devero ser: CPU: AMD e Intel anunciaram tecnologias (Pacifica e Vanderpool, respectivamente) para que a virtualizao sobre a plataforma x86 ocorra de forma mais natural e tranqila. Essas tecnologias simplificaro o desenvolvimento de novos monitores de mquinas virtuais. Memria: Vrias tcnicas tm permitido que a virtualizao da memria seja mais eficiente. Pesquisas futuras devem levar os sistemas operacionais convidados a gerenciar a memria juntamente com o monitor de mquinas virtuais (gerncia cooperativa). Dispositivos de E/S: Os dispositivos de E/S sero projetados para fornecer suporte virtualizao com alta-performance. O prprio dispositivo ir suportar a multiplexao, de forma a permitir o acesso simultneo por vrios sistemas virtuais. A responsabilidade pelo acesso aos dispositivos dever passar do monitor para o sistema convidado. O passo mais importante para a ampla adoo das mquinas virtuais so as pesquisas para uma nova gerao de processadores. Os processadores atuais implementam quatro nveis de operao (0,1,2 e 3). Cada nvel representa o privilgio para a execuo de cdigos binrios dentro do processador. Quanto maior o nvel, menor o privilgio para execuo. Por vrias razes de implementao dos sistemas operacionais, somente os nveis 0 e 3 so utilizados (Figura 1.19).
Aplicao No utilizado No utilizado Sistema operacional CPU Intel x86
Figura 1.19 Estrutura atual de um processador x86.
3 2 1 0
Como os sistemas operacionais executam no modo mais privilegiado (level 0), os sistemas de virtualizao precisam implementar vrias tcnicas (discutidas
39
nos tpicos anteriores) para fornecer a virtualizao, forando que os sistemas operacionais convidados rodem no privilgio 1 ou 3 (Figura 1.20).
Aplicao No utilizado Sistema convidado Sistema convidado Aplicao
3 2 1 ou 3 0
Figura 1.20 Estrutura atual do funcionamento da mquina virtual num processador x86.
Virtualizao total: Introduz muito overhead para a traduo de instrues. Paravirtualizao: Exige modificaes nos sistemas operacionais convidados, limitando sua compatibilidade e suporte.
Na nova gerao de processadores ser implementado um assistente em hardware (hardware assist) para suportar nativamente a virtualizao. Esse assistente ir rodar em um modo mais privilegiado. A Intel, com sua tecnologia Vanderpool, prope uma estrutura de processadores com esse hardware assist (Figura 1.21).
Aplicao Sistema convidado Aplicao Sistema convidado
3 0 Hardware Assist
claro, as mquinas virtuais existentes devero ser alteradas para obterem os benefcios dessa nova tecnologia.
40
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-TR553, 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.
41
DIKE, Jeff. A User-mode port of the Linux Kernel. Proceedings of the 4th Annual Linux Showcase & Conference, 2000. Atlanta USA. Disponvel em: <http://usermode-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. Disponvel em: <http://project. honeynet.org/papers/virtual/>. Acesso em: 15 dez. 2003. INTEL, Intel Corporation. Intel Architecture. Developers 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
NANDA, Susanta; CHIUEH, Tzi-cker. A survey on virtualization technologies. Technical Report. Departament of Computer Science. University at Stony Brook, NY, 2005. ZDEN, Banu; GOLDBERG, Aaron; SILBERSCHATZ, Avi. Virtual computers: a new paradigm for distributed operating systems. AT&T Bell Laboratories, Murray Hill, New Jersey USA, 1994. POPEK, Gerald; GOLDBERG, Robert. Formal requirements for virtualizable third generation architectures. Communications of the ACM, v. 17, n. 7, p. 412421, 1974. ROSENBLUM, Mendel. The reincarnation of virtual machines. New York, Queue Focus ACM Press, 2004, p. 34-40. ROSENBLUM, Mendel; GARFINKEL, Tal. Virtual machine monitors: current tecnhology and future trends. IEEE Computer Magazine, v. 38, n. 5, p. 39-47, mai. 2005. SILBERCHATZ, Avi; GALVIN, P. Sistemas operacionais: conceitos. So Paulo: Prentice Hall, 2000. SIRER, Emin; GRIMM, Arthur; BERSHAD, Brian. Design and implementation of a distributed virtual machine for network computers. Proceedings of the 17th ACM Symposium on Operating Systems Principles, 1999. Charleston, Carolina do Sul USA, p. 202-216. SMITH, James E.; NAIR, Ravi. The architecture of virtual machines. IEEE, p. 3238, 2005. SUGERMAN, Jeremy; VENKITACHALAM, Ganesh; LIM, Beng-Hong. Virtualizing I/O devices on Vmware workstations hosted virtual machine monitor. Proceedings of the 2001 USENIX Annual Technical Conference, 2001, p. 1-14. TIJMS, Arjan. Binary translation: classification of emulators. Technical Report. Leiden Institute for Advanced Computer Science University Leiden, 2000. VARIAN, Melinda. VM and the VM community: past, present, and future. Sessions of SHARE. Sessions 9059-9061. Melbourne Australia, 1989 (ltima reviso agosto de 1997). VMware Inc. VMware Technical White Paper. Palo Alto, CA USA, 1999. WHITAKER, Andrew; SHAW Marianne; GRIBBLE, Steven. Denali: A scalable , isolation kernel. Proceedings of the Tenth ACM SIGOPS European Workshop, Saint-Emilion Frana, 2002.