Subscribe:

domingo, 6 de septiembre de 2015

HISTORIA DE LAS APLICACCIONES VIRTUALES

Virtualización de plataforma vs. virtualización de aplicación

Las máquinas virtuales (VMs), en su primera encarnación, fueron creadas por IBM hace 60 años como una forma para compartir sistemas principales grandes y costosos. Y aunque el concepto todavía se aplica en los sistemas IBM actuales, el concepto popular de una VM se ha ampliado y se ha aplicado a numerosas áreas que están por fuera de la virtualización.

El área de la virtualización que IBM popularizó en los años 1960 se conoce como virtualización de plataforma (o sistema) . En esta forma de virtualización, la plataforma de hardware subyacente es virtualizada para ser compartida con cierto número de sistemas operativos y usuarios diferentes.

Otra aplicación de la VM es ofrecer la propiedad de independencia de máquina. Esta forma, llamada virtualización de aplicación (o proceso) , crea un entorno abstracto (para una aplicación), haciéndolo independiente del entorno físico.

Origen de la máquina virtual

El primer sistema operativo en soportar virtualización completa para VMs fue el Conversational Monitor System (CMS). El CMS soportaba tanto virtualización como para-virtualización. A comienzos de los años 1970, IBM introdujo la familia VM de sistemas, que ejecutaba múltiples sistemas operativos de usuario individual, sobre su VM Control Program—un hipervisor temprano tipo-1.

Uno de los primeros usos de la virtualización de aplicación ocurrió en los años 1960, para el Basic Combined Programming Language (BCPL). El BCPL era un lenguaje imperativo desarrollado por Martin Richards en la Universidad de Cambridge y fue un precursor del lenguaje B que luego evolucionó hasta el lenguaje C que usamos hoy.

Aunque el BCPL tiene un lenguaje de alto nivel (similar a C), el código intermedio que generaba el compilador se llamó O-code (código objeto). El O-code podía ser interpretado en una máquina física (como una VM) o compilado a partir de O-code para el lenguaje de máquina nativa del host. Esta funcionalidad proporcionó numerosas ventajas en el contexto de independencia de máquina. Primero, al abstraer el O-code de la máquina física, este podía ser fácilmente interpretado por una variedad de hosts. Y segundo, el O-code podía ser compilado para la máquina nativa, lo cual permitía el desarrollo de un compilador y múltiples compiladores que traducen el O-code a instrucciones de máquina nativa (una tarea más simple). Esta independencia de máquina hizo que el lenguaje fuera portátil entre máquinas y por lo tanto popular debido a su disponibilidad.

A comienzos de los años 1970, la Universidad de California en San Diego, implementó el enfoque de VM para la ejecución de Pascal compilado. Llamaron a la representación intermedia p-code, el cual buscó la independencia del hardware subyacente para simplificar el desarrollo del compilador Pascal (en lugar de depender de una arquitectura abstracta de pseudo-máquina). El lenguaje Forth también aplicó VMs, concretamente, a arquitecturas de dirección-cero o basadas en apilamientos.

En 1972, Xerox PARC introdujo el lenguaje Smalltalkque dependía de una VM para ejecutarse. Smalltalk fue uno de los primeros lenguajes construidos alrededor del concepto de objetos. Tanto Smalltalk como p-code influenciaron fuertemente uno de los lenguajes basa dos en VM más prominentes que existe actualmente: el lenguaje Java. Java apareció por primera vez en 1995, desarrollado por Sun Microsystems, y desarrolló la idea de una programación independiente de la plataforma, mediante la Java Virtual Machine. Desde entonces, la tecnología Java se ha convertido en un bloque de construcción de las aplicaciones Web. Desde los scripts del lado del servidor hasta los applets del lado del cliente, la tecnología Java incrementó el conocimiento sobre las tecnologías de VM e introdujo tecnologías más nuevas que conectaron la interpretación y la ejecución nativa, usando técnicas de compilación justo-a-tiempo (JIT).

http://www.ibm.com/developerworks/ssa/linux/library/l-virtual-machine-architectures/

0 comentarios:

Publicar un comentario