Vous êtes sur la page 1sur 45

11

Sistemas Operacionais

Rmulo Silva de Oliveira Alexandre da Silva Carissimi Simo Sirineo Toscani

Introduo: uma perspectiva histrica


Apogeu: linha IBM370 para execuo de sistemas legados e evoluo

Ressurgimento: mquina virtual Java Nova era: aumento do poder computacional, disseminao de sistemas distribudos, novos problemas e horizontes

1960

1970

1980

1990

2000

Declnio: popularizao e uniformizao do hardware, homogeneizao de sistemas operacionais Princpio: Mquina virtual a abstrao em software do hardware de um sistema computacional
Sistemas Operacionais 2

O que virtualizao?

Metodologia para dividir recursos de um computador em mltiplos ambientes de execuo usando vrias tcnicas Particionamento de hardware e software Compartilhamento de tempo Simulao completa ou parcial da mquina (modelo) Emulao (comportamento)

Pragmaticamente: Tcnica que permite particionar um nico sistema computacional em vrios outros sistemas totalmente separados um ambiente que estende/substitui uma interface existente por outra

Sistemas Operacionais

...mas virtualizao no s isso!!


Segundo Enterprise Management Association (EMA), Virtualizao a tcnica que mascara as caractersticas fsicas de um recurso computacional, dos sistemas, aplicaes ou usurios.

Dados (XML) Discos virtuais

Clusters

Middlewares
Grades computacionais ...entre outros
Sistemas Operacionais

Redes

web

Fundamentao terica

Problema: complexidade do sistema computacional Variedade e heterogeneidade dos componentes Interao entre software e hardware Abordagem clssica: uso de nveis de abstrao e interfaces

Componente = sistema independente

Interfaces Servios

Sistemas Operacionais

Dividir para conquistar

Abstrao + Interface Camada n+1

Camada n

Camada n-1

Exemplos: Assembly Bibliotecas Linguagens alto nvel MR-OSI etc

* SPQR: Senatus Populusque Romanus. (O Senado e o Povo Romano)


6

Sistemas Operacionais

Exemplos: abstrao e interfaces


cilindro eixo setor Cabeote r/w Brao mvel

Assembly + modos de endereamento


Identificador numrico Interface sistema de arquivos

Nome simblico

trilha IBM Model DKLA-24320 8944 cilindros 15 cabeotes 63 setores por trilha

Gerncia de diretrio

Internet
Ncleo sistema arquivos Organizao de dispositivos Interface subsistema de E/S
7

Sistemas Operacionais

Isomorfismo

Sistema A
Ei V(Ei)

e (Ei) Ej

V(Ej) e(Ej)

Sistema B
Ei

Ej

Funo de virtualizao V Isomorfismo a transformao do estado de um sistema A em um estado equivalente em um sistema B.


Sistemas Operacionais 8

Abstrao x virtualizao
Enquanto a abstrao esconde detalhes internos de um componente, a virtualizao os apresenta ao exterior de uma forma diferente da real. [Smith, Nair 2005]

Processo usurio
open, read, write, close

Blocos, i-nodes, etc Partio A Partio B

disco fsico

Sistema de arquivos = diretrio + arquivos


Sistemas Operacionais

Partio = disco virtual

Arquitetura de computadores

Instruction Set Architecture (ISA) Interface limtrofe entre o nvel de abstrao de hardware e o de software Retratam (pelo menos) dois modos de operao da CPU Privilegiado System ISA No privilegiado User ISA

Software ISA Hardware

System ISA

User ISA

Sistemas Operacionais

10

Camadas de abstrao e interfaces

Aplicao

software

Bibliotecas System ISA

User ISA

Sistema Operacional 2 Processador 4 Barramento

1 3 6 MMU 7 RAM

hardware

5 E/S

Instruction Set Architecture - ISA

Sistemas Operacionais

11

Sistema operacional como uma mquina virtual

Oferece vrias abstraes Multiprogramao (processos e threads) Memria virtual Sistema de arquivos Dispositivos de bloco e caractere Dois conceitos fundamentais: Processo Chamadas de sistemas (system calls)

Mquina virtual

Sistemas Operacionais

12

A arte de enganar... processo como mquina virtual


Processo
Pilha SP heap Pilha PC Texto (cdigo) Escalonador sistema operacional SP PC Espao de endereamento (lgico)

P1

P2

Pn

CPU virtual SP PC

SP PC

SP PC

CPU fsica

Sistemas Operacionais

13

Interface Binria da Aplicao


Aplicao Aplicao

Interface aplicativa(API) Bibliotecas ABI


Chamadas de sistema Sistema Operacional System ISA User ISA Processador

no Application Binary Chamadas de sistema + Instrues privilegiadas = (system calls) Interface (ABI) (user ISA)
Sistemas Operacionais 14

Virtualizao

Consiste em estender ou substituir um recurso, ou interface, por um outro de modo a imitar um comportamento Objetivos comuns: compatibilidade, isolamento e desempenho
Mquina abstrata

Parties lgicas

...

...

...

Hardware abstrato Hardware Nvel de hardware

Sistema operacional Hardware Nvel de sistema operacional

Sistema operacional Hardware Nvel de linguagem

Sistemas Operacionais

15

Mquinas virtuais

Duas perspectivas diferentes: Processo Mquina virtual de processo (runtime) Sistema operacional Mquina virtual de sistema (hipervisor ou monitor de mquina virtual)

Mquina virtual Hospedeiro

Sistema Operacional
Hardware

Sistemas Operacionais

Hspede
16

Conceitos Sistema hspede: processo ou sistema operacional que executa sobre uma mquina virtual Sistema hospedeiro: plataforma subjacente onde a mquina virtual executa

Aplicao

Mquina virtual de processo


Ambiente de execuo para uma nica aplicao Caracterstica: Criada sob demanda Existe apenas quando o processo executa Baseada na ABI real para oferecer uma ABI virtual

Mquina virtual

Hospedeiro

Mquina virtual

Sistema Operacional
Hardware (cpu, disco, rede, etc)

Hspede

Aplicao

Aplicao

Sistemas Operacionais

17

Mquina virtual de sistema

Ambiente de execuo completo onde podem coexistir sistemas operacionais e aplicaes Dois tipos bsicos:
Mquina virtual
Aplicao ... SO1 SOn Hipervisor (VMM) Hardware (a) Hipervisor Tipo I (nativo)

Hspede

Aplicao

Aplicao ... SO1

Aplicao SOn

Hospedeiro

Sistema Operacional (nativo) Hardware (cpu,RAM, disco,rede,etc) (b) Hipervisor Tipo II (hspede)

Sistemas Operacionais

18

O que virtualizar?

Duas opes: System call + User ISA Ex.: VMware Fusion ambiente windows para MacOS X System call Ex.: VMware Player, VirtualBox, Virtual PC...
Chamada de Sistema virtual

ABI virtual Hipervisor ABI real Plataforma

User ISA virtual

Hipervisor Chamada de Sistema real User ISA real

Plataforma

Sistemas Operacionais

19

Arquiteturas de virtualizao

Implementao de mquinas virtuais no to simples quanto parece Questes de desempenho Compartilhamento de recursos entre sistemas nativos e hspedes Questo interessante: O que fazer quando o sistema operacional hspede executa instrues privilegiadas (system ISA)?

Depende de recursos oferecidos pelo processsador

Sistemas Operacionais

20

Implementao de mquinas virtuais

Mquina virtual de Processo Fcil: apenas uma aplicao que executa sobre sistema operacional nativo Monitor de mquina virtual Camada especial de software (hipervisor) Duas filosofias: Virtualizao total ou completa Paravirtualizao

Sistemas Operacionais

21

Virtualizao total ou completa

Oferece uma rplica do hardware subjacente Desvantagem: Diversidade de hardware Mquina virtual 1 Desempenho Testar operaes sensveis Ap1 Apn Vantagem: Executar sistemas no modificados Sistema operacional 1
(original)

Mquina virtual 2 Ap1

Apn

Sistema operacional 2 (original)

VMM (Virtual Machine Monitor) Plataforma

Sistemas Operacionais

22

Paravirtualizao
Sistema hspede tem conscincia da existncia da VMM Operaes sensveis Vantagem: Mquina virtual 1 Desempenho Desvantagem Modificao do sistema hspede Ap1 Apn
Sistema operacional 1 (modificado)

Mquina virtual 2 Ap1

Apn

Sistema operacional 2 (modificado)

VMM (Virtual Machine Monitor)


Plataforma

Sistemas Operacionais

23

Ferramentas de virtualizao

Existem vrias solues... Comerciais Gratuitas Software livre Integradas em sistemas operacionais Etc. Principais players Citrix (Xen) VMware (VMware Player) Microsoft (Virtual PC 2007) Sun (VirtualBox)

Sistemas Operacionais

24

Xen

www.xensource.com Monitor de mquina virtual (hipervisor tipo I) licenciado sobre GPL Paravirtualizao Virtualizao total a partir da verso 3 Necessrio suporte de hardware (Intel VT ou AMD-V) Baseado no conceito de domnios Dominio 0: ncleo linux modificado com privilgios de acesso a E/S Domnio U: ambientes para mquinas virtuais

Sistemas Operacionais

25

Arquitetura do Xen (paravirtualizado)


Mquina virtual 1 Mquina virtual 2 Apn Ap1

Domnio 0 Gerenciamento Ncleo Linux (modificado) Drivers fsicos

Ap1

Apn

Ncleo Linux(modificado)

OpenSolaris (modificado)

Driver virtual

Driver virtual Hypervisor (Xen)

Gerenciamento de CPU e memria

Dispositivos de E/S

Hardware

Sistemas Operacionais

26

Paravirtualizao e virtualizao total

A partir do Xen verso 3 Subdiviso dos domnios U Domnios U-PV Tm conscincia de no acessarem hardware Drivers especficos para interagir com o domnio 0 Domnios U-HVM (Hosted Virtual Machines) Xen virtual firmware simula existncia de uma BIOS Hardware virtual aquele disponibilizado pelo QEMU

Sistemas Operacionais

27

VMware

Oferece uma linha completa de solues Organizado em trs categorias Gesto e automatizao Infraestrutura virtual Virtualizao de plataformas

Sistemas Operacionais

28

Desktop virtualization products

VMware Virtual Desktop Infrastructure VMware ACE VMware workstation VMware Fusion VMware Player Produto gratuito (Linux e Windows) Virtual Machines Applainces Gerao mquinas virtuais (http://www.easyvmx.com)

Sistemas Operacionais

29

VMWare player

www.vmware.com Monitor de mquina virtual (hipervisor tipo II) Virtualizao total Modificado por questes de desempenho Disponibilidade: Sistema Operacional (hspede) Gratuita para windows e linux Verso comercial para MacOS (Fusion)
VMware Player Sistema Operacional (nativo)

Mquina virtual

Sistemas Operacionais

30

VirtualPC 2007

www.microsoft.com/Windows/virtualPC Monitor de mquina virtual (hipervisor tipo II) Disponibilizada gratuitamente para sistemas Windows Oferece recursos de rede Servidor DHCP, NAT e switches White paper sobre definio de cenrios

Sistemas Operacionais

31

Microsoft

Sistemas Operacionais

32

VirtualBox

www.virtualbox.org Integrante da soluo de virtualizao da Sun Microsystem (Sun xVM) Monitor de mquina virtual (hipervisor tipo II) Disponvel: Licena GPL: VirtualBox OSE (Open Source Edition) Comercial: verso full Sistemas operacionais hospedeiros Microsoft Windows, Linux, Macintosh e OpenSolaris

Sistemas Operacionais

33

Caractersticas: VirtualBox

Explora a capacidade Intel VT-x, mas no AMD-V Compatibilidade com discos virtuais VMWare (VMDK) Executa sobre vrios sistemas operacionais Permite a montagem de imagens ISO No necessrio queimar um CD/DVD para executar um sistema operacional

Sistemas Operacionais

34

Casos de uso

Consolidao ou virtualizao de servidores Virtualizao de desktops Honeypots

O que serve para um cliente pode no servir para o prximo!

Sistemas Operacionais

35

Virtualizao de servidores

Situao clssica: Ambientes grandes e heterogneos Filosofia um servidor por servio Desperdcio do poder de processamento Princpio bsico: Invs de haver n servidores com um percentual de utilizao x possvel ter um nico servidor com um percentual de uso de aproximadamente n.x (< 100%)

Consolidao de servidores Execuo de vrios servios em uma mesma mquina fsica, mas cada um deles em uma mquina virtual separada

Sistemas Operacionais

36

Rede corporativa clssica: pequena e mdia empresa

Servidores so mquinas antigas e intocveis No se mexe em time que est ganhando!! Problemas de segurana Atualizao de software Indisponibilidade: Hardware antigo sujeito a falhas Soluo possvel Aquisio de um nico servidor (robusto) Instalao de n mquinas virtuais Servidores migrados por demanda Manuteno de software legado e verses

Sistemas Operacionais

37

Data centers

Clientes preferenciais para consolidao de servidores pela prpria natureza Manter diferentes sistemas operacionais e/ou verses de um mesmo Executar servios relativamente leves Pontos favorveis Reduo em custos de infraestrutura fsica, de manuteno e equipe Flexibilidade para migrao de servios (balanceamento de carga e atualizao de parque) Vrias solues (comerciais) oferecem produtos para o monitoramento e gerenciamento

Sistemas Operacionais

38

Virtualizao de desktops

Capacidade de executar um sistema operacional hspede sobre uma mquina convencional Possibilidades interessantes: Teste novos sistemas Executar programas feitos para outros sistemas Desenvolvimento de software Laboratrios de treinamento

Sistemas Operacionais

39

Uso pessoal de mquinas virtuais

Ferramentas para uso de virtualizao em desktops Destaque para VMware Player (windows/linux) e para o Virtual PC (windows) Fcil instalao e uso Possibilidades so vrias: Testar um software ou um sistema operacional Executar um programa de origem desconhecida ou duvidosa Ter um ambiente em casa similar ao da universidade

Sistemas Operacionais

40

Desenvolvimento de software

Projetistas de software podem desenvolver, testar e depurar para diferentes verses de um mesmo sistema operacional diferentes sistemas operacionais Ciclo de desenvolvimento, teste e depurao podem explorar capacidade de snapshot das mquinas virtuais Mecanismos de checkpoint/restart

Sistemas Operacionais

41

Laboratrios de treinamento

Situaes tpicas: Suporte a vrios sistemas operacionais Necessidade de conhecer a senha de root Mquinas multi-boot Difceis de manter Podem exigir ordem especfica de instalao dos sistemas operacionais Mesmo trocando senha de root no h como confiar no sistema Soluo: Virtualizao de desktops Exemplos: cursos de sistemas operacionais na UFRGS, cursos de redes de computadores da ESR (RNP), etc.

Sistemas Operacionais

42

Honeypots

Basicamente: Colocar intencionalmente mquinas na Internet de forma que elas sejam atacadas por crackers Objetivo monitorar atividades desses, prevenir ataques e facilitar a investigao de incidncias de ataques e sua recuperao Problemas: Mquina comprometida = reinstalao do sistema Diversidade de sistemas operacionais e configuraes de software Soluo: virtualizao Grande parte de ferramentas tradicionais de honeypots podem ser usadas sem restrio em ambientes virtualizados

Sistemas Operacionais

43

Consideraes finais

Sistemas virtuais, problemas reais Segurana, gerenciamento e desempenho Segurana: Hipervisor uma camada de software, portanto sujeita a vulnerabilidades Vantagem principal a o tempo de recuperao em caso de problemas Em caso de invaso, instanciar uma nova imagem a partir de uma original Gerenciamento Necessidade de ferramentas para instanciar, monitorar, configurar e manter ambientes virtuais Desempenho Custo de processamento introduzido pela virtualizao Capacidade uma mquina fsica suportar vrias mquinas virtuais sem queda sensvel de desempenho

Sistemas Operacionais

44

Leituras complementares

R. Oliveira, A. Carissimi, S. Toscani; Sistemas Operacionais. Editora Bookman, 2010. Captulo 11

Sistemas Operacionais

45