PDF de programación - Máquinas Virtuales y sus Múltiples Usos

Imágen de pdf Máquinas Virtuales y sus Múltiples Usos

Máquinas Virtuales y sus Múltiples Usosgráfica de visualizaciones

Actualizado el 21 de Marzo del 2018 (Publicado el 2 de Marzo del 2018)
567 visualizaciones desde el 2 de Marzo del 2018
241,3 KB
60 paginas
Creado hace 4a (09/01/2016)
¿Qu´e es?

Emulaci´on

Virt.asistida (HVM)

Paravirtualizaci´on

Contenedores

Traducci´on

Conclusiones

M´aquinas Virtuales y sus M´ultiples Usos

Karla Ivonne Gonz´alez Rosas y Antonio Carrillo Ledesma

— aula@ciencias.unam.mx —

Facultad de Ciencias, UNAM

Curso intersemestral 2016

11 de enero, 2016

¿Qu´e es?

Emulaci´on

Virt.asistida (HVM)

Paravirtualizaci´on

Contenedores

Traducci´on

Conclusiones

Temas

1 ¿Que es la virtualizaci´on?

2 Emulaci´on

3 Virtualizaci´on asistida por hardware (HVM)

4 Paravirtualizaci´on

5 Contenedores

6 Traducci´on de APIs

7 A modo de conclusi´on

¿Qu´e es?

Emulaci´on

Virt.asistida (HVM)

Paravirtualizaci´on

Contenedores

Traducci´on

Conclusiones

¿Qu´e significa virtualizar en el c´omputo?

Proveer de algo que no est´a all´ı, aunque parece estarlo

Ofrecer y mantener una ilusi´on, un truco de magia

La virtualizaci´on es, en t´erminos generales, ofrecer recursos que no

existen en realidad —y mantener la ilusi´on, tan bien como sea

posible–

¿Qu´e es?

Emulaci´on

Virt.asistida (HVM)

Paravirtualizaci´on

Contenedores

Traducci´on

Conclusiones

¿Qu´e entendemos por virtualizaci´on?

La virtualizaci´on es uno de los t´erminos de moda hoy en d´ıa
—pero lleva existiendo de diferentes maneras por muchas
d´ecadas—

En esta presentaci´on cubriremos algunas estrategias y
tecnolog´ıas de virtualizaci´on comunes hoy en d´ıa, con
diferentes usos y prop´ositos

...Muchos de los cuales utilizamos d´ıa a d´ıa sin pensar en ello

¿Qu´e es?

Emulaci´on

Virt.asistida (HVM)

Paravirtualizaci´on

Contenedores

Traducci´on

Conclusiones

¿Diferentes tecnolog´ıas?

Como vimos en un principio, muchas cosas pueden ser
entendidas por virtualizaci´on

Hay muchos diferentes casos de uso, y cada uno requiere una
soluci´on diferente, adecuada

Incluso para un mismo caso de uso, hay m´as de una manera
de llegar al mismo resultado. Y debemos permitir que la
selecci´on natural haga su trabajo

Las diferentes tecnolog´ıas no tienen l´ıneas divisorias tan
claras; un proyecto puede caer en varias clasificaciones, o caer
en una e ir migrando hacia otra

¿Qu´e es?

Emulaci´on

Virt.asistida (HVM)

Paravirtualizaci´on

Contenedores

Traducci´on

Conclusiones

Temas

1 ¿Que es la virtualizaci´on?

2 Emulaci´on

3 Virtualizaci´on asistida por hardware (HVM)

4 Paravirtualizaci´on

5 Contenedores

6 Traducci´on de APIs

7 A modo de conclusi´on

¿Qu´e es?

Emulaci´on

Virt.asistida (HVM)

Paravirtualizaci´on

Contenedores

Traducci´on

Conclusiones

Emulaci´on

La t´ecnica de virtualizaci´on disponible hace m´as tiempo en
computadoras personales

El procesador anfitri´on traduce cada una de las instrucciones,
simulando en tiempo de ejecuci´on hardware inexistente

Fue muy popular en la segunda mitad de los 1980 y a
principios de los 1990, durante la explosi´on de las
arquitecturas

Es, sin embargo, altamente ineficiente —resulta muy caro en
tiempo de c´omputo—

¿Qu´e es?

Emulaci´on

Virt.asistida (HVM)

Paravirtualizaci´on

Contenedores

Traducci´on

Conclusiones

Emulaci´on de una arquitectura existente

Se puede hacer a diferentes profundidades, desde emular el
sistema completo (desde el juego de instrucciones) hasta
emular ´unicamente parte del chipset (muy com´un en
arquitecturas m680x0)

La arquitectura Amiga de Commodore es la primera de uso
personal en ofrecer varios programas emuladores —emular
Macintosh y Atari ST (misma plataforma m680x0)—
funcionaba a velocidad nativa... Pero la emulaci´on de PC
(incluso emulando s´olo el XT 8088) era rid´ıculamente lenta

¿Qu´e es?

Emulaci´on

Virt.asistida (HVM)

Paravirtualizaci´on

Contenedores

Traducci´on

Conclusiones

Utilidad actual de la emulaci´on

A diferencia de lo que ocurr´ıa hace 20 a˜nos, hoy en d´ıa este
tipo de emulaci´on es muy socorrido en el “mundo real”

Los sistemas embebidos son cada vez m´as comunes
—computadoras peque˜nas, limitadas en recursos (memoria,
almacenamiento, velocidad)— y dise˜nados para correr con el
menor consumo energ´etico posible, a´un a costa de un menor
rendimiento

Celulares, PDAs, c´amaras, scanners mec´anicos, controladores
de equipo industrial... Una rama muy importante del mercado
actual

Emular m680x0 o ARM en un procesador est´andar de
escritorio llega a ser m´as r´apido incluso que el hardware nativo

¿Qu´e es?

Emulaci´on

Virt.asistida (HVM)

Paravirtualizaci´on

Contenedores

Traducci´on

Conclusiones

Emuladores libres

Algunos emuladores disponibles en Debian:

qemu (multiplataforma), apple2, atari800, dosemu (aplicaciones
MS-DOS modo real), e-uae (Amiga m680x0, sin MMU), nestra
(Nintento NES), pose (PDAs Palm), specemu (ZX Spectrum
48k), stella (Atari 2600), vice (Commodore PET, VIC20, 64,
128, CBM-II, PLUS/4), xtrs (TRS-80), aranym (Atari ST),
coldfire (Frescale Coldfire 5206), dosbox (aplicaciones MS-DOS
modo real con soporte de gr´aficos), hatari (Atari STe),
hercules(IBM System/370, ESA/390, z/Architecture), pearpc
(PowerPC), simh (Equipos hist´oricos DEC, Honeywell, HP, IBM y
otros), dgen (Sega Genesis/MegaDrive)

¿Qu´e es?

Emulaci´on

Virt.asistida (HVM)

Paravirtualizaci´on

Contenedores

Traducci´on

Conclusiones

Emulando arquitecturas inexistentes

Tambi´en podemos emular una arquitectura que nunca ha sido
implementada

La idea viene tambi´en de los 1970: En pos de la portabiliidad,
UCSD defini´o un p-system, a ser ejecutado en una p-machine

Esta computadora nunca existir´ıa en realidad, pero varias
arquitecturas ofrecer´ıan emuladores de p-machines.

La arquitectura de la p-machine est´a definida en torno al
lenguaje Pascal

Todo programa hecho para correr en una p-machine correr´ıa
en cualquier arquitectura que lo implementara.

Los p-systems gozaron de relativa popularidad hasta mediados
de los 1980, con implementaciones en arquitecturas 6502, Z80
y 80x86

¿Qu´e es?

Emulaci´on

Virt.asistida (HVM)

Paravirtualizaci´on

Contenedores

Traducci´on

Conclusiones

Arquitecturas plantadas meramente en teor´ıa

Hay arquitecturas que han sido concebidas exclusicamente
para prop´ositos acad´emicos

Donald Knuth dise˜n´o la arquitectura MIX en los 1960 como
arquitectura ideal para los ejemplos y ejercicios de su c´elebre
libro The Art of Computer Programming, y su sucesora MMIX
en 1999

Es una arquitectura apta para la ense˜nanza, pero inviable para
un sistema real. MIX Plantea un sistema h´ıbrido
binario-decimal, de 6 bits en modo binario o 2 d´ıgitos en
modo decimal; MMIX es una arquitectura RISC con 256
registros de 64 bits

Existen MIXWARE/MMIXWARE —a emuladores
(incompletos) de MIX y MMIX—

¿Qu´e es?

Emulaci´on

Virt.asistida (HVM)

Paravirtualizaci´on

Contenedores

Traducci´on

Conclusiones

Arquitecturas emuladas, de uso diario — e inexistentes

En la d´ecada de los 1990, Sun Microsystems retom´o las ideas
de los p-systems, y dise˜n´o la arquitectura Java

Java est´a pensado para ser una arquitectura idealizada,
nativamente orientada a objetos, buscando dar una completa
portabilidad al c´odigo

Write Once, Run Anywhere

Microsoft retom´o varios a˜nos m´as tarde esta misma idea,
creando la arquitectura .NET —su principal contribuci´on es el
estar planteada como independiente de lenguaje—

Desde el 2000, las comunidades (principalmente) de Perl y
Python est´an implementando Parrot, una m´aquina virtual
apta para lenguajes de scripts

¿Qu´e es?

Emulaci´on

Virt.asistida (HVM)

Paravirtualizaci´on

Contenedores

Traducci´on

Conclusiones

¿Por qu´e utilizar/emular estas arquitecturas?

Las abstracciones presentadas por estas m´aquinas virtuales
resultan demasiado complejas para ser implementadas
directamente en el hardware

Son, sin embargo, muy ´utiles al programador, quien sabr´a
sacarles muy buen jugo

Sun dise˜n´o una arquitectura de chips, MAJC (1999), para
ejecutar directamente c´odigo Java —pero los chips resultaban
demasiado complejos y, por tanto, caros—

MAJC implementaba una arquitectura VLIW y optimizaci´on
basada en m´ultiples hilos de ejecuci´on —estas ideas han sido
retomadas en las generaciones actuales de CPUs—

¿Qu´e es?

Emulaci´on

Virt.asistida (HVM)

Paravirtualizaci´on

Contenedores

Traducci´on

Conclusiones

Transmeta: El procesador emulador

En el 2000, Transmeta anunci´o su procesador Crusoe,
orientado al mercado de bajo consumo energ´etico

Su arquitectura est´a dise˜nada para ejecutar —a trav´es del
Code Morphing Software— c´odigo dise˜nado para otras
arquitecturas

La ´unica arquitectura implementada en CMS es la Intel x86,
pero las dos generaciones de procesadores Transmeta (Crusoe
y Efficeon) son completamente distintas, y gracias al CMS,
esto es transparente al usuario

...Es tecnolog´ıa muy interesante, y se ha aplicado ya fuera de
Transmeta. Sin embargo, personalmente dudo de que
Transmeta (como compa˜n´ıa independiente) tenga viabilidad a
futuro

¿Qu´e es?

Emulaci´on

Virt.asistida (HVM)

Paravirtualizaci´on

Contenedores

Traducci´on

Conclusiones

La emulaci´on, mejorada

Las t´ecnicas utilizadas para la emulaci´on han mejorado
tremendamente en los ´ultimos diez a˜nos

Los emuladores hacen hoy traducci´on predictiva y compilaci´on
del c´odigo a ejecutar a formatos nativos (traducci´on din´amica)

Incluso guardan copias convertidas/compiladas del c´odigo a
emular (Just In Time)

En l´ıneas generales, la vieja fama de la lentitud de las
m´aquinas virtuales ya no se justifica

Las m´aquinas virtuales pueden llamar a c´odigo nativo para
puntos cr´ıticos donde hace falta optimizaci´on

...Y las usamos transparentemente, todos los d´ıas

¿Qu´e es?

Emulaci´on

Virt.asistida (HVM)

Paravirtualizaci´on

Contenedores

Traducci´on

Conclusiones

Qemu: un caso muy especial

Bochs es un emulador libre de x86; existe desde 1994,
orientado a las estaciones de trabajo Unix

Bochs implement´o un BIOS b´asico de PC, y la emulaci´on de
los principales dispositivos (discos, consola, VGA, puertos...)
Plex86 (originalmente FreeMWare, 1999, haciendo clara
alusi´on a VMWare) ofrece una fuerte aceleraci´on a Bochs, a
trav´es de la traducci´on din´amica permiti
  • Links de descarga
http://lwp-l.com/pdf9178

Comentarios de: Máquinas Virtuales y sus Múltiples Usos (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad