Facultad de IngenieríaUniversidad de Buenos Aires
75-08 Sistemas OperativosLic. Ing. Osvaldo Clúa
Lic. Adrián Muccio
VirtualizaciónVirtualización
75-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa
Lic. Adrián MuccioFIUBA 2
VirtualizaciónVirtualización
● La abstracción de recursos de computación– Virtualización de Aplicaciones.– Virtualización de Plataforma.– Virtualización de Escritorio.– Virtualización de recursos.
● Red, Memoria, Almacenamiento, clusters, grids.
75-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa
Lic. Adrián MuccioFIUBA 3
¿Para qué se usa?¿Para qué se usa?
● Aumento de confiabilidad.– El software tiene mas fallas (bugs) que el
Hardware.● Aplicaciones antiguas (“legacy”).● Desarrollo y prueba en múltiples plataformas.● Balanceo de cargas y escalabilidad futura.
– Es mas fácil migrar de una VM a otra en un host demasiado cargado.
75-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa
Lic. Adrián MuccioFIUBA 4
Virtualización de AplicacionesVirtualización de Aplicaciones
● Compatibilidad y portabilidad entre distintos Sistemas Operativos y distintas arquitecturas.
"AppVirtual" by Egmason - Own work. Licensed under CC BY-SA 3.0 via Commons - https://commons.wikimedia.org/wiki/File:AppVirtual.svg#/media/File:AppVirtual.svg
75-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa
Lic. Adrián MuccioFIUBA 5
Virtualización de Aplicaciones - cont.Virtualización de Aplicaciones - cont.
● Máquinas Virtuales (JVM, .net CLR)
"JvmSpec7" by Michelle Ridomi - Own work. Licensed under CC BY-SA 4.0 via Commons- https://commons.wikimedia.org/wiki/File:JvmSpec7.png#/media/File:JvmSpec7.png
75-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa
Lic. Adrián MuccioFIUBA 6
Virtualización de Aplicaciones- cont.Virtualización de Aplicaciones- cont.
● Compatibility Layers● WOW64,Linux on BSD● Wine
– En general requiere de una CPUcompatible (upwards)
75-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa
Lic. Adrián MuccioFIUBA 7
Virtualización de PlataformaVirtualización de Plataforma● Abstracción de todos los recursos de
computación de un huésped dentro de un anfitrión (host).– Virtualización total.
● Emulación de plataforma.● Hipervisores
– Paravirtualización.– Virtualización del mismo Sistema Operativo.
75-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa
Lic. Adrián MuccioFIUBA 8
¿Cuando es posible virtualizar?¿Cuando es posible virtualizar?● Condiciones de Popek y Goldberg.
– Instrucciones privilegiadas● Las que ocasionan un software trap.
– Instrucciones delicadas (“sensitive”)● Las que solo pueden ejecutarse en Modo Supervisor del
procesador.● Una arquitectura es virtualizable si las instrucciones
delicadas son un subconjunto de las privilegiadas– La arquitectura Intel IA32 no lo es.
● Por ejemplo, POPF tiene distintos resultados según el modo del procesador ...
75-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa
Lic. Adrián MuccioFIUBA 9
Virtualización de la IA32Virtualización de la IA32
●AMD-V o Pacífica para procesadores AMD.●Intel IVT o Vanderpool.
● La idea es generar “containers” donde la ejecución de una instrucción delicada provoqueun software trap.● (trap & emulate)
Usando IOMMU para acceder a memoria virtual
75-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa
Lic. Adrián MuccioFIUBA 10
HipervisoresHipervisores
● Monitor de máquinas virtuales– Tipo I
● Corren directamente sobre el Hardware.● El huésped debe tener una arquitectura
virtualizable.– Tipo II
● Corre como un programa bajo un sistema operativo anfitrión (Host).
● Pueden virtualizar cualquier ambiente.
75-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa
Lic. Adrián MuccioFIUBA 11
Hipervisor Tipo IHipervisor Tipo I
● El huésped corre en modo usuario.– Su Kernel cree haber pasado a modo
supervisor, pero continúa en modo usuario.
75-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa
Lic. Adrián MuccioFIUBA 12
Hipervisor Tipo I (2)Hipervisor Tipo I (2)
– Al ejecutar una instrucción delicada,se produce una software trap.
– El Hipervisor toma el control.●Si la trap proviene del kernel del guest, lleva a cabo la acción correspondiente.●Si proviene de un programa en modo usuario, responde como lo haría el Hard.
● VMware ESX, Xen, Hyper-V, ● KVM
75-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa
Lic. Adrián MuccioFIUBA 13
Hipervisor Tipo IIHipervisor Tipo II
● Corre bajo el control de otro sistema operativo.
● Modifica el programa que está corriendo.
75-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa
Lic. Adrián MuccioFIUBA 14
Binary translationBinary translation
● Basic Block– Código con un punto de entrada, uno de salida
y sin “jumps”. ● El Hipervisor examina los Basic Blocks ...
– ... y reemplaza las instrucciones delicadas por llamadas al hipervisor
– ... y guarda el código traducido en el cache.● Lo que aumenta su performance.
75-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa
Lic. Adrián MuccioFIUBA 15
HipervisoresHipervisores
● El tipo I no siempre es mas rápido que el tipo II.– Las traps consumen muchos recursos.
– Y una vez en el cache, el tipo II tiene velocidad casi nativa.
– Virtual PC, VMware server, Virtual Box
75-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa
Lic. Adrián MuccioFIUBA 16
ParavirtualizaciónParavirtualización
● Reemplazar en el sistema operativo guest las instrucciones delicadas por llamadas al hipervisor.– Una API es VMI de Vmware.– Requiere modificaciones en el
guest.● En Linux a partir del Kernel 2.6.21.● La mayor parte de los hipervisores la adoptaron
como opción.
75-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa
Lic. Adrián MuccioFIUBA 17
Máquinas VirtualesMáquinas Virtuales
● La lista de VM sigue creciendo ...– ... y aparece una nueva forma de distribución,
los Aparatos Virtuales o Virtual Appliances.– ...o de distribución de aplicaciones usando
streaming.● Algunos enfoques diferentes:➢ Traductor binario dinámico: QuickTransit ➢ Destinado a los empotrados: MPLAB (ICE).
75-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa
Lic. Adrián MuccioFIUBA 18
Virtualización del EscritorioVirtualización del Escritorio
● Las aplicaciones se hospedan en un sistema central pero cada usuario tiene su escritorio local.– Concepto tomado de los thin client.
● Citrix, MokaFive.● Y algunos Web Desktops como Glide o DesktopTwo.
75-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa
Lic. Adrián MuccioFIUBA 19
Virtualización de recursos
Virtualización de recursos
● Usar los recursos del sistema operativo host para apoyar la ejecución del guest.
– Colinux Era un kernel que corría como servico de XP...
– ...y andlinux es una aplicación de colinux
75-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa
Lic. Adrián MuccioFIUBA 20
Virtualización del Sistema OperativoVirtualización del Sistema Operativo
● Cuando el Kernel permite distintos ambientes de usuarios aislados entre sí.– Una extensión del chroot.– Usado por seguridad en aplicaciones como
hosting virtual.– Linux VServer, Virtuozzo, Solaris containers o
BSD Jails, Docker.
75-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa
Lic. Adrián MuccioFIUBA 21
Virtualización del Sistema Operativo - Docker
Virtualización del Sistema Operativo - Docker
75-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa
Lic. Adrián MuccioFIUBA 22
El lado (azul) oscuro ...El lado (azul) oscuro ...
● En una conferencia de seguridad, Joanna Rutkowska afirma tener una píldora que despierta a Windows en la Matrix...