PDF de programación - Virtualización

Imágen de pdf Virtualización

Virtualizacióngráfica de visualizaciones

Publicado el 4 de Septiembre del 2018
514 visualizaciones desde el 4 de Septiembre del 2018
478,1 KB
58 paginas
Creado hace 2a (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
  • Links de descarga
http://lwp-l.com/pdf13356

Comentarios de: Virtualización (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