ACII - Livro WP

Transcrição

ACII - Livro WP
104
VirtualizaÅÉo
VirtualizaÅÇo x86
Na computaÅÉo, o software de virtualizaÅÇo de x86 com emulaÅÉo de processador e hardware x86. Um "convidado"
ou "virtual" OS pode funcionar como um processo em um "hospedeiro" ou "fàsica" do sistema com pouca ou
nenhuma modificaÅÉo para o sistema operacional convidado. Uma mÑquina virtual (VM) á um ambiente criado por
um virtualizador (como o VirtualBox). Clientes executam sistemas operacionais em mÑquinas virtuais.
O cenÑrio a seguir ilustra o tàpica virtualizaÅÉo x86 desktop:
í Um PC desktop padrÉo (a mÑquina fàsica hospedeira) á executado a 32-bit sistema operacional Linux Ubuntu.
í A "VMware Player para Linux" [1] á executado no sistema.
í A compilaÅÉo padrÉo do Microsoft Windows XP (o sistema convidado) á instalado e executado no "VMware
Player para Linux" como uma mÑquina virtual x86.
í Os usuÑrios vãem um desktop normal do Windows XP dentro da janela do aplicativo VMware Player com
nenhuma instalaÅÉo ou hardware dedicado para a mÑquina virtual.
í Os usuÑrios podem iniciar e parar a mÑquina virtual na vontade de usÑ-lo como um computador fàsico executando
um OS com acesso a hardware, rede local e ë Internet.
í A mÑquina virtual aparece para a mÑquina hospedeira do sistema operacional como um aplicativo nativo que criar
e gerenciar uma coleÅÉo de arquivos no disco ràgido do hospedeiro e usa a memÄria RAM da mÑquina hospedeira
quando estÑ em execuÅÉo. Esse aplicativo nativo, um programa Linux, neste cenÑrio, aÅÇes de entrada e saàda sÉo
exibidas na Ñrea de trabalho virtual.
Tàcnicas de Software
VMware introduziu o primeiro produto de virtualizaÅÉo de x86 em 8 de Fevereiro de 1999. O "VMware Virtual
Platform", foi baseado em pesquisas anteriores de fundadores da VMware na Universidade de Stanford. VMware
arquivou para uma patente sobre suas tácnicas em Outubro de 1998, e recebeu Patente 6.397.242 [2] em 28 de Maio
de 2002. Software de virtualizaÅÉo VMware e similares para a famàlia de processador x86 deve empregar tácnicas de
traduÅÉo binÑria para interceptar e virtualizar a execuÅÉo de determinadas instruÅÇes. Estas tácnicas incorrer em
alguma sobrecarga de desempenho em comparaÅÉo com uma VM em execuÅÉo em uma arquitetura nativa
virtualizadora (como o IBM System/370 ou Motorola MC68020).
Microsoft oferece trãs opÅÇes de produtos baseado virtualizaÅÉo x86 no Windows: Microsoft Virtual PC e Microsoft
Virtual Server, baseado na tecnologia adquirida da Connectix e Hyper-V,mais soluÅÉo empresarial avanÅada.
SoluÅÇes em cÄdigo aberto incluir QEMU, Kernel-based Virtual Machine (em inglãs: KVM) e VirtualBox.
Os sistemas de investigaÅÉo Denali, L4 e Xen fornecem alto desempenho de virtualizaÅÉo de x86 atravás da
implementaÅÉo de uma mÑquina virtual que difere do hardware primario. Esta abordagem, conhecida como
paravirtualizaÅÉo, envolve portar sistemas operacionais para rodar em mÑquina virtual resultante, que nÉo
implementar as partes do conjunto de instruÅÇes x86 reais que sÉo difàceis de virtualizar. A partir da versÉo 3.0 Xen
suporta a virtualizaÅÉo completa com um sistema operacional convidado nÉo modificado. Isso pressupÇe que o
sistema hospedeiro suporta virtualizaÅÉo assistida por hardware (tais como Intel VT ou AMD-V).
VirtualizaÅÉo x86
105
Suporte de Hardware
A arquitetura do processador x86, inicialmente, nÉo cumprir o "Formal Requirements for Virtualizable Third
Generation Architectures", uma especificaÅÉo para a virtualizaÅÉo criado em 1974 por Gerald J. Popek e Robert P.
Goldberg. Assim, os desenvolvedores acharam difàcil implementar uma plataforma de mÑquina virtual na arquitetura
x86, sem sobrecarga significativa na mÑquina hospedeira. Em 2005 e 2006, Intel e AMD (trabalho independente)
resolveu este problema criando novas extensÇes "Processadoras" para a arquitetura x86. Embora a aplicaÅÉo efectiva
das extensÇes do processador diferem entre AMD e Intel, tanto alcanÅar o mesmo objetivo. Ambos permitem um
hypervisor da mÑquina virtual para executar um sistema operacional modificado, sem incorrer em penalidades de
desempenho significativo de emulaÅÉo.
AMD VirtualizaÅÇo (AMD-V)
AMD mercados de virtualizaÅÉo extensÇes para arquitetura 64-bit x86
como AMD Virtualization, abreviado AMD-V. î ainda referida como
"Pacifica", o processador AMD codenome interno do projeto pelo manual
de usuÑrio Xen (http://bits.xensource.com/Xen/docs/user.pdf).
Em 23 de maio de 2006, a AMD lanÅou o Athlon 64 ( "Orleans"), o Athlon
64 X2 ( "Windsor") e o Athlon 64 FX ( "Windsor") como o primeiro
processador AMD para suportar esta tecnologia.
AMD-V tambám possui a capacidade Athlon 64 e Athlon 64 X2 famàlia de
processadores com "F" ou "G" no soquete AM2 (nÉo o soquete 939),
Turion 64 X2 e Opteron de 2nd geraÅÉo [3] e 3rd-geraÅÉo [4] , Phenom e os
processadores Phenom II. Processadores Apenas Sempron exceto Sable e
Huron nÉo incluem suporte para processadores AMD-V.
AMD Phenom Matriz da CPU
ComeÅando com a linha Barcelona, AMD Opteron CPUs virtualizadoras
uma tecnologia de hardware chamado Rapid Virtualization Indexing, posteriormente adaptado pela Extended Page
Tables(EPT).
Tecnologia de VirtualizaÅÇo da Intel para o x86 (Intel VT-x)
Anteriormente denominados "Vanderpool", VT-x representa a tecnologia de virtualizaÅÉo da Intel para a plataforma
x86. Intel inclui Extended Page Tables (EPT), [5] uma tecnologia de virtualizaÅÉo page-table [6] na arquitetura
Nehalem. [7] [8] A partir de 2009 nem todos os recentes processadores Intel suportam VT-x - A Intel usa o recurso
para o seu segmento de mercado. [9] Para uma completa lista e actualizada consulte o site da Intel. [10] Os seguintes
processadores Intel inclui suporte para VT-x: [11]
VirtualizaÅÉo x86
í Pentium 4 662 e 672
í Pentium Extreme Edition 955 e 965 (e nÉo Pentium 4
Extreme Edition com HT)
í Pentium D 920-960 exceto 945, 935, 925, 915
í Core Duo T2300, T2400, T2500, T2600, T2700
(Yonah)
í Core 2 Duo E6300, E6400, E6320, E6420, E6540,
E6550, E6700, E6750, E6850 (Conroe)
í Core 2 Duo E5400, E7600, E8200, E8300, E8400,
E8500, E8600 e algumas versÇes do E7400 e E7500
(Wolfdale)
í Mobile Core 2 Duo T5500, T5600, T6670, T7100,
Intel Core i7 CPU (Bloomfield)
T7200, T7250, T7300, T7400, T7500, T7600,
T7600G, T7700, T7800, U7500, L7200, L7300, L7400, L7500, L7700, U7500, U7600, U7700 (Merom)
í Mobile Core 2 Duo SU9300, SU9400, SU9600, SL9300, SL9380, SL9400, SL9600, SP9300, SP9400, SP9600,
P7370, P7570, P8400, P8600, P8700, P8800, P9500, P9600, P9700, T8100, T8300, T9300, T9400, T9500,
T9550, T9600, T9800, T9900 (Penryn)
í Core 2 Quad Q6600, Q6700 (Kentsfield)
í Core 2 Quad Q8400, Q8400S, Q9300, Q9400, Q9400S, Q9450, Q9550, Q9550S, Q9650 e algumas versÇes do
Q8300 (Yorkfield)
í Core 2 Extreme X6800 ( Conroe XE )
í Core 2 Extreme QX6700, QX6800, QX6850 (Kentsfield XE)
í Core 2 Extreme QX9650, QX9770, QX9775 (Yorkfield XE)
í Xeon 3300 e +, 5000, 7000 series
í Atom Z520, Z530, Z540, Z550 (Silverthorne)
í Todos os processadores Intel Core i7
í Todos os processadores Intel Core i5
í Pentium Dual-Core E6300, E6500 e algumas versÇes do E5300 e E5400* [12]
í Celeron E3200, E3300, E3400 (que serÑ lanÅado em 2010)
Nota: Se nÉo tiver certeza se um processador Intel suporta Intel VT-x ou nÉo, verificar o Intel Processor Spec Finder
[13]
para obter informaÅÇes oficiais.
Importante: Mesmo que alguns modelos parecem suportar Intel VT, nem todas as CPUs do mesmo modelo
suportam. Exemplo: Intel Core 2 Duo T5500 parece suportar Intel VT [14], mas dos quatro modelos deste
processador, [15] apenas um (SL9U8 [16]) suporta Intel VT.
IOMMU
Uma entrada/saàda da unidade de gerenciamento de memÄria (IOMMU) permite que as mÑquinas virtuais
hospedeiras usem diretamente os dispositivos perifáricos, tais como Ethernet, placas aceleradors grÑficas e
controladores de disco ràgido, atravás da DMA e remapeamento de interrupÅÇes. Tanto a AMD e a Intel lanÅaram
especificaÅÇes:
í A especificaÅÉo da AMD, "AMD-Vi" (anteriormente apenas IOMMU)
í "Intel Virtualization Technology for Directed I/O" (VT-d)
106
VirtualizaÅÉo x86
Uma nota aos convidados de 64-bit
Pode-se executar um 64-bits em um 32-bit OS anfitriÉo se o processador subjacente á executado em modo de 64 bits
e suporta as extensÇes de virtualizaÅÉo necessÑrias. Nem todas as plataformas suportam isso.
VirtualizaÅÇo de recursos de ativaÅÇo
Intel VT-x caracteràstica necessÑria de ativaÅÉo na BIOS antes dos aplicativos fazerem uso dele. A maioria dos
fabricantes de computador e placa-mÉe/BIOS/chipset o suporte esta desabilitado por padrÉo, mas basta ativar estÑ
opÅÉo.
Software usando AMD-V e/ou Intel VT
O seguinte software condicionalmente faz uso de recursos de tecnologia de virtualizaÅÉo:
í Kernel-based Virtual Machine(em inglãs: KVM) - um mÄdulo de Linux e o hypervisor. Ele suporta ambas as
arquiteturas (AMD-V e VT-x) e requer uma delas. Suporta os clientes em tempo real.
í VirtualBox roda em Windows, FreeBSD, Linux, Mac OS X e Solaris. Ele oferece suporte a Intel VT e
AMD-V.[17]
í Xen - um sistema operacional separado e independente, estruturada com o Xen hypervisor como a camada mais
baixa e mais privilegiadas. Ele oferece suporte a Intel VT e AMD-V.
í Blue Pill (prova de conceito de malware)
í VMware ESX Server - tambám conhecido como vSphere. Produto de virtualizaÅÉo da VMware suporta Intel VT
e AMD-V.[18]
í Hyper-V - Hyper-V - a plataforma da Microsoft/Hypervisor que á executado no Windows Server 2008. Ele requer
Intel VT ou AMD-V.[19]
í LynxSecure - Secure MILS Hypervisor da LynuxWorks [20]. Suporta Intel VT-x e VT-d.
í Microsoft Virtual Server (tambám com a marca Microsoft Virtual PC ou o Virtual PC com Windows) - Virtual
Server 2005 R2 SP1 oferece suporte a virtualizaÅÉo assistida por hardware.[21] [22]
í Oracle VM - Oracle VM Server á (licenÅa GPL) usa o Xen hypervisor, enquanto que o Oracle VM Manager á de
cÄdigo fechado.[23]
í Bochs á um emulador multiplataforma da plataforma x86. Isso quer
dizer que ele pode executar SO's compilados para a plataforma x86.[24]
í Parallels Workstation e Parallels Desktop para Mac - hypervisor leve com suporte a Intel VT-x e AMD-V .
Requer suporte de hardware para executar mÑquinas virtuais de 64 bits.
í Parallels Server - Enterprise versÉo do Parallels Workstation e Desktop para Mac. IrÑ suporte a IOMMU Intel
VT-d. Requer suporte de hardware para executar mÑquinas virtuais de 64 bits.
í Padded Cell - tecnologia de mÑquina virtual da Green Hills Software [25] hospedados na INTEGRITY em tempo
real do sistema operacional. Suporta ambas as arquiteturas.
í Real-Time Systems [26] RTS Real-Time Hypervisor para x86.
í Sun xVM - xVM Server, baseado no Xen em x64.
í Virtual Iron - suporta ambas as arquiteturas.
í VirtualLogix [27] - suporta ambas as arquiteturas.
í VMware Workstation, VMware Fusion, VMware Server Å a partir de 2009 , as versÇes recentes suportam ambas
as arquiteturas.[28]
í VMware Server - Exige suporte de hardware para executar 64-bit mÑquinas virtuais.
í TenAsys [29] Virtualization Platform EVM para Windows.
í Windows Virtual PC 7 [30] - (a partir de 2009 versÉo mais recente do Microsoft Virtual PC, rodando no Windows
7) e XP Mode [31] (Windows da mÑquina virtual XP rodando dentro do Windows 7).
107
VirtualizaÅÉo x86
í acontis technologies [32] baseadas em x86 RTOSVisor que estÑ disponàvel como Type1 e Real-Time Type2
Hypervisor, como Type2 nÉo exigir o Intel VT ou AMD-V e tambám suporta os processadores single core.[33]
í Wind River Hypervisor [34] fornece virtualizaÅÉo em tempo real para sistemas embarcados utilizando Intel VT.
Convidados de 64 bits
Em algumas plataformas, á possàvel executar um cliente de 64 bits em um 32-bit OS hospedeiro se o processador
subjacente á executado no modo de 64 bits e suporta as extensÇes de virtualizaÅÉo necessÑria.[35]
Exemplo cenÉrios de virtualizaÅÇo x86
Executando uma ou mais aplicaÅÇes que nÉo sÉo suportados pelo sistema operacional hospedeiro
Uma mÑquina virtual rodando o sistema operacional convidado exigido poderia permitir que as aplicaÅÇes desejadas
para ser executado, sem alterar o sistema operacional hospedeiro.
AvaliaÅÉo de um sistema operacional alternativo
O novo sistema operacional pode ser executado dentro de uma VM, sem alterar o sistema operacional hospedeiro.
A virtualizaÅÉo de servidores
Måltiplos servidores virtuais poderÉo ser executados em um ånico servidor fàsico, a fim de aproveitar melhor os
recursos de hardware do servidor fàsico.
Duplicando ambientes especàficos
Uma mÑquina virtual pode, dependendo do software de virtualizaÅÉo utilizado, ser repetido e instalado em vÑrias
mÑquinas.
Criando um ambiente protegido
Se um convidado OS rodando em uma mÑquina virtual torna-se infectado com malware o sistema operacional do
hospedeiro, a exposiÅÉo ao risco pode ser limitado, dependendo da configuraÅÉo do software de virtualizaÅÉo.
Veja tambàm
í VirtualizaÅÉo de Desenvolvimento
í
í
í
í
í
í
í
í
MÑquina virtual
A comparaÅÉo da plataforma de mÑquinas virtuais
ComparaÅÉo da aplicaÅÉo de mÑquinas virtuais
Emulador
VirtualizaÅÉo assistida por hardware
VirtualizaÅÉo de rede
ParavirtualizaÅÉo
VirtualizaÅÉo de nàvel de sistema operacional
108
VirtualizaÅÉo x86
Referencias
[1] http:/ / www. vmware. com/ products/ player
[2] http:/ / www. google. com/ patents?vid=6397242|US
[3] http:/ / www. amd. com/ us-en/ Processors/ ProductInformation/ 0,,30_118_8796_8806~111165,00. html#111166 What are the main
differences between Second-Generation AMD Opteron processors and first-generation AMD Opteron processors?
[4] http:/ / www. amd. com/ us-en/ Processors/ ProductInformation/ 0,,30_118_8796_8806~119722,00. html#119726 What virtualization
enhancements do Third-Generation AMD Opteron processors feature?
[5] Neiger, Gil; A. Santoni, F. Leung, D. Rodgers, R. Uhlig. " Intel Virtualization Technology: Hardware Support for Efficient Processor
Virtualization (http:/ / download. intel. com/ technology/ itj/ 2006/ v10i3/ v10-i3-art01. pdf)". Intel Technology Journal 10 (3): 167Ä178. Intel.
DOI: 10.1535/itj.1003.01 (http:/ / dx. doi. org/ 10. 1535/ itj. 1003. 01).
[6] Gillespie, Matt (2007-11-12). Best Practices for Paravirtualization Enhancements from Intel Virtualization Technology: EPT and VT-d (http:/
/ software. intel. com/ en-us/ articles/ best-practices-for-paravirtualization-enhancements-from-intel-virtualization-technology-ept-and-vt-d).
Intel Software Network. Intel. PÑgina visitada em 2008-07-06.
[7] First the Tick, Now the Tock: Next Generation Intel Microarchitecture (Nehalem) (http:/ / www. intel. com/ pressroom/ archive/ reference/
whitepaper_Nehalem. pdf) (application/pdf). Intel. PÑgina visitada em 2008-07-06.
[8] Technology Brief: Intel Microarchitecture Nehalem Virtualization Technology (http:/ / download. intel. com/ business/ resources/ briefs/
xeon5500/ xeon_5500_virtualization. pdf) (application/pdf). Intel (2009-03-25). PÑgina visitada em 2009-11-03.
[9] http:/ / arstechnica. com/ microsoft/ news/ 2009/ 05/ r2e-microsoft-intel-goof-up-windows-7s-xp-mode. ars
[10] http:/ / ark. intel. com/ VTList. aspx
[11] Intel Processor Number Details (http:/ / www. intel. com/ products/ processor_number/ chart/ index. htm). Intel. Intel (2007-12-03). PÑgina
visitada em 2008-10-03.
[12] http:/ / ark. intel. com/ VTList. aspx
[13] http:/ / processorfinder. intel. com/
[14] http:/ / ark. intel. com/ Product. aspx?id=27253
[15] http:/ / processorfinder. intel. com/ List. aspx?ParentRadio=All& ProcFam=0& SearchKey=t5500
[16] http:/ / processorfinder. intel. com/ details. aspx?sSpec=SL9U8
[17] VirtualBox architecture (http:/ / www. virtualbox. org/ wiki/ VirtualBox_architecture). InnoTek.
[18] http:/ / www. vmware. com/ products/ vsphere/
[19] http:/ / www. microsoft. com/ windowsserver2008/ en/ us/ hyperv-faq. aspx#SetupandRequirements and http:/ / videos. techielife. com/
windows-server-2008-presentation-virtualization/ video-online/ 2008/ 11/ 28
[20] http:/ / www. lynuxworks. com/ virtualization/ hypervisor. php
[21] Virtual Server 2005 R2 SP1 Beta 1 download link and availability details (http:/ / blogs. technet. com/ jhoward/ archive/ 2006/ 04/ 28/
426703. aspx). technet.com (2006-04-28).
[22] Virtual Server 2005 R2 SP1 - beta 2 feature listing (http:/ / www. microsoft. com/ windowsserversystem/ virtualserver/ downloads/
servicepack. mspx). Microsoft.
[23] Oracle VM Technical Information (http:/ / www. oracle. com/ technologies/ virtualization/ technical. html)
[24] Site Oficial do Bochs (http:/ / bochs. sourceforge. net/ )
[25] http:/ / www. ghs. com/ products/ rtos/ integrity_pc. html
[26] http:/ / www. real-time-systems. com/ real-time_hypervisor/ index. php
[27] http:/ / www. virtuallogix. com/
[28] Hardware and firmware requirements for 64bit guest operating systems (http:/ / kb. vmware. com/ selfservice/ microsites/ search.
do?language=en_US& cmd=displayKC& externalId=1003945). VMware, Inc. (2009-12-17). PÑgina visitada em 2009-12-30.
[29] http:/ / www. tenasys. com/ evm/
[30] http:/ / www. microsoft. com/ windows/ virtual-pc/
[31] http:/ / www. microsoft. com/ windows/ virtual-pc/ get-started. aspx
[32] http:/ / www. acontis. de/ eng
[33] AT-RTOSVisor: Real-time Hypervisor Plattform (http:/ / www. acontis. com/ produkte/ at-rtosvisor/ index. php), acontis technologies
GmbH, retrieved on 2009-11-21
[34] http:/ / www. windriver. com/ products/ hypervisor/
[35] VMware Server FAQs: What does 64-bit operating system support mean? (http:/ / www. vmware. com/ products/ server/ faqs. html),
VMware Inc. retrieved on 2010-04-07
109
IBM System/370
110
IBM System/370
O IBM System/370 (ou simplesmente, S/370) foi uma famàlia de mainframes da IBM lanÅada em 30 de junho de
1970 como sucessora da sárie IBM System/360. A sárie mantinha compatibilidade reversa com o S/360, permitindo
uma migraÅÉo fÑcil para os utilizadores; isto, alám de uma performance aprimorada, eram os temas dominantes no
lanÅamento do produto. As novas caracteràsticas que o distinguiam do S/360 incluàam: capacidade padrÉo para
processor dual; suporte total para memÄria virtual e aritmática de 128 bits em ponto flutuante. Nem todas estas
caracteràsticas, contudo, faziam parte do S/370 inicial quando do seu lanÅamento.
A sárie 370 de computadores possuàa arquitetura big endian de 32 bits (diferentemente dos microprocessadores de
32 bits, tal como a sárie x86, que utilizaram arquiteturas little endian).
LigaÅÑes externas
í IBM 370 no Museu Virtual de InformÑtica [1]
í Museu do Computador - Processando Dados e mais Dados [2]
ReferÖncias
[1] http:/ / piano. dsi. uminho. pt/ museuv/ 1970ibm370. html
[2] http:/ / www. museudocomputador. com. br/ hist_histbrasil2. php
MÉquina virtual
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.
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.
VirtualBox 2.0.4 no Ubuntu rodando o Fedora 10
DefiniÅÇo
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.
MÑquina virtual
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
devàdeogames antigos e os emuladores de microcomputadores, como o VMware, o Bochs e o VM VirtualBox,
software livre da Oracle.
Tipos
As mÑquinas virtuais podem ser divididas em dois 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 I/O, 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
á 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.
111
MÑquina virtual
Desvantagens
á 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
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.
ReferÖncias
í Marcos Laureano, MÅquinas Virtuais e Emuladores - Conceitos, TÑcnicas e AplicaÄÖes [1]. Novatec Editora.
ISBN 85-7522-098-5.
í Marcos Laureano, DetecÄÇo de IntrusÇo em MÅquinas Virtuais [2]. DissertaÅÉo de mestrado apresentada na
Pontàficia Universidade CatÄlica do ParanÑ.
í Marcos Laureano, Carlos Maziero, VirtualizaÄÇo: Conceitos e AplicaÄÖes em SeguranÄa [3]. Mini-curso do VIII
SimpÄsio Brasileiro em SeguranÅa da InformaÅÉo e de Sistemas Computacionais, 2008.
í Diogo Menezes Ferrazani Mattos, Vantagens e Desvantagens [4].
ReferÖncias
[1] http:/ / www. novateceditora. com. br/ livros/ maquinasvirtuais/
[2] http:/ / www. laureano. eti. br/ projetos/ deteccao-de-intrusao-em-maquinas-virtuais/
[3] http:/ / www. ppgia. pucpr. br/ ~maziero/ lib/ exe/ fetch. php/ research:2008-sbseg-mc. pdf
[4] http:/ / www. gta. ufrj. br/ grad/ 08_1/ virtual/ VantagenseDesvantagens. html
112
Emulador
Emulador
Na computaÅÉo, um emulador á um software que reproduz as funÅÇes de um determinado ambiente, a fim de
permitir a execuÅÉo de outros softwares sobre ele. Pode ser pela transcriÅÉo de instruÅÇes de um processador alvo
para o processador no qual ele estÑ rodando, ou pela interpretaÅÉo de chamadas para simular o comportamento de um
hardware especàfico. O emulador tambám á responsÑvel pela simulaÅÉo dos circuitos integrados ou chips do sistema
de hardware em um software. Basicamente, um emulador expÇe as funÅÇes de um sistema para reproduzir seu
comportamento, permitindo que um software criado para uma plataforma funcione em outra.
VisÇo geral
Os ambientes computacionais geralmente sÉo formados por camadas. A quantidade e o papel de cada camada pode
variar de acordo com o ambiente, e seu grau de dependãncia. Alguns ambientes sÉo puramente fàsicos como os
terminais de mainframe, e portanto, sua emulaÅÉo cabe apenas o tratamento dos dados enviados do terminal ou para
ele, e reproduzir a interaÅÉo com o usuÑrio. Outros ambientes podem nÉo possuir um firmware (algumas vezes
chamado de bios), sendo que os programas que serÉo executados conhecem todo o hardware, e sua emulaÅÉo seria
basicamente a interpretaÅÉo das chamadas ao hardware para reproduzir seu comportamento. Alguns ambientes
possuem firmware mas nÉo possuem sistema operacional. Nestes casos serÑ necessÑrio emular tambám o firmware
ou obter um com o fabricante.
HistÄria
O primeiro emulador foi criado em 1964 por Larry Moss, na ápoca funcionÑrio da IBM, consistindo em um Software
que fazia com que os programas criados para o 7070 mainframe rodassem na mais nova linha de computadores da
IBM, os System/360.
O emulador foi um sucesso e ajudou bastante o System/360 a se tornar um best-seller na dácada de 1970.
PopularizaÅÇo
A popularizaÅÉo dos emuladores veio junto com a Internet e os emuladores de vàdeo games. As imagens extraàdas de
cartuchos de vàdeo games sÉo chamadas de ROMs e aliadas ë programaÅÉo em baixo nàvel de jogos para sistemas
antigos tornou fÑcil a possibilidade de criaÅÉo de emuladores de sistemas como o Chip-8 e depois de vàdeo games
mais populares como o Atari 2600 e NES.
Apesar de um emulador nem sempre ser a coisa mais fÑcil de configurar, com pouco conhecimento hoje jÑ á possàvel
rodar um jogo de Playstation em um PC atravás de um emulador sem muitos problemas, muitas vezes atá com
qualidade superior ao prÄprio vàdeo game, jÑ que podem-se aplicar efeitos como anti-aliasing que o vàdeo game nÉo
possui e rodar os jogos em resoluÅÇes muito mais altas que o original.
113
Emulador
AplicaÅÑes/Vantagens
í
í
í
í
Rodar jogos de vàdeo games.
Testar cÄdigos cross-compilado com maior facilidade.
Reaproveitamento de softwares escritos para sistemas antigos.
Rodar jogos de diferentes plataformas.
Desvantagens
í Para obtermos uma execuÅÉo satisfatÄria do sistema que estÑ sendo emulado, ou seu uso em ambiente de
produÅÉo, o emulador e o ambiente que o executa precisam possuir um desepenho superior ao do sistema original.
í Quanto maior a complexidade, ou a incompatibilidade entre o ambiente emulado e o que estÑ executando o
emulador, maior a complexidade da implementaÅÉo do emulador, e maior exigãncia de hardware.
í Alguns perifáricos e caracteràsticas do sistema original, por serem fàsicos, serÉo emulados apenas em nàvel de
software, podendo nÉo oferecer transparãncia ao usuÑrio final.
Uso comercial de emuladores
Emuladores no geral
O processo de emular nÉo constitui crime. VÑrios processos jÑ foram movidos com este assunto e nenhum obteve
ãxito. Um exemplo de um processo perdido foi o da Creative Labs fabricante da placa de som Sound Blaster, que na
ápoca era hardware bÑsico para algumas aplicaÅÇes que utilizavam sons. Outras placas de som emularam o hardware
da Sound Blaster para ficarem compativeis com tais aplicativos.
Quando emular esta associado a um hardware, com exemplo vàdeo games, o emulador faz o trabalho do console, que
por sua vez necessita de Roms que á o Jogo copiado de um cartucho ou CD.
As roms ou jogos para emuladores sÉo softwares como qualquer outro. Portanto á crime obter uma rom ou jogo e
executÑ-lo em um emulador ou hardware sem que vocã tenha o jogo original.
Computadores em computadores
Dentre os emuladores comerciais que emulam computadores estÉo o Softmac que emula Macintosh no PC. Sistemas
mais antigos como Atari ST tambám possuem emuladores oficiais entre eles o Gemulator.
VÜdeo games em computadores
LanÅado em 1999, o Virtual Game Station (VGS) foi um emulador de Playstation desenvolvido pela Connectix
originalmente para Macintosh e posteriormente portado para PC. A Connectix sofreu aÅÇes judiciais por parte da
Sony, desenvolvedora do Playstation. ApÄs algum tempo de batalhas judiciais, o emulador foi adquirido pela Sony e
descontinuado. A empresa encerrou suas atividades em 2003.
Tambám lanÅado em 1999, o bleem! foi um emulador comercial de Playstation para PC desenvolvido pela bleem
Company. Posteriormente ganhou uma versÉo para Dreamcast, chamada de bleemcast!. A Sony tambám moveu
aÅÇes judicias contra a bleem Company. Apesar da Sony nÉo ter vencido nenhum dos processos judiciais, os custos
advocatàcios, o surgimento de emuladores gratuitos e o encerramento na produÅÉo do Dreamcast fizeram com que a
bleem Company terminasse suas atividades em 2001.
114
Emulador
VÜdeo games em video games
A Microsoft utiliza emulaÅÉo em seu console de nova geraÅÉo, o Xbox 360, para executar jogos de seu console
anterior, o Xbox. O Live Arcade traz jogos antigos mas eles nÉo sÉo emulados e sim re-programados e rodam
nativamente no hardware do console.
A Sony usa um emulador para emular o PlayStation original no PlayStation Portable. Esse emulador tambám á usado
em todos os modelos de PS3 para emular jogos do primeiro console. A Sony ainda usou um emulador de Emotion
Engine nos modelos de 80GB/60GB-europeus para emular o PlayStation 2. Esse emulador á capaz de setar jogos do
PS2 em altas resoluÅÇes: 720p e 1080p.
A Nintendo usa extensamente emuladores no Wii Virtual Console. Entre os sistemas emulados, estÉo o NES, Super
Nintendo, Mega Drive, Neo-Geo, PC Engine e Nintendo 64. Entretanto, os jogos de Gamecube nÉo sÉo emulados e
sim rodam nativamente no hardware do console.
A partir de 2006 muitas empresas lanÅaram jogos em coletÜneas que rodam em um emulador. Esses emuladores
oferecem uma emulaÅÉo mais refinada se comparada aos emuladores de terceiros. Entre as empresas/jogos estÉo:
í Sega (Sega Genesis Collection)
í Namco (Namco Museum)
í Capcom (Capcom Classics Collection)
í Taito (Taito Classics)
í Atari (Atari Anthology)
Recentemante algumas empresas embutiram jogos antigos emulados em jogos comerciais como um bÖnus para o
jogador. Entre eles estÉo:
í
í
í
í
Prince of Persia: Sands of Time - (Prince of Persia original do PC)
Ninja Gaiden (Xbox) - (Ninja Gaiden 1, 2 e 3 versÉo NES)
Tekken 5 - (Tekken 1, 2 e 3 de Playstation)
Zelda: Wind Waker - (Zelda: Ocarina of Time de Nintendo 64)
Uso nÇo-comercial (caseiro) de emuladores
Muitos emuladores sÉo livres e programados por terceiros. SÉo denominados tambám de homebrews. Entre eles
estÉo:
Computadores em computadores
Algumas arquiteturas de computadores podem ser emuladas em outro computador. Entre eles o x86 (PC comum)
(Bochs), o MSX (BRSMS), DOS (DOSBox), AmigaOS (WinUAE), Mac OS (PearPC). î importante esclarecer que
um emulador á diferente de uma mÑquina virtual usadas em sistemas como VMWare, VirtualPC e QEMU. Num
emulador, todos os recursos do sistema sÉo processados nele ao contrÑrio da virtualizaÅÉo que á uma ponte entre o
hardware nativo e as chamadas do sistema operacional. Outro erro comum á dizer que o WINE á um emulador de
Windows - ele á um conjunto de APIs que cria uma camada de compatibilidade ao contrÑrio de emulador que
processa todo sistema num ånico conjunto de software.
Video games em computadores
A lista de consoles de video games emulados á extensa, á raro um sistema nÉo ser emulado geralmenre os mais
novos levam tempo para conseguir emular. Entre eles, o Xbox e o Gamecube ainda nÉo sÉo satisfatoriamente
emulados apesar de existir emuladores prematuros para eles. O PlayStation 2 á bem emulado no PCSX2 mas
necessita de um potente computador; O Dreamcast tambám á bem emulado no nullDC. O PlayStation Portable e
Nintendo DS ainda nÉo sÉo 100% emulados, mas no caso do DS o emulador NO$GBA roda perfeitamente alguns
jogos. Os videogames da nova geraÅÉo: Xbox 360 e PlayStation 3 nÉo sÉo emulados mas a histÄria mostra que
115
Emulador
certamente serÉo no futuro. JÑ o Wii jÑ possui emulaÅÉo primÑria a partir da versÉo open-source do Dolphin
(originalmente um emulador de GameCube).
Video games em video games
î possàvel emular consoles de videogames antigos num video game atual. Para isso os consoles devem estar
destravados com um Modchip ou ter seu sistema firmware modificado para possibilitar o uso de programas
nÉo-autorizados. O primeiro emulador a conseguir esse feito foi PNESX que possibilitou emular o NES num
PlayStation. O Xbox por ser um PC x86 teve dezenas de emuladores convertidos e adaptados para ele. O PlayStation
2 e o Gamecube tambám tiveram emuladores para rodar Super Nintendo e Mega Drive.
LigaÅÑes externas
Em PortuguÖs
í
í
í
í
í
í
í
í
í
í
í
í
Roxdownload - Desde 2004 o melhor site de emulaÅÉo do Brasil [1]
Emuladores.com.br - Diversos Emuladores para Download. [2]
EmuPortugal.info - VÑrios Emuladores para diversas consolas de videojogos. [3]
SuperNES - Muitas ROMS para vocã [4]
ArcadeBR - Site Brasileiro sobre Arcades [5]
Emulabite - Portal de emulaÅÉo com download de emuladores e roms [6]
Emuladores e Roms de diversos sistemas [7]
RoxRoms [8]
EmuladorTotal - Emuladores para quase todos consoles, computadores e arcades [9]
MoreROMs - Acervo de emuladores e ROMs [10]
SNK-Neofighters - Portal do qual faz parte o site do emulador NeoRageX [11]
ZuQuEtO.CoM - Emuladores e Roms para diversos consoles dentre eles Atari, SNES, Mega Drive e etc. [12]
Em InglÖs
í
í
í
í
í
Emulation64 [13]
Emulexgames [14]
Ngemu [15]
Vintage Gaming Emulators [16]
Zophar - Diversos Emuladores. [17]
ReferÖncias
[1] http:/ / www. roxdownload. net/ emuladores
[2] http:/ / www. emuladores. com. br
[3] http:/ / www. emuportugal. info/
[4] http:/ / supernes. us/
[5] http:/ / www. arcadebr. com. br/
[6] http:/ / www. emulabite. com
[7] http:/ / emuladoreseroms. buscasulfluminense. com
[8] http:/ / www. roxroms. net/
[9] http:/ / www. emuladortotal. blogspot. com
[10] http:/ / www. moreroms. info
[11] http:/ / www. snk-neofighters. com
[12] http:/ / www. zuqueto. com
[13] http:/ / emulation64. com
[14] http:/ / www. emulexgames. com
[15] http:/ / ngemu. com
116
Emulador
117
[16] http:/ / www. vg-network. com
[17] http:/ / www. zophar. net
VirtualBox
VirtualBox
VirtualBox rodando Fedora, sob hospedeiro Ubuntu
Desenvolvedor
InnoTek, Oracle
VersÉo estÑvel
4.0.4 (17 de Fevereiro de 2011)
Sistema Op.
Multiplataforma
Gãnero(s)
MÑquina virtual
LicenÅa
ProprietÑria/GPL
PÑgina oficial
www.virtualbox.org
[1]
Portal das Tecnologias de informaÅÇo
VirtualBox á um software de virtualizaÅÉo desenvolvido pela Sun Microsystems que posteriormente foi comprada
pela Oracle que, como o VMware Workstation, visa criar ambientes para instalaÅÉo de sistemas distintos. Ele
permite a instalaÅÉo e utilizaÅÉo de um sistema operativo dentro de outro, assim como seus respectivos softwares,
como dois ou mais computadores independentes, mas compartilhando fisicamente o mesmo hardware.
HistÄria
Criado pela empresa Innotek, inicialmente oferecia uma licenÅa proprietÑria, existia uma versÉo do produto para uso
pessoal ou de avaliaÅÉo sem custo. Em Janeiro de 2007 á lanÅado a versÉo VirtualBox OSE (Open Source Edition)
com a licenÅa GPL (GNU General Public License), versÉo 2. Em Fevereiro de 2008 a empresa Innoteck á adquirida
pela Sun Microsystems. No dia 20 de Abril de 2009 a Oracle compra a Sun Microsystems e todos o seu produtos,
incluindo o VirtualBox.
CaracterÜsticas
O VirtualBox tem um desenho extremamente modular com interfaces de programaÅÉo interna bem definidas e um
desenho cliente/servidor. Isso torna fÑcil o controle de vÑrias interfaces de uma sÄ vez. Por exemplo: vocã pode
iniciar uma mÑquina virtual em uma mÑquina tàpica virtual de interface grÑfica e, em seguida, controlar essa mÑquina
a partir da uma linha de comando, ou possivelmente remotamente. O VirtualBox tambám vem com um kit completo
desenvolvimento de software: embora seja de cÄdigo aberto, vocã nÉo tem que cortar a fonte de escrever uma nova
interface para VirtualBox.
As definiÅÇes de configuraÅÉo de mÑquinas virtuais sÉo armazenados em XML e sÉo totalmente independentes das
mÑquinas locais. Por isso, as definiÅÇes podem ser facilmente transferidos para outros computadores.
VirtualBox
O VirtualBox tem um software especial que pode ser instalado dentro das mÑquinas virtuais Windows e Linux para
melhorar o desempenho e fazer integraÅÉo muito mais perfeita. Entre os recursos fornecidos por essas adiÅÇes
clientes sÉo integraÅÉo do ponteiro do mouse o e soluÅÇes arbitrÑrias de tela (por exemplo, o redimensionamento da
janela do cliente).
Tal como muitos outras soluÅÇes de virtualizaÅÉo, para facilitar a troca de dados entre os hospedeiros e convidados,
o VirtualBox permite a declaraÅÉo dos diretÄrios de certos hospedeiros como "pastas compartilhadas", que pode ser
acessadas de dentro de mÑquinas virtuais.
Recursos restritos
O VirtualBox possui uma sárie de recursos disponàveis somente na versÉo completa.
Por exemplo, ele implementa um controlador virtual USB e permite-lhe arbitrariamente ligar dispositivos USB em
suas mÑquinas virtuais sem ter que instalar um drivers de dispositivo especàfico ao host.
Diferente de qualquer outro software de virtualizaÅÉo, o VirtualBox apÄia inteiramente o padrÉo Remote Desktop
Protocol (RDP). Uma mÑquina virtual pode atuar como um servidor RDP, o que lhe permite "executar" a mÑquina
virtual remotamente em alguns serviÅos que exibem os dados RDP.
JÑ com o recurso de USB durante RDP, uma mÑquina virtual que atua como um servidor RDP pode acessar
dispositivos USB que estÉo conectados ë RDP cliente. Dessa forma, uma poderosa mÑquina servidor pode virtualizar
um lote de serviÅos que necessitam dados RDP e dispositivos USB conectados.
LigaÅÑes externas
í Sàtio oficial [2] (em inglãs)
ReferÖncias
[1] http:/ / www. virtualbox. org/
[2] http:/ / www. virtualbox. org
118
VMware
119
VMware
VMware
Red Hat Linux 9 rodando sob o VMware.
Desenvolvedor
VMware
VersÉo estÑvel
7.0 (2009)
Sistema Op.
Multiplataforma
Gãnero(s)
MÑquina virtual, EmulaÅÉo
LicenÅa
ProprietÑria
PÑgina oficial
www.vmware.com
[1]
Portal das Tecnologias de informaÅÇo
VMware á um software/mÑquina virtual que permite a instalaÅÉo e utilizaÅÉo de um sistema operacional dentro de
outro dando suporte real a software de outros sistemas operativos.
Usando software de virtualizaÅÉo como o VMware á possàvel executar um ou mais sistemas operacionais
simultÜneamente num ambiente isolado, criando computadores completos (virtuais) a executar dentro de um
computador fàsico que pode rodar um sistema operacional totalmente distinto. Do ponto de vista do utilizador e do
software nem sequer se nota a diferenÅa entre a mÑquina real e a virtual. î muito usado em centros de dados, pois
permite criar redundÜncia e seguranÅa adicional sem recorrer a tantas mÑquinas fàsicas e distribuindo e aproveitando
melhor os recursos das mÑquinas hospedeiras.
A empresa desenvolvedora
A empresa desenvolvedora do VMware, a VMware Inc., localiza-se em Palo Alto, CalifÄrnia, Estados Unidos e á
uma subsidiÑria da EMC Corporation. O nome á um jogo de palavras com Virtual Machine (mÑquina virtual), que á
o nome tácnico dado a um sistema operacional rodando sob o VMware.
VersÑes do produto
VMware Workstation
î voltado ao uso no desktop, em ambientes de desenvolvimento. Atualmente estÑ na versÉo 7.1.0, e roda em CPU's
Intel e AMD de 32 e 64 bits. Permite rodar vÑrios "computadores virtuais" dentro de um sistema operacional
(windows, versÇes GNU/LINUX, MAC OS, etc), cada um destes computadores pode rodar seu prÄprio sistema
operacional.
O computador simulado pode ter uma quantidade de RAM definida (atá 3600 MB no VMware 5.5.3; atá 8GB,
desconsiderando limitaÅÇes do hardware, no VMware 6.0) e um disco virtual delimitado (atá 950GB)
VMware
Ele pode "simular" um drive de CD-ROM,drive de disquete, placas de rede (atá 3 no VMware 5.5.3; atá 10 no
VMware 6.0 beta), discos ràgidos e portas USB (USB 1.1 na versÉo 5.5.3; USB 2.0 na versÉo 6.0).
Recursos importantes:
í Possibilidade de "unir" vÑrias mÑquinas virtuais, permitindo que todas elas sejam iniciadas ou desligadas com um
mesmo comando. Tambám á possàvel definir redes internas.
í Suporte a 3 modos de rede: Bridged (a mÑquina virtual á vista como um outro computador na rede, com IP obtido
via DHCP); NAT (a mÑquina virtual se conecta ao computador host, que por sua vez se conecta ë rede); e
Host-Only (a mÑquina virtual apenas se conecta ao host).
í Possibilidade de criar registros instantÜneos ("snapshots") de uma mÑquina virtual num dado momento. Assim, á
possàvel testar configuraÅÇes, e se elas derem errado pode-se reverter.
VMware Server (anteriormente VMWare GSX Server)
Voltado ao uso em servidores de pequeno e mádio porte. Tornou-se gratuito em 12 de Junho de 2006. î um produto
de "entrada" para o mercado.
Conta com boa parte dos recursos da versÉo Workstation, e adiciona recursos åteis ao seu uso em servidores, como o
gerenciamento remoto (usando uma versÉo modificada do VNC). Isto resulta em perda de desempenho na interface
grÑfica, porám nÉo á um problema para servidores que rodam "headless", ou seja, sem monitor ou interface grÑfica.
VMware ESX Server
Voltado ao uso em servidores de grande porte. î um sistema operacional dedicado, que usa um nåcleo proprietÑrio,
baseado no SimOS [2]. O Red Hat Linux á usado para prover os diversos serviÅos, como gerenciamento remoto. Por
rodar em um nàvel mais prÄximo do hardware, elimina-se o overhead de ter um sistema base, e aumenta-se a
seguranÅa. Por este motivo ele á usado em servidores de grande porte.
VMware Player
Executa mÑquinas virtuais prontas; Oficialmente (VersÇes anteriores ë versÉo 3.0), nÉo á possàvel criar mÑquinas
virtuais novas, mas á possàvel pular esta limitaÅÉo de 3 formas:
í Instalando uma versÉo de avaliaÅÉo do VMware Workstation e criando mÑquinas virtuais novas.
í Usando appliances (mÑquinas virtuais fornecidas pela comunidade, que operam como soluÅÇes prontas, onde
basta apenas rodar).
í Usando sites nÉo oficiais, como o EasyVMX [3].
í Usando a versÉo 3.0 ou superior.
VMware Fusion
Uma versÉo para o Mac OS X rodando em Macintosh com CPU Intel. O produto se encontra em sua terceira versÉo,
com suporte inclusive a acereraÅÉo 3d por hardware. Pode-se obter uma versÉo de teste [4].
Outros produtos
í
í
í
í
VMware ThinApp, um programa que permite a criaÅÉo de "aplicaÅÇes portÑteis" ("portable apps")
VMware P2V, uma ferramenta para migrar servidores fàsicos para mÑquinas virtuais.
VMware VirtualCenter, uma ferramenta para centralizar o gerenciamento de instalaÅÇes do VMware.
VMotion, uma ferramenta para transferir mÑquinas virtuais entre servidores, de forma tÉo transparente quanto
possàvel, resultando no mànimo de downtime (tempo com o servidor fora do ar)
120
VMware
Funcionamento
Ao contrÑrio de muitos mitos divulgados pela Internet, o VMware nÇo á um emulador. Vai a um nàvel mais baixo,
onde o processador chega por vezes a executar diretamente o cÄdigo da mÑquina virtual. Quando isto nÉo á possàvel,
o cÄdigo á convertido de forma a que o processador nÉo precise trocar para o modo real, o que seria uma perda de
tempo.
Utilidade
O VMware á åtil para:
í Ambientes de desenvolvimento, onde á necessÑrio testar uma aplicaÅÉo em vÑrias plataformas: Muitas empresas
tãm produtos multiplataforma, que precisam ser testados em Windows e em diversas distribuiÅÇes do Linux.
í Ambientes de suporte, onde á necessÑrio dar suporte a diversas aplicaÅÇes e sistemas operacionais. Um tácnico de
suporte pode rapidamente usar uma mÑquina virtual para abrir um ambiente Linux ou Windows.
í MigraÅÉo e consolidaÅÉo de servidores antigos: á muito comum vermos redes com diversos servidores antigos,
que resultam em um custo de manutenÅÉo maior. Com o VMware podemos concentrÑ-los em uma mÑquina sÄ.
í ManutenÅÉo de aplicaÅÇes antigas e teste de sistemas novos: o uso do VMware para testar sistemas operacionais á
um dos usos mais comuns do produto. Por exemplo, á possàvel usÑ-lo para executar o Windows dentro do Linux
ou o oposto.
í Manter a compatibilidade de hardware. Alguns hardwares nÉo tãm drivers para o Linux ou para versÇes mais
recentes do Windows. Neste caso, á possàvel usar hardwares (ligados pela porta paralela ou USB) com uma
mÑquina virtual.
í SimulaÅÉo de instalaÅÇes complexas de rede.
í ApresentaÅÉo de demonstraÅÇes de sistemas completos prontos a usar, tipicamente referidas como VMware
appliances.
í Num ambiente protegido á tàpico usar balanceador de carga, vÑrias firewall e 4 servidores fàsicos para alojar com
seguranÅa um ånico site que use servidor web e base de dados. Com mÑquinas virtuais á possàvel criar
redundÜncia contra falhas e seguranÅa adicional contra intrusÉo sem recorrer a tantas mÑquinas fàsicas e
distribuindo e aproveitando melhor os recursos das mÑquinas hospedeiras.
í Desde a versÉo ESX 3.0, virtualizaÅÉo com VMware pode ser utilizado para produÅÉo com total seguranÅa.
LimitaÅÑes
Algumas limitaÅÇes do VMware:
í HÑ apenas suporte experimental ë aceleraÅÉo 3D, tornando o VMware inviÑvel para o uso de jogos.
í Existem alguns problemas com o uso de placas de rede sem fio (Wireless), sendo necessÑrio usar o modo NAT.
í NÉo hÑ suporte para placas PCI.
Funcionalidades
Descrevendo as funcionalidades:
í Hypervisor: á o nucleo da soluÅÉo de virtualizaÅÉo, responsÑvel por particionar, encapsular e isolar os recursos
da maquina para a utilizacao em ambientes virtualizados.
í VMFS: VMware file system á a base para se criar o datacenter virtual e permite que sejam montados pools de
recursos distribuidos.
í Virtual SMP Ä permite que maquinas virtuais tenham mais de um processador virtual.
í Update Manager Ä Automatiza e facilita o update no ESX server e em maquinas virtuais.
í Virtual Center Agent Ä agente que troca informacoes com o Virtual Center Management Server, para
gerenciamento do pool de recursos
121
VMware
í Consolidated Backup Ä facilita a realizacao de backups do datacenter virtual.
í HA - High availability Ä funcionalidade que permite que a infra-estrutura do datacenter virtual identifique que
houve uma queda de um servidor fisico e em um tempo muito curto religue as maquinas virtuais que estavam
naquele servidor fisico em outro.
í Vmotion Ä funcionalidade que permite movimentar um servidor virtual entre servidores fisico SEM
DESLIGAMENTO DO SERVIDOR VIRTUAL. Essa caracteràstica á muito importante pois reduz
significativamente as paradas planejadas de sistema, ao mesmo tempo em que se torna um excelente aliado na
alocacao dinamica de recursos do pool (flexibilidade).
í Storage Vmotion Ä permite movimentar as maquinas virtuais entre dois storages para evitar gargalos de IO, sem
desligamento do servidor virtual.
í DRS Å Distributed Resource Scheduler á uma funcionalidade que permite ao datacenter virtual fazer
balanceamento de carga das maquinas virtuais para adequar-se a mudancas na demanda de cada
aplicacao/maquina virtual.
í DPM Å Dynamic Power Management permite ao sistema reduzir o consumo de energia em momentos de baixo
consumo de recursos.(***ainda nÉo recomendado para produÅÉo***)
LigaÅÑes externas
í Sàtio oficial [1], onde o usuÑrio pode fazer o download de uma versÉo de avaliaÅÉo do VMWare Workstation, ou
dos produtos freeware (Server e Player).
í Virtual Machine Marketplace, onde á possàvel obter mÑquinas virtuais prontas [5]
ReferÖncias
[1]
[2]
[3]
[4]
[5]
http:/ / www. vmware. com
http:/ / simos. stanford. edu/
http:/ / www. easyvmx. com
http:/ / www. vmware. com/ products/ beta/ fusion/
http:/ / www. vmware. com/ vmtn/ appliances/ directory/
122
Xen
123
Xen
Para outros significados de Xen, ver Xen (desambiguaÄÇo)
Xen á um software livre de virtualizaÅÉo para as arquiteturas x86, x86-64, IA-32, IA-64 e PowerPC. Xen permite a
execuÅÉo de vÑrios sistemas operacionais, simultaneamente, sobre um mesmo hardware. VersÇes modificadas de
Linux e NetBSD podem ser usadas como base. Diversos sistemas Unix modificados podem ser executados. Desde a
versÉo 3.0, o Microsoft Windows e outros sistemas operacionais podem ser executados sobre o Xen.
Xen foi originalmente desenvolvido como um projeto de pesquisa na Universidade de Cambridge, liderado por Ian
Pratt, fundador da XenSource, Inc. Em 15 de agosto de 2007, a XenSource foi adquirida pela Citrix System Inc. [1]
pelo valor de 500 milhÇes de dÄlares. A Citrix agora suporta o desenvolvimento do projeto open source e vende
tambám uma versÉo "empresarial" do software. O primeiro lanÅamento påblico do Xen foi disponibilizado em 2003.
LigaÅÑes externas
í Site oficial do projeto [2]. Hospedado pela Universidade de Cambridge.
í The Xen Wiki [3]
í University of Cambridge, Technical Report Number 553, January 2003 [4]. Early report outlining the architecture
of Xen.
í Tutorial de InstalaÅÉo [5] Tutorial de InstalaÅÉo do Xen no Debian
ReferÖncias
[1]
[2]
[3]
[4]
[5]
http:/ / www. xensource. com/ about/ Pages/ CitrixPJLLetter. aspx
http:/ / www. cl. cam. ac. uk/ Research/ SRG/ netos/ xen/
http:/ / wiki. xensource. com/ xenwiki/
http:/ / www. cl. cam. ac. uk/ TechReports/ UCAM-CL-TR-553. pdf
http:/ / wiki. forumdebian. com. br/ index. php/ Xen
Microsoft Virtual PC
124
Microsoft Virtual PC
O Microsoft Virtual PC 2007, da Microsoft, á um programa que emula um computador dentro do seu Windows.
Assim sendo, em uma janela serÑ possàvel abrir outro sistema operacional, como Windows, Linux, MS-DOS, e atá
criar um HD virtual, que serÑ um arquivo salvo dentro da partiÅÉo de seu Windows mesmo, podendo ser formatado
com qualquer sistema de arquivos, sem interferir no sistema real. Resumindo, á possàvel usar um sistema FAT32,
ReiserFS etc., dentro de um HD formatado em NTFS, por exemplo. O Virtual PC á muito åtil para empresas, testes
de vàrus, aprendizado e para rodar sistemas antigos.
Assim sendo o usuÑrio pode rodar Sistemas operacionais distintos e conectÑ-los atravás de um dispositivo de rede
virtual que o instalador disponibiliza dentro de Painel de Controle -> ConexÇes de Rede (no caso de Sistemas
Microsoft). O Virtual PC permite ainda capturar ISO's de Instaladores de Sistemas Operacionais, rodÑ-las na forma
de uma unidade de CD-ROM tambám virtual, instalar o S.O. a partir da ISO e, depois de instalado, ainda
personalizar o S.O. realizando mais instalaÅÇes de softwares de terceiros, o que facilita por exemplo verificar a
migraÅÉo de aplicaÅÇes entre plataformas sem precisar de um segundo computador fàsico.
Kernel-based Virtual Machine
Kernel-based Virtual Machine
Captura de tela do qemu/kvm a rodar NetBSD, OpenSolaris e Kubuntu em um hospedeiro
Arch Linux.
VersÉo estÑvel
88 (14 de Julho de 2009)
Escrito em
C
Sistema Op.
GNU/Linux
Gãnero(s)
Plataforma de virtualizaÅÉo
LicenÅa
GPL ou LGPL
Estado do desenvolvimento
Corrente
PÑgina oficial
linux-kvm.org
[1]
(em )è, acessado pela åltima vez hÑ 69 semanas
Portal das Tecnologias de informaÅÇo
MÉquina Virtual baseada em Nâcleo (em inglãs: Kernel-based Virtual Machine (KVM)), á uma infraestrutura de
virtualizaÅÉo, integrada ao Linux. Atualmente a KVM suporta virtualizaÅÉo nativa usando Intel VT ou AMD-V.
Suporte limitado a paravirtualizaÅÉo tambám estÑ disponàvel para hÄspedes linux e Microsoft Windows na forma de
um driver de rede paravirtual,[2] um driver de dispositivo de entrada/saàda (disco),[3] um driver recipiente para afetar
a operaÅÉo do gerenciador de memÄria virtual do hÄspede,[4] e otimizaÅÇes de processamento para hÄspedes linux.
Atualmente transportes para as arquiteturas s390,[5] PowerPC,[6] and IA64 estÉo sendo desenvolvidos. A primeira
versÉo da KVM foi incluàda no Linux 2.6.20 (Fevereiro de 2007).[7] Tambám foi transportada para o FreeBSD como
um mÄdulo de nåcleo carregÑvel.[8]
Kernel-based Virtual Machine
125
Uma gama de sistemas operativos hÄspedes funcionam na KDM, incluindo vÑrios sabores de GNU/Linux, BSD,
Solaris, Microsoft Windows, Haiku, ReactOS, AROS[9] , e uma versÉo remendada da kvm que á capaz de Mac OS
X.[10]
Projeto e licenciamento
Por si sÄ, KVM nÉo realiza nenhuma emulaÅÉo. Ao invás disso, um programa de espaÅo de usuÑrio usa a interface
/dev/kvm para instalar o espaÅo de endereÅamento da mÑquina virtual hÄspede, alimenta-a com E/S simulada e
mapeia o seu visor de vàdeo para o do hospedeiro. Pelo menos dois programas aproveitam este recurso: uma versÉo
modificada do Qemu e o prÄprio Qemu, desde a versÉo 0.10.0.
Partes da KVM sÉo licenciadas sob vÑrias licenÅas GNU:[11]
í
í
í
í
í
MÄdulo de nåcleo do KVM: GPL v2
MÄdulo de usuÑrio do KVM: LGPL v2
Biblioteca principal de CPU virtual do QEMU (libqemu.a) e emulador de sistema PC do QEMU: LGPL
Emulador do QEMU de modo usuÑrio linux: GPL
Arquivos de BIOS (bios.bin, vgabios.bin and vgabios-cirrus.bin): LGPL v2 ou posterior
A KVM á mantida por Avi Kivity e á financiada primariamente pela Qumranet, uma iniciativa de tecnologia,[12] now
owned by Red Hat.[13]
Ferramentas de gerenciamento grÉfico
í Virtual Machine Manager suporta criaÅÉo, ediÅÉo, inicializaÅÉo, terminaÅÉo de mÑquinas virtuais baseadas na
KVM.
í ConVirt suporta criaÅÉo, ediÅÉo, inicializaÅÉo, terminaÅÉo de mÑquinas virtuais baseadas na KVM, alám de
migraÅÉo arraste-e-solte de mÑquinas virtuais em execuÅÉo ou suspensas entre hospedeiros.
í Proxmox Virtual Environment Software livre de virtualizaÅÉo incluindo KVM e OpenVZ - instalador de
metal-exposto, IU de gerenciamento e suporte comercial opcional.
Hardware emulado
Classe
Dispositivo
[14]
Placa de vàdeo
VGA
Placa de som
Sound Blaster 16
Placa de rede Ethernet
AMD Am79C970A (e Am7990?)
[15]
[16]
, E1000 (Intel 82540EM, 82573L, 82544GC)
[17]
[18]
[19]
, NE2000
, Realtek 8139
Kernel-based Virtual Machine
ReferÖncias
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
http:/ / www. linux-kvm. org/
Gmane - Mail To News And Back Again (http:/ / article. gmane. org/ gmane. comp. emulators. kvm. devel/ 2276)
libvirt: Wiki: Virtio (http:/ / wiki. libvirt. org/ page/ Virtio)
3.2 Ballooning (https:/ / db. usenix. org/ events/ osdi02/ tech/ waldspurger/ waldspurger_html/ node6. html)
Gmane - Mail To News And Back Again (http:/ / article. gmane. org/ gmane. comp. emulators. kvm. devel/ 2570)
Gmane Loom (http:/ / news. gmane. org/ gmane. comp. emulators. kvm. devel/ 2595)
Linux: 2.6.20 Kernel Released (http:/ / kerneltrap. org/ node/ 7670). KernelTrap.
FreeBSD Quarterly Status Report: Porting Linux KVM to FreeBSD (http:/ / www. freebsd. org/ news/ status/ report-2007-07-2007-10.
html#Porting-Linux-KVM-to-FreeBSD).
[9] KVM wiki: Guest support status (http:/ / www. linux-kvm. org/ page/ Guest_Support_Status).
[10] Virtualizing an x86 Mac OS X (http:/ / alex. csgraf. de/ self/ ?part/ projects& folder/ Qemu OSX& type/ & project/ projects& parameters/
id=Qemu OSX).
[11] InformaÅÉo de licenÅas do Ubuntu 7.04 /usr/share/doc/kvm/copyright
[12] Interview: Avi Kivity (http:/ / kerneltrap. org/ node/ 8088) on KernelTrap
[13] Red Hat press release on Qumranet purchase (http:/ / www. redhat. com/ about/ news/ prarchive/ 2008/ qumranet. html)
[14] kvm-85/qemu/hw/vga.c
[15] kvm-85/qemu/hw/sb16.c
[16] kvm-85/qemu/hw/pcnet.c
[17] kvm-85/qemu/hw/e1000.c
[18] kvm-85/qemu/hw/ne2000.c
[19] kvm-85/qemu/hw/rtl8139.c
LigaÅÑes externas
í
í
í
í
PÑgina oficial (http://www.linux-kvm.org/page/Main_Page)
Wikibook QEMU & KVM (http://qemu-buch.de/e/Content)
Primeiras mediÅÇes da KVM (http://www.linuxinsight.com/finally-user-friendly-virtualization-for-linux.html)
Notàcias, Blogues e Recursos sobre MÑquina de VirtualizaÅÉo baseada em Nåcleo Linux (KVM) (http://www.
linux-kvm.com/)
126

Documentos relacionados