Você está na página 1de 17

Virtualizao de Mquinas

Uma experincia baseada em ferramentas livres

Carlos A. M. dos Santos


echo unixmania at gmail dot com | sed 's/ at /@/;s/ dot /./g'

1 Seminrio de Software Livre Tchelinux


Porto Alegre, 19 de novembro de 2006

Sobre o Palestrante

Engenheiro agrcola* (UFPel, 1988)

Pesquisador bolsista (EMBRAPA, 1989-1993)

Programador e gerente de redes (CPMet/UFPel,


provedores de servios Internet, 1993-1999)
Mestre em Cincia da Computao, na rea de
Computao Grfica (UFRGS, 1998-2000)
Professor de CG, programao e redes (URI, Santo
ngelo, 2001-2005)
Atualmente: HP Computadores (IPL)

* Acredite se quiser!

Temas Abordados

Teoria (no di!)

Instruction Set Architecture

Definio formal de virtualizao

Tipos de virtualizao

Vantagens e desvantagens

Exemplos prticos

QEMU: simulao de uma rede com diversos SOs


rodando simultaneamente

Outros (Se houver tempo)

POSE: Palm OS Emulator

X Window System: ambiente distribudo

Instruction Set Architecture*

Delimita a diviso entre hardware e software

Hardware: dispositivo caracterizado por

um conjunto finito de estados vlidos (registradores,


memria)

um conjunto finito de instrues executveis vlidas

Software: um conjunto cujos elementos so


instrues vlidas
A execuo das instrues provoca transies de
estados

* Doravante abreviada para ISA

e(Si )
Si

Sj

Exemplo: a execuo da intruo e muda o estado do


hardware de Si para Sj

Referncia: Smith, James E. & Nair, Ravi. Virtual Machines.


San Francisco: Morgan Kaufmann, 2005.

Virtualizao
a construo de um isomorfismo entre um sistema
hspede e um sistema hospedeiro*
e(Si )
Si

Sj
hspede

V(Si )

V(Sj )
e'(S'i )

S'i

S'j
hspede

* Popek & Goldberg, 1974

Tipos de Virtualizao

Em nvel de processo

O hspede um nico processo de usurio

A mquina virtual prov uma ABI* para o processo

Em nvel de sistema

Muitos processos de usurio podem coexistir

A mquina virtual prov um ambiente completo

* Application Binary Interface

Virtualizao em nvel de processo


Hspede

Runtime

Processo
Aplicativo

Software de
Virtualizao

Sistema
Operacional
Hospedeiro

Hardware

Processo
Aplicativo

Mquina
Virtual

Virtualizao em nvel de sistema


Processo
Aplicativo

Processo
Aplicativo

Hspede

Sistema
Operacional

VMM

Hospedeiro

Software de
Virtualizao

Hardware

Sistema
Operacional

Mquina
Virtual

Virtualizao em Nvel de Processo

Multiprogramao: SO roda processos concorrentes


Emulador/tradutor binrio dinmico: simula uma
ISA (FX!32, Wine, PACE, QuickTransit/Rosetta)
Otimizador binrio dinmico: modifica cdigo para
melhor desempenho (HP Dynamo)

VM de linguagem de alto nvel (p-Machine, Java)

Excees/mistos

FX32: recompilador dinmico para a mesma ISA

Jalapeo: VM Java que faz otimizao binria

FreeBSD Linux mode: vetor de servios de sistema

FreeBSD Jails: contexto isolado restrito (Verio VPS)

Exemplos de virtualizao em nvel de processo


Aplicao Windows (IA32)
Windows NT
(Alpha)

Runtime

ISA Alpha (RISC, 64 Bits)


FX!32
Aplicao Windows (IA32)
Runtime
Unix
ISA IA32
Wine: Windows Emulator

Aplicao M68k
(Palm OS 4)
PACE (runtime)

Aplicao ARM32
(Palm OS 5)

Bibliotecas
Palm OS 5
DAL: Device Abstraction Layer
HAL: Hardware Abstraction Layer
ISA ARM32
Palm OS Application Compatibility
Environment Palm OS 5

Virtualizao em Nvel de Sistema

VM clssica: hypervisor (VMM) gerencia o hardware


e suporta mltiplos SOs (VM/370, VM/CMS, z/VM)
VM hspede: roda em um SO (VMware, Virtual PC
for Windows, QEMU Accelerator)
Sistema completo: emula um computador (QEMU,
Virtual PC for Mac, POSE, dzias!)
Codesign: semelhante a microcdigo, processador
expe uma ISA virtual (Crusoe, IBM AS/400)
Excees/mistos

Virtualizao auxilida por hardware (VT-x, AMD-V)

Xen: Paravirtualization (SO hspede modificado)

Exemplos de virtualizao em nvel de sistema


Aplicao Linux (SPARC32)
SPARC Linux
QEMU (runtime)
FreeBSD
ISA IA32

VM1

VM1

Aplicao
Linux

Aplicao
z/OS

z/Linux
Aplicao Windows (IA32)
Windows XP (IA32)
QEMU (runtime)
FreeBSD
ISA IA32
QEMU

Kqemu

z/OS

Hypervisor (runtime)
z/Architecture
z/VM

Vantages e Desvantagens
Vantagens

Desvantagens

Reduo de custos

Desempenho limitado

Segurana

Emulao incompleta

Flexibilidade

Necessidade de alterar
o hspede (s vezes)

Vantages e desvantagens sempre so relativas!

Exemplos Prticos

QEMU: simulao de uma rede com diversos SOs


rodando simultaneamente
Outros (se houver tempo)

POSE: Palm OS Emulator

X Window System: ambiente distribudo

Dvidas?

Obrigado por sua ateno!


Contato
echo unixmania at gmail dot com | sed 's/ at /@/;s/ dot /./g'