PDF de programación - Estrategias de virtualización con Linux

Imágen de pdf Estrategias de virtualización con Linux

Estrategias de virtualización con Linuxgráfica de visualizaciones

Actualizado el 7 de Abril del 2020 (Publicado el 2 de Mayo del 2017)
447 visualizaciones desde el 2 de Mayo del 2017
526,1 KB
62 paginas
Creado hace 11a (24/10/2008)
¿Qué es?

Emulación

Virt.asistida (HVM)

Paravirtualización

Contenedores

Traducción

Conclusiones

Estrategias de virtualización con Linux

Gunnar Wolf — gwolf@gwolf.org
http://www.gwolf.org/soft/virt

Instituto de Investigaciones Económicas, UNAM

Desarrollador del proyecto Debian

Encuentro Nacional de Linux y Software Libre

Octubre 25, 2008

¿Qué es?

Emulación

Virt.asistida (HVM)

Paravirtualización

Contenedores

Traducción

Conclusiones

Temas

1 ¿Que es la virtualización?

2 Emulación

3 Virtualización asistida por hardware (HVM)

4 Paravirtualización

5 Contenedores

6 Traducción de APIs

7 A modo de conclusión

¿Qué es?

Emulación

Virt.asistida (HVM)

Paravirtualización

Contenedores

Traducción

Conclusiones

¿Qué significa virtualizar en el cómputo?

Proveer de algo que no está allí, aunque parece estarlo

Ofrecer y mantener una ilusión, un truco de magia

La virtualización es, en términos generales, ofrecer recursos que no

existen en realidad — Y mantener la ilusión, tan bien como sea

posible.

¿Qué es?

Emulación

Virt.asistida (HVM)

Paravirtualización

Contenedores

Traducción

Conclusiones

¿Qué entendemos por virtualización?

La virtualización es uno de los términos de moda hoy en día
— Pero lleva existiendo de diferentes maneras por muchas
décadas

En esta presentación cubriremos algunas estrategias y
tecnologías de virtualización comunes hoy en día, con
diferentes usos y propósitos

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

¿Qué es?

Emulación

Virt.asistida (HVM)

Paravirtualización

Contenedores

Traducción

Conclusiones

¿Diferentes tecnologías?

Como vimos en un principio, muchas cosas pueden ser
entendidas por virtualización

Hay muchos diferentes casos de uso, y cada uno requiere una
solución diferente, adecuada

Incluso para un mismo caso de uso — Hay más de una
manera de llegar al mismo resultado. Y debemos permitir que
la selección 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é es?

Emulación

Virt.asistida (HVM)

Paravirtualización

Contenedores

Traducción

Conclusiones

Temas

1 ¿Que es la virtualización?

2 Emulación

3 Virtualización asistida por hardware (HVM)

4 Paravirtualización

5 Contenedores

6 Traducción de APIs

7 A modo de conclusión

¿Qué es?

Emulación

Virt.asistida (HVM)

Paravirtualización

Contenedores

Traducción

Conclusiones

Emulación

La técnica de virtualización disponible hace más tiempo en
computadoras personales

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

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

Es, sin embargo, altamente ineficiente — Resulta muy caro en
tiempo de cómputo.

¿Qué es?

Emulación

Virt.asistida (HVM)

Paravirtualización

Contenedores

Traducción

Conclusiones

Emulación de una arquitectura existente

Se puede hacer a diferentes profundidades — Desde emular el
sistema completo (desde el juego de instrucciones) hasta
emular únicamente parte del chipset (muy común 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ón de PC (incluso
emulando sólo el XT 8088) era ridículamente lenta

¿Qué es?

Emulación

Virt.asistida (HVM)

Paravirtualización

Contenedores

Traducción

Conclusiones

Utilidad actual de la emulación

A diferencia de lo que ocurría hace 20 años, hoy en día este
tipo de emulación es muy socorrido en el “mundo real”

Los sistemas embebidos son cada vez más comunes —
Computadoras pequeñas, limitadas en recursos (memoria,
almacenamiento, velocidad), y diseñados para correr con el
menor consumo energético posible, aún a costa de un menor
rendimiento

Celulares, PDAs, cámaras, scanners mecánicos, controladores
de equipo industrial... Una rama muy importante del mercado
actual

Emular m680x0 o ARM en un procesador estándar de
escritorio llega a ser más rápido incluso que el hardware
nativo.

¿Qué es?

Emulación

Virt.asistida (HVM)

Paravirtualización

Contenedores

Traducción

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áficos), hatari (Atari STe),
hercules(IBM System/370, ESA/390, z/Architecture), pearpc
(PowerPC), simh (Equipos históricos DEC, Honeywell, HP, IBM y
otros), dgen (Sega Genesis/MegaDrive)

¿Qué es?

Emulación

Virt.asistida (HVM)

Paravirtualización

Contenedores

Traducción

Conclusiones

Emulando arquitecturas inexistentes

También podemos emular una arquitectura que nunca ha sido
implementada

La idea viene también de los 1970: En pos de la portabiliidad,
UCSD definió 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á 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é es?

Emulación

Virt.asistida (HVM)

Paravirtualización

Contenedores

Traducción

Conclusiones

Arquitecturas plantadas meramente en teoría

Hay arquitecturas que han sido concebidas exclusicamente
para propósitos académicos

Donald Knuth diseñó la arquitectura MIX en los 1960 como
arquitectura ideal para los ejemplos y ejercicios de su célebre
libro The Art of Computer Programming, y su sucesora MMIX
en 1999

Es una arquitectura apta para la enseñanza, 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é es?

Emulación

Virt.asistida (HVM)

Paravirtualización

Contenedores

Traducción

Conclusiones

Arquitecturas emuladas, de uso diario — e inexistentes

En la década de los 1990, Sun Microsystems retomó las ideas
de los p-systems, y diseñó la arquitectura Java

Java está pensado para ser una arquitectura idealizada,
nativamente orientada a objetos, buscando dar una completa
portabilidad al código

Write Once, Run Anywhere

Microsoft retomó varios años más tarde esta misma idea,
creando la arquitectura .NET — Su principal contribución es
el estar planteada como independiente de lenguaje

Desde el 2000, las comunidades (principalmente) de Perl y
Python están implementando Parrot, una máquina virtual
apta para lenguajes de scripts

¿Qué es?

Emulación

Virt.asistida (HVM)

Paravirtualización

Contenedores

Traducción

Conclusiones

¿Por qué utilizar/emular estas arquitecturas?

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

Son, sin embargo, muy útiles al programador, quien
sabrá sacarles muy buen jugo

Sun diseñó una arquitectura de chips, MAJC (1999), para
ejecutar directamente código Java — Pero los chips
resultaban demasiado complejos y, por tanto, caros

MAJC implementaba una arquitectura VLIW y optimización
basada en múltiples hilos de ejecución — Estas ideas han sido
retomadas en las generaciones actuales de CPUs

¿Qué es?

Emulación

Virt.asistida (HVM)

Paravirtualización

Contenedores

Traducción

Conclusiones

Transmeta: El procesador emulador

En el 2000, Transmeta anunció su procesador Crusoe,
orientado al mercado de bajo consumo energético

Su arquitectura está diseñada para ejecutar —a través del
Code Morphing Software— código diseñado para otras
arquitecturas

La única 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ñía independiente) tenga viabilidad a
futuro.

¿Qué es?

Emulación

Virt.asistida (HVM)

Paravirtualización

Contenedores

Traducción

Conclusiones

La emulación, mejorada

Las técnicas utilizadas para la emulación han mejorado
tremendamente en los últimos diez años

Los emuladores hacen hoy traducción predictiva y compilación
del código a ejecutar a formatos nativos (traducción dinámica)

Incluso guardan copias convertidas/compiladas del código a
emular (Just In Time)

En líneas generales, la vieja fama de la lentitud de las
máquinas virtuales ya no se justifica

Las máquinas virtuales pueden llamar a código nativo para
puntos críticos donde hace falta optimización

...Y las usamos transparentemente, todos los días.

¿Qué es?

Emulación

Virt.asistida (HVM)

Paravirtualización

Contenedores

Traducción

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ó un BIOS básico de PC, y la emulación de
los principales dispositivos (discos, consola, VGA, puertos...)
Plex86 (originalmente FreeMWare, 1999, haciendo clara
alusión a VMWare) ofrece una fuerte acel
  • Links de descarga
http://lwp-l.com/pdf3263

Comentarios de: Estrategias de virtualización con Linux (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