Virtualização de Máquinas
Uma experiência baseada em ferramentas livres




             Carlos A. M. dos Santos
 echo uni...
Sobre o Palestrante
●   Engenheiro agrícola* (UFPel, 1988)
●   Pesquisador bolsista (EMBRAPA, 1989-1993)
●   Programador e...
Ressalva

    As opiniões expostas aqui são do
 palestrante, apenas, e não representam
  políticas, processos ou estratégi...
Temas Abordados
●   Teoria (não dói!)
    –   Instruction Set Architecture
    –   Definição formal de virtualização
    –...
Instruction Set Architecture*
●   Delimita a divisão entre hardware e software
●   Hardware: dispositivo caracterizado por...
e(Si )

                        Si                    Sj



Exemplo: a execução da intrução e muda o estado do
           ...
Virtualização
É a construção de um isomorfismo entre um sistema
        hóspede e um sistema hospedeiro*
                 ...
Tipos de Virtualização
●   Em nível de processo
    –   O hóspede é um único processo de usuário
    –   A máquina virtual...
Virtualização em nível de processo
                  Processo                  Processo
  Hóspede         Aplicativo      ...
Virtualização em nível de sistema
                  Processo                   Processo
                  Aplicativo      ...
Virtualização em Nível de Processo

●   Multiprogramação: SO roda processos concorrentes
●   Emulador/tradutor binário din...
Exemplos de virtualização em nível de processo

Aplicação Windows (IA32)      Aplicação M68k
                             ...
Virtualização em Nível de Sistema

●   VM clássica: hypervisor (VMM) gerencia o hardware
    e suporta múltiplos SOs (VM/3...
Exemplos de virtualização em nível de sistema

Aplicação Linux (SPARC32)
    SPARC Linux
     QEMU (runtime)            VM...
Vantages e Desvantagens
        Vantagens                Desvantagens
●   Redução de custos      ●   Desempenho limitado
●...
Exemplo Prático

QEMU: diversos SOs rodando simultaneamente



           Aplicação FreeBSD (IA32)
              FreeBSD (...
Dúvidas?
Obrigado pela atenção!

                         Contato
echo unixmania at gmail dot com | sed 's/ at /@/;s/ dot /./g'
Próximos SlideShares
Carregando em…5
×

Virtualização de Máquinas: Uma experiência baseada em ferramentas livres - Carlos A. M. dos Santos

2.131 visualizações

Publicada em

Publicada em: Tecnologia
0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
2.131
No SlideShare
0
A partir de incorporações
0
Número de incorporações
2
Ações
Compartilhamentos
0
Downloads
42
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Virtualização de Máquinas: Uma experiência baseada em ferramentas livres - Carlos A. M. dos Santos

  1. 1. Virtualização de Máquinas Uma experiência baseada em ferramentas livres Carlos A. M. dos Santos echo unixmania at gmail dot com | sed 's/ at /@/;s/ dot /./g' 1º Seminário de Software Livre Tchelinux Pelotas, 24 de março de 2007
  2. 2. Sobre o Palestrante ● Engenheiro agrícola* (UFPel, 1988) ● Pesquisador bolsista (EMBRAPA, 1989-1993) ● Programador e gerente de redes (CPMet/UFPel, provedores de serviços Internet, 1993-1999) ● Mestre em Ciência da Computação, na área de Computação Gráfica (UFRGS, 1998-2000) ● Professor de CG, programação e redes (URI, Santo Ângelo, 2001-2005) ● Atualmente: HP Brasil (IPL) * Acredite se quiser!
  3. 3. Ressalva As opiniões expostas aqui são do palestrante, apenas, e não representam políticas, processos ou estratégias de mercado da HP. As informações expostas aqui não representam produtos, software ou serviços comercializados pela HP.
  4. 4. Temas Abordados ● Teoria (não dói!) – Instruction Set Architecture – Definição formal de virtualização – Tipos de virtualização – Vantagens e desvantagens ● Exemplo prático – QEMU: diversos SOs rodando simultaneamente
  5. 5. Instruction Set Architecture* ● Delimita a divisão entre hardware e software ● Hardware: dispositivo caracterizado por – um conjunto finito de estados válidos (registradores, memória) – um conjunto finito de instruções executáveis válidas ● Software: um conjunto cujos elementos são instruções válidas ● A execução das instruções provoca transições de estados * Doravante abreviada para ISA
  6. 6. e(Si ) Si Sj Exemplo: a execução da intrução e muda o estado do hardware de Si para Sj Referência: Smith, James E. & Nair, Ravi. Virtual Machines. San Francisco: Morgan Kaufmann, 2005.
  7. 7. Virtualização É a construção de um isomorfismo entre um sistema hóspede e um sistema hospedeiro* e(Si ) Si Sj hóspede V(Si ) V(Sj ) e'(S'i ) S'i S'j hospedeiro * Popek & Goldberg, 1974
  8. 8. Tipos de Virtualização ● Em nível de processo – O hóspede é um único processo de usuário – A máquina virtual provê uma ABI* para o processo ● Em nível de sistema – Muitos processos de usuário podem coexistir – A máquina virtual provê um ambiente completo * Application Binary Interface
  9. 9. Virtualização em nível de processo Processo Processo Hóspede Aplicativo Aplicativo Runtime Software de Virtualização Máquina Virtual Sistema Operacional Hospedeiro Hardware
  10. 10. Virtualização em nível de sistema Processo Processo Aplicativo Aplicativo Hóspede Sistema Sistema Operacional Operacional VMM Software de Virtualização Máquina Virtual Hospedeiro Hardware
  11. 11. Virtualização em Nível de Processo ● Multiprogramação: SO roda processos concorrentes ● Emulador/tradutor binário dinâmico: simula uma ISA (FX!32, Wine, PACE, QuickTransit/Rosetta) ● Otimizador binário dinâmico: modifica código para melhor desempenho (HP Dynamo) ● VM de linguagem de alto nível (p-Machine, Java) ● Exceções/mistos – FX32: recompilador dinâmico para a mesma ISA – Jalapeño: VM Java que faz otimização binária – FreeBSD Linux mode: vetor de serviços de sistema – FreeBSD Jails: contexto isolado restrito (Verio VPS)
  12. 12. Exemplos de virtualização em nível de processo Aplicação Windows (IA32) Aplicação M68k (Palm OS 4) Aplicação ARM32 Windows NT (Palm OS 5) PACE (runtime) (Alpha) Runtime Bibliotecas ISA Alpha (RISC, 64 Bits) Palm OS 5 FX!32 DAL: Device Abstraction Layer Aplicação Windows (IA32) HAL: Hardware Abstraction Layer Runtime Unix ISA ARM32 ISA IA32 Palm OS Application Compatibility Wine: Windows Emulator Environment Palm OS 5
  13. 13. Virtualização em Nível de Sistema ● VM clássica: hypervisor (VMM) gerencia o hardware e suporta múltiplos SOs (VM/370, VM/CMS, z/VM) ● VM hóspede: roda em um SO (VMware, Virtual PC for Windows, QEMU Accelerator) ● Sistema completo: emula um computador (QEMU, Virtual PC for Mac, POSE, dúzias!) ● Codesign: semelhante a microcódigo, processador expõe uma ISA virtual (Crusoe, IBM AS/400) ● Exceções/mistos – Virtualização auxilida por hardware (VT-x, AMD-V) – Xen: Paravirtualization (SO hóspede modificado)
  14. 14. Exemplos de virtualização em nível de sistema Aplicação Linux (SPARC32) SPARC Linux QEMU (runtime) VM1 VM2 FreeBSD Aplicação Aplicação Linux z/OS ISA IA32 z/Linux z/OS Aplicação Windows (IA32) Hypervisor (runtime) Windows XP (IA32) QEMU (runtime) z/Architecture FreeBSD Kqemu z/VM ISA IA32 QEMU
  15. 15. Vantages e Desvantagens Vantagens Desvantagens ● Redução de custos ● Desempenho limitado ● Segurança ● Emulação incompleta ● Flexibilidade ● Necessidade de alterar o hóspede (às vezes) Vantages e desvantagens sempre são relativas!
  16. 16. Exemplo Prático QEMU: diversos SOs rodando simultaneamente Aplicação FreeBSD (IA32) FreeBSD (IA32) QEMU (runtime) Linux Kqemu ISA IA32
  17. 17. Dúvidas?
  18. 18. Obrigado pela atenção! Contato echo unixmania at gmail dot com | sed 's/ at /@/;s/ dot /./g'

×