Publicado el 4 de Septiembre del 2018
1.387 visualizaciones desde el 4 de Septiembre del 2018
478,1 KB
58 paginas
Creado hace 8a (17/02/2017)
Introducción
Emulación
Virtualización por hardware
Paravirtualización
Contenedores
Conclusión y nuevos conceptos
Virtualización
Gunnar Wolf
Gunnar Wolf
Virtualización
Introducción
Emulación
Virtualización por hardware
Paravirtualización
Contenedores
Conclusión y nuevos conceptos
Índice
1
Introducción
2 Emulación
3 Virtualización por hardware
4 Paravirtualización
5 Contenedores
6 Conclusión y nuevos conceptos
Gunnar Wolf
Virtualización
Introducción
Emulación
Virtualización por hardware
Paravirtualización
Contenedores
Conclusión y nuevos conceptos
¿Qué significa virtualizar?
Proveer 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.
Gunnar Wolf
Virtualización
Introducción
Emulación
Virtualización por hardware
Paravirtualización
Contenedores
Conclusión y nuevos conceptos
Ámbitos de virtualización
Es un término de moda, que nos encontraremos cubriendo muy
distintas tecnologías
Lleva existiendo –de diferentes maneras– muchas décadas
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
Gunnar Wolf
Virtualización
Introducción
Emulación
Virtualización por hardware
Paravirtualización
Contenedores
Conclusión y nuevos conceptos
¿Diferentes tecnologías?
Muchas cosas pueden ser entendidas por virtualización
Hay muchos diferentes casos de uso, y cada uno requiere una
solución diferente
Incluso para un mismo caso de uso, hay más de una manera de
llegar al mismo resultado
Hay espacio para que la selección natural haga su trabajo
Las diferentes tecnologías no tienen líneas divisorias tan claras
Un proyecto pueden caer en varias clasificaciones
O ser originalmente de un tipo, e ir migrando naturalmente
hacia otro
Gunnar Wolf
Virtualización
Introducción
Emulación
Virtualización por hardware
Paravirtualización
Contenedores
Conclusión y nuevos conceptos
Índice
1
Introducción
2 Emulación
3 Virtualización por hardware
4 Paravirtualización
5 Contenedores
6 Conclusión y nuevos conceptos
Gunnar Wolf
Virtualización
Introducción
Emulación
Virtualización por hardware
Paravirtualización
Contenedores
Conclusión y nuevos conceptos
¿Qué es emular?
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 hacia la segunda mitad de los 1980 y a
principios de los 1990, durante la explosión de las arquitecturas
Es altamente ineficiente — Resulta muy caro en tiempo de
cómputo
Gunnar Wolf
Virtualización
Introducción
Emulación
Virtualización por hardware
Paravirtualización
Contenedores
Conclusión y nuevos conceptos
¿Emular o simular?
Un emulador busca imitar el comportamiento completo del
sistema destino
Emular: Imitar las acciones de otro, procurando igualarlo o
superarlo (WordReference.com)
Reproduce todos los procesos internos
Implementa los mismos mecanismos
Un simulador simula o finge las áreas de interés del sistema
destino
Puede emplear datos para generar respuestas predefinidas,
obviando (brincándose) procesos
Gunnar Wolf
Virtualización
Introducción
Emulación
Virtualización por hardware
Paravirtualización
Contenedores
Conclusión y nuevos conceptos
¿Emular o simular? Un ejemplo
Un simulador de vuelo no nos lleva a ningún lugar, aunque presente
una cabina como la de un avión real
Un emulador busca ejecutar software arbitrario sin que éste detecte
la diferencia
Gunnar Wolf
Virtualización
Introducción
Emulación
Virtualización por hardware
Paravirtualización
Contenedores
Conclusión y nuevos conceptos
Emulación de una arquitectura existente
Se puede hacer a diferentes profundidades
Desde emular el sistema completo (juego de instrucciones,
chipset, buses, etc.)
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
Macintosh y Atari ST (misma plataforma m680x0) a velocidad
nativa
Plataforma PC, pero muy, muy lenta (incluso XT 8088)
Gunnar Wolf
Virtualización
Introducción
Emulación
Virtualización por hardware
Paravirtualización
Contenedores
Conclusión y nuevos conceptos
Utilidad actual de la emulación
A difrencia 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)
Diseñadas para correr con el menor consumo energético posible
Aún a costa de un menor rendimiento
Celuluares, cámaras, ruteadores, scanners, controladores de
equipo industrial. . .
Parte muy importante del mercado
Emular m680x0 o ARM en un buen equipo de escritorio resulta
en velocidad comparable al hardware nativo
Gunnar Wolf
Virtualización
Introducción
Emulación
Virtualización por hardware
Paravirtualización
Contenedores
Conclusión y nuevos conceptos
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 portabilidad, UCSD definió un p-system, a ser
ejecutado en una p-machine
Esta computadora nunca existiría en realidad, pero varias
arquitecturas existentes ofrecerían emuladores de p-machines
La arquitectura de la p-machine está definida en torno al
lenguaje Pascal
Gunnar Wolf
Virtualización
Introducción
Emulación
Virtualización por hardware
Paravirtualización
Contenedores
Conclusión y nuevos conceptos
Emulando arquitecturas inexistentes
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
Gunnar Wolf
Virtualización
Introducción
Emulación
Virtualización por hardware
Paravirtualización
Contenedores
Conclusión y nuevos conceptos
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
Slogan: Write Once, Run Anywhere
Microsoft retomó varios años más tarde esta misma idea,
creando la arquitectura .NET
Su principal contribución es plantear a la máquina virtual como
independiente del lenguaje de programación
Desde el 2000, las comunidades (principalmente) de Perl y
Python han implementado Parrot
Máquina virtual apta para lenguajes de script
Gunnar Wolf
Virtualización
Introducción
Emulación
Virtualización por hardware
Paravirtualización
Contenedores
Conclusión y nuevos conceptos
Esquema de la arquitectura .NET
Figura: Arquitectura de la infraestructura de lenguajes comunes (CLI) de
.NET (Imagen: Wikipedia)
Gunnar Wolf
Virtualización
Introducción
Emulación
Virtualización por hardware
Paravirtualización
Contenedores
Conclusión y nuevos conceptos
¿Por qué utilizar/emular estas arquitecturas?
Las abstracciones presentadas por estas máquinas virtuales
resultan demasiado complejas para ser implementadas
directamente en hardware
Son, sin embargo, muy útiles al programador, que sabrá
sacarles buen jugo
Sun diseñó la arquitectura MAJC (1999) para ejecutar
directamente código Java
Los chips resultaban demasiado complejos y caros
Fracaso comercial
MAJC implementaba una arquitectura VLIW y optimización
basada en múltiples hilos de ejecución
Ideas retomadas para generaciones actuales de CPUs
Gunnar Wolf
Virtualización
Introducción
Emulación
Virtualización por hardware
Paravirtualización
Contenedores
Conclusión y nuevos conceptos
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 código diseñado
para otras arquitecturas
Traducido a través del microcódigo: Code Morphing Software
(Software de transformación de código)
Gunnar Wolf
Virtualización
Introducción
Emulación
Virtualización por hardware
Paravirtualización
Contenedores
Conclusión y nuevos conceptos
Transmeta: El procesador emulador
La única arquitectura implementada en CMS es la Intel x86
Pero las dos generaciones de procesadores Transmeta (Crusoe
y Efficeon) son completamente distintas
Gracias a CMS, esta difrencia es transparente al usuario
Tecnología muy interesante, y aplicada ya fuera de Transmeta
A pesar de esto, Transmeta colapsó como empresa.
Gunnar Wolf
Virtualización
Introducción
Emulación
Virtualización por hardware
Paravirtualización
Contenedores
Conclusión y nuevos conceptos
La emulación, mejorada
Las técnicas utilizadas para la emulación han mejorado
tremendamente en los úlitmos diez años
Los emuladores hacen hoy traducción predictiva y compilación
del código a ejectuar a formatos nativos (traducción dinámica)
También guardan copias convertidas/compiladas del código a
emular
Compilador JIT — Just in Time; Compilador Justo a Tiempo
Gunnar Wolf
Virtualización
Introducción
Emulación
Virtualización por hardware
Paravirtualización
Contenedores
Conclusión y nuevos conceptos
La emulación, mejorada
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 haga falta optimización
. . . Y las usamos transparentemente, todos los días
Gunnar Wolf
Virtualización
Introducción
Emulación
Virtualización por hardware
Paravirtualización
Contenedores
Conclusión y nuevos conceptos
Índice
1
Introducción
2 Emulación
3 Virtualización por hardware
4 Paravirtualización
5 Contenedores
6 Conclus
Comentarios de: Virtualización (0)
No hay comentarios