SlideShare uma empresa Scribd logo
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
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!
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.
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
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
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.
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
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
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
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
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)
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
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)
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
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!
Exemplo Prático

QEMU: diversos SOs rodando simultaneamente



           Aplicação FreeBSD (IA32)
              FreeBSD (IA32)
           QEMU (runtime)
               Linux           Kqemu

                   ISA IA32
Dúvidas?
Obrigado pela atenção!

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

Mais conteúdo relacionado

PPT
Virtualização
DOCX
O que é virtualização
PDF
Virtualização - Máquinas Virtuais
PDF
Virtualização em Sistemas Computacionais - Palestra Infnet
PPT
Virtualização
ODP
Aula- Virtualização
PDF
Artigo
PDF
Virtualização de servidores com tecnologia Linux
Virtualização
O que é virtualização
Virtualização - Máquinas Virtuais
Virtualização em Sistemas Computacionais - Palestra Infnet
Virtualização
Aula- Virtualização
Artigo
Virtualização de servidores com tecnologia Linux

Destaque (20)

PDF
Human Potential Index (HPI) als instrument der dynamischen Personalwirtschaft
PDF
Virtualizacion A La Orden
PPT
Documentos da rede e mec
PPT
Dot dot-seurat
PDF
Dot Zsuriken 2009 par autoprestige-tuning.fr
PDF
PDF
Tutorial prezi
PDF
GADTs Einführung
PPT
More fun in the philippines - Thomas JOUANNES
PPT
Aplicaciones móviles para ambientes descentralizados
PDF
PDF
The pale blue dot. Carl Sagan.
PDF
Modificaciones DOT sintesis.pdf
PDF
Instructivo para inscripcion a nivel de ingles English dot Works
PPTX
Presentan un nuevo reloj para ciegos
PDF
Informe modficación Directrices Ordenacion del Territorio .pdf
PPSX
Aprilia futura rst 1000 recepteur embrayage
PPTX
Institucional: DOT digital group
Human Potential Index (HPI) als instrument der dynamischen Personalwirtschaft
Virtualizacion A La Orden
Documentos da rede e mec
Dot dot-seurat
Dot Zsuriken 2009 par autoprestige-tuning.fr
Tutorial prezi
GADTs Einführung
More fun in the philippines - Thomas JOUANNES
Aplicaciones móviles para ambientes descentralizados
The pale blue dot. Carl Sagan.
Modificaciones DOT sintesis.pdf
Instructivo para inscripcion a nivel de ingles English dot Works
Presentan un nuevo reloj para ciegos
Informe modficación Directrices Ordenacion del Territorio .pdf
Aprilia futura rst 1000 recepteur embrayage
Institucional: DOT digital group
Anúncio

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

ODP
Apresentação Monografia Virtualização
PDF
VDI e Projeto OSDVT
PPT
Apostila 9 virtualização - nova
PPT
Apostila 9 virtualização - nova
PDF
Introdução à Virtualização
PDF
Virtualização de Desktops
ODP
Minicurso - Virtualização
PDF
JavaME - Aula 1
PPT
Virtualização.ppt
PPS
Beneficios da virtualização
PPT
Sistemas Operativos
PPT
Apresentação estágio - Virtualização
PDF
PPT
[SO]Virtualizacao.ppt
PDF
Boteco Xen
PPTX
Introdução à Programacao em Processing
PDF
Usando vitual box parte 1
PDF
Maratona JBoss 2010 - JBoss AS Amazon EC2
Apresentação Monografia Virtualização
VDI e Projeto OSDVT
Apostila 9 virtualização - nova
Apostila 9 virtualização - nova
Introdução à Virtualização
Virtualização de Desktops
Minicurso - Virtualização
JavaME - Aula 1
Virtualização.ppt
Beneficios da virtualização
Sistemas Operativos
Apresentação estágio - Virtualização
[SO]Virtualizacao.ppt
Boteco Xen
Introdução à Programacao em Processing
Usando vitual box parte 1
Maratona JBoss 2010 - JBoss AS Amazon EC2
Anúncio

Mais de Tchelinux (20)

PDF
Do Zero ao YouTube em menos de 10 softwares livres - Vinícius Alves Hax - Tch...
PDF
Insegurança na Internet - Diego Luiz Silva da Costa - Tchelinux 2019 Rio Grande
PDF
Explorando Editores de Texto Open Source - Gabriel Prestes Ritta - Tchelinux ...
PDF
Desenvolvendo Jogos com PyGame - Jerônimo Medina Madruga - Tchelinux 2019 Rio...
PDF
Me formei. E agora? - Matheus Cezar - Tchelinux 2019 Rio Grande
PDF
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...
PPTX
Shell Script: Seu melhor amigo na automatização de instalações e configuraçõe...
PDF
WebRTC: Comunicação aberta em tempo real - Nelson Dutra Junior - Tchelinux 20...
PDF
Introdução à programação funcional com Clojure - Victor Hechel Colares - Tche...
PDF
Construindo um Data Warehouse - Vítor Resing Plentz - Tchelinux 2019 Rio Grande
PDF
Bikeshedding - Márcio Josué Ramos Torres - Tchelinux 2019 Rio Grande
PDF
Produção de textos com Latex - Samuel Francisco Ferrigo - Tchelinux Caxias do...
PDF
A tecnologia no futuro e nas mãos de quem ela estará - Jaqueline Trevizan, Ne...
ODP
oVirt uma solução de virtualização distribuída opensource - Daniel Lara - Tch...
PDF
Sistemas Embarcados e Buildroot - Renato Severo - Tchelinux Caxias do Sul 2019
PDF
Com que ônibus eu vou? Uma gentil introdução ao Python.
PDF
O TCC... um dia ele chega! (The beautiful and easy LaTeX way.
PDF
Não deixe para testar depois o que você pode testar antes.
PDF
Desenvolvendo jogos com pygame
PDF
Essa câmera faz fotos muito boas, né?
Do Zero ao YouTube em menos de 10 softwares livres - Vinícius Alves Hax - Tch...
Insegurança na Internet - Diego Luiz Silva da Costa - Tchelinux 2019 Rio Grande
Explorando Editores de Texto Open Source - Gabriel Prestes Ritta - Tchelinux ...
Desenvolvendo Jogos com PyGame - Jerônimo Medina Madruga - Tchelinux 2019 Rio...
Me formei. E agora? - Matheus Cezar - Tchelinux 2019 Rio Grande
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...
Shell Script: Seu melhor amigo na automatização de instalações e configuraçõe...
WebRTC: Comunicação aberta em tempo real - Nelson Dutra Junior - Tchelinux 20...
Introdução à programação funcional com Clojure - Victor Hechel Colares - Tche...
Construindo um Data Warehouse - Vítor Resing Plentz - Tchelinux 2019 Rio Grande
Bikeshedding - Márcio Josué Ramos Torres - Tchelinux 2019 Rio Grande
Produção de textos com Latex - Samuel Francisco Ferrigo - Tchelinux Caxias do...
A tecnologia no futuro e nas mãos de quem ela estará - Jaqueline Trevizan, Ne...
oVirt uma solução de virtualização distribuída opensource - Daniel Lara - Tch...
Sistemas Embarcados e Buildroot - Renato Severo - Tchelinux Caxias do Sul 2019
Com que ônibus eu vou? Uma gentil introdução ao Python.
O TCC... um dia ele chega! (The beautiful and easy LaTeX way.
Não deixe para testar depois o que você pode testar antes.
Desenvolvendo jogos com pygame
Essa câmera faz fotos muito boas, né?

Último (19)

PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PDF
Processos na gestão de transportes, TM100 Col18
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PPTX
Aula 18 - Manipulacao De Arquivos python
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PPTX
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PDF
COBITxITIL-Entenda as diferença em uso governança TI
PDF
Apple Pippin Uma breve introdução. - David Glotz
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PPTX
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
PDF
Aula04-Academia Heri- Tecnologia Geral 2025
Custos e liquidação no SAP Transportation Management, TM130 Col18
Processos na gestão de transportes, TM100 Col18
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Aula 18 - Manipulacao De Arquivos python
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
COBITxITIL-Entenda as diferença em uso governança TI
Apple Pippin Uma breve introdução. - David Glotz
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
Aula04-Academia Heri- Tecnologia Geral 2025

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

  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. Exemplo Prático QEMU: diversos SOs rodando simultaneamente Aplicação FreeBSD (IA32) FreeBSD (IA32) QEMU (runtime) Linux Kqemu ISA IA32
  • 18. Obrigado pela atenção! Contato echo unixmania at gmail dot com | sed 's/ at /@/;s/ dot /./g'