Você está na página 1de 16

By Frank049 to (Avaliable On SlideShare) ndice:

Mquina virtual.3 Origen de Virtualizacin....4 Mquinas virtuales de proceso....5 Ejemplos de Mquinas virtuales de proceso5 Mquinas virtuales de hardware..6 Paravirtualizacin....9 Listado de mquinas virtuales...10 Bibliografa..17

Mquina virtual
Una mquina virtual es un software que

simula a una computadora y puede ejecutar programas como si fuese una computadora real. Esta tecnologa permite que una sola computadora contenga varias mquinas virtuales, cada una de las cuales puede llegar a ejecutar un sistema operativo distinto. La ventaja de este mtodo es que una falla en una mquina virtual no ocasiona que las dems fallen de manera automtica.

En un sistema virtualizado, se pueden ejecutar distintos servidores en diferentes mquinas virtuales, con lo cual se mantiene el modelo parcial de fallas que tiene una computadora, pero a un costo mucho menor y con una administracin ms sencilla. Este software en un principio fue definido como "un duplicado eficiente y aislado de una mquina fsica". La acepcin del trmino actualmente incluye a mquinas virtuales que no tienen ninguna equivalencia directa con ningn hardware real. Una caracterstica esencial de las mquinas virtuales es que los procesos que ejecutan estn limitados por los recursos y abstracciones proporcionados por ellas. Estos procesos no pueden escaparse de esta "computadora virtual". Uno de los usos domsticos ms extendidos de las mquinas virtuales es ejecutar sistemas operativos para "probarlos". De esta forma podemos ejecutar un sistema operativo que queramos probar (GNU/Linux, por ejemplo) desde nuestro sistema operativo habitual (Mac OS X por ejemplo) sin necesidad de instalarlo directamente en nuestra computadora y sin miedo a que se desconfigure el sistema operativo primario. 2

Origen de la virtualizacin
VM/370

El

origen

de

la

virtualizacin viene dado por el sistema, VM/370. que en Este un

principio se llam CP/CMS y posteriormente cambi su nombre a VM/370, estaba basado en una astuta observacin: un sistema de tiempo compartido proporciona (1) multiprogramacin y (2) una mquina extendida con una interfaz ms conveniente que el hardware por s solo. La esencia de VM/370 es separar por completo estas dos funciones.

El corazn del sistema, que se conoce como monitor de mquina virtual, se ejecuta en el hardware solamente y realiza la multiprogramacin,

proporcionando no una, sino varias mquinas virtuales a la siguiente capa hacia arriba, como se muestra en la figura 1-28. Sin embargo, a diferencia de otros sistemas operativos, estas mquinas virtuales no son mquinas extendidas, con archivos y otras caractersticas adecuadas. En vez de ello, son copias exactas del hardware, incluyendo el modo kernel/ usuario, la E/S, las interrupciones y todo lo dems que tiene la mquina real.

En el sistema VM/370 original, algunas ejecutaban OS/360 o uno de los otros sistemas operativos extensos de procesamiento por lotes o de

procesamiento de transacciones, mientras que otros ejecutaban un sistema interactivo de un solo usuario llamado CMS (Conversational Monitor System;

Sistema monitor conversacional) para los usuarios interactivos de tiempo compartido. Este ltimo fue popular entre los programadores.

Mquinas virtuales de proceso


Una mquina virtual de proceso, a veces llamada "mquina virtual de aplicacin", se ejecuta como un proceso normal dentro de un sistema operativo y soporta un solo proceso. La mquina se inicia automticamente cuando se lanza el proceso que se desea ejecutar y se detiene para cuando ste finaliza. Su objetivo es el de proporcionar un entorno de

ejecucin independiente de la plataforma de hardware y del sistema operativo, que oculte los detalles de la plataforma subyacente y permita que un programa se ejecute siempre de la misma forma sobre cualquier plataforma. El ejemplo ms conocido actualmente de este tipo de mquina virtual es la mquina virtual de Java. Otra mquina virtual muy conocida es la del entorno .Net de Microsoft que se llama "Common Language Runtime".

Algunas mquinas virtuales de proceso


Common Language Runtime - C#, Visual Basic .NET, J#, Managed C++ Lenguaje de programacin Erlang Forth virtual machine - Forth Harbour - Harbour virtual machine Hec - Hasm Assembler Java virtual machine - Java, Nice, NetREXX Low Level Virtual Machine (LLVM) - actualmenteC, C++, Stacker Macromedia Flash Player - SWF MMIX - MMIXAL Neko virtual machine actualmente Neko y haXe O-code machine - BCPL Perl virtual machine - Perl Portable.NET - C#, Visual Basic .NET, J#,Managed C++ YARV - Ruby Rubinius - Ruby ScummVM - Scumm SECD machine - ISWIM, Lispkit Lisp 4

Sed the stream-editor can also be seen as a VM with 2 storage spaces. Smalltalk virtual machine - Smalltalk SQLite virtual machine - SQLite opcodes Squeak virtual machine - Squeak TrueType virtual machine - TrueType Valgrind - chequeo de accesos a memoria y "leaks" en x86/x86-64 code under Linux VX32 virtual machine - application-level virtualization for native code Virtual Processor (VP) from Tao Group (UK). Waba - similar a Java, para dispositivos pequeos Warren Abstract Machine - Prolog, CSCGraphTalk Z-machine - Z-Code Zend Engine - PHP

Mquinas virtuales de Hardware

Esta tcnica se suele llamar virtualizacin completa (full virtualization) del hardware, y se puede implementar usando un hypervisor de Tipo 1 o de Tipo 2:

el tipo 1 se ejecuta directamente sobre el hardware. el tipo 2 se ejecuta sobre otro sistema operativo.

Hipervisores de tipo 1

En la figura podemos ver un hipervisor de tipo 1 que soporta una mquina virtual. Al igual que todos los hipervisores de tipo 1, se ejecuta en modo de kernel. La mquina virtual se ejecuta como un proceso de usuario en modo de usuario y, como tal, no puede ejecutar instrucciones sensibles. La mquina virtual ejecuta un sistema operativo invitado que piensa que se encuentra en modo de kernel, aunque desde luego se encuentra en modo de usuario. A ste le llamaremos modo de kernel virtual. La mquina virtual tambin ejecuta 5

procesos de usuario, los cuales creen que se encuentran en modo de usuario (y en realidad as es).

Qu ocurre cuando el sistema operativo (el cual cree que se encuentra en modo de kernel) ejecuta una instruccin sensible (una que slo se permite en modo de kernel)? En las CPUs sin VT, la instruccin falla y por lo general tambin lo hace el sistema operativo. Esto hace que la verdadera virtualizacin sea imposible. Sin duda podramos argumentar que todas las instrucciones sensibles siempre se deben atrapar al ejecutarse en modo de usuario, pero esa no es la forma en que trabajaba el 386 y sus sucesores que no utilizaban la tecnologa VT. En las CPUs con VT, cuando el sistema operativo invitado ejecuta una instruccin sensible se produce una interrupcin en el kernel, como se muestra en la figura.

As, el hipervisor puede inspeccionar la instruccin para ver si el sistema operativo anfitrin la emiti en la mquina virtual, o si fue un programa de usuario en la mquina virtual. En el primer caso, hace las preparaciones para que se ejecute la instruccin; en el segundo caso, emula lo que hara el hardware real al confrontarlo con una instruccin sensible que se ejecuta en modo de usuario. Si la mquina virtual no tiene VT, por lo general la instruccin se ignora; si tiene VT, se atrapa en el sistema operativo invitado que se ejecuta en la mquina virtual. 6

Hipervisores de tipo 2

El proceso de crear un sistema de mquina virtual es bastante simple cuando hay VT disponible, pero qu hacan las personas antes de eso? Sin duda, no se podra ejecutar un sistema operativo completo en una mquina virtual debido a que slo se ignoraran (algunas de) las instrucciones sensibles, y el sistema fallara. En vez de ello, lo que ocurri fue la invencin de lo que ahora se conoce como hipervisores de tipo 2, como se muestra en la figura 1-29(b). El primero de estos hipervisores fue VMware (Adams y Agesen, 2006; y Waldspurger, 2002), el fruto del proyecto de investigacin DISCO en la Universidad de Stanford (Bugnion y colaboradores, 1997). VMware se ejecuta como un programa de usuario ordinario encima de un sistema operativo anfitrin como Windows o Linux. Cuando se inicia por primera vez, acta como una computadora que se acaba de iniciar y espera encontrar en la unidad de CD-ROM un disco que contenga un sistema operativo.

Despus instala el sistema operativo en su disco virtual (que en realidad slo es un archivo de Windows o Linux), para lo cual ejecuta el programa de instalacin que se encuentra en el CD-ROM. Una vez que se instala el sistema operativo invitado en el disco virtual, se puede iniciar al ejecutarlo.

Cada mquina virtual puede ejecutar cualquier sistema operativo soportado por el hardware subyacente. As los usuarios pueden ejecutar dos o ms sistemas operativos distintos simultneamente en computadoras "privadas" virtuales. El sistema pionero que utiliz este concepto fue la CP-40, la primera versin (1967) de la CP/CMS de IBM (1967-1972) y el precursor de la familia VM de IBM (de 1972 en adelante). Con la arquitectura VM, la mayor parte de usuarios controlan un sistema operativo monousuario relativamente simple llamado CMS que se ejecuta en la mquina virtual VM. Intel y AMD introdujeron la virtualizacin en sus CPUs, empezando en el 2005. En las CPUs Intel Core 2 se conoce como VT (Tecnologa de virtualizacin); en las CPUs AMD Pacific se conoce como SVM (Mquina virtual segura). A continuacin utilizaremos el trmino VT en un sentido genrico. 7

Ambas tecnologas se inspiraron en el trabajo de la IBM VM/370, pero tienen unas cuantas diferencias. La idea bsica es crear contenedores en los que se puedan ejecutar mquinas virtuales. Cuando se inicia un sistema operativo invitado en un contenedor, se sigue ejecutando ah hasta que produce una excepcin y se atrapa en el hipervisor, por ejemplo, mediante la ejecucin de una instruccin de E/S. El conjunto de operaciones que se atrapan se controla mediante un mapa de bits de hardware establecido por el hipervisor. Con estas extensiones, es posible utilizar el clsico mtodo de atrapar y emular de una mquina virtual.

Otro tipo de virtualizacin: Paravirtualizacin


Los hipervisores de tipo 1 y tipo 2 funcionan con sistemas operativos invitados que no estn modificados, pero tienen que hacer un gran esfuerzo por obtener un rendimiento razonable. Un mtodo distinto que se est haciendo popular es modificar el cdigo fuente del sistema operativo invitado, de manera que en vez de ejecutar instrucciones sensibles, realiza llamadas al hipervisor. En efecto, el sistema operativo invitado acta como un programa de usuario que realiza llamadas al sistema operativo (el hipervisor). Cuando se utiliza este mtodo, el hipervisor debe definir una interfaz que consiste en un conjunto de llamadas a procedimientos que los sistemas operativos invitados puedan utilizar. Este conjunto de llamadas forma en efecto una API (Interfaz de programacin de aplicaciones), aun cuando es una interfaz para que la utilicen los sistemas operativos invitados, y no los programas de aplicacin.

Si vamos un paso ms all, al eliminar todas las instrucciones sensibles del sistema operativo para que slo haga llamadas al hipervisor para obtener servicios del sistema como la E/S, hemos convertido al hipervisor en un microkernel. Se dice que un sistema operativo invitado para el que se han eliminado de manera intencional (algunas) instrucciones sensibles est paravirtualizado (Barham y colaboradores, 2003; Whitaker y colaboradores, 2002). La emulacin de instrucciones peculiares del hardware es una tarea desagradable y que consume mucho tiempo. 8

Requiere una llamada al hipervisor, para despus emular la semntica exacta de una instruccin complicada. Es mucho mejor tan slo hacer que el sistema operativo invitado llame al hipervisor (o microkernel) para realizar las operaciones de E/S, y as en lo sucesivo. La principal razn por la que los primeros hipervisores slo emulaban la mquina completa era por la falta de disponibilidad de cdigo fuente para el sistema operativo invitado (por ejemplo, Windows), o debido a la gran cantidad de variantes (como Linux).

Lista de las Emuladores de Mquinas Virtuales existentes

Lista de mquinas virtuales de sistema Bochs


Fabricante: Kevin Lawton Caractersticas: Es capaz de ejecutarse en mltiples plataformas y diferentes arquitecturas. Se distribuye bajo la licencia GPL. Bochs posee la capacidad de emular una CPU con arquitecturaIntel x86, dispositivos comunes de E/S, y un BIOS. Actualmente, Bochs puede ser compilado 4o para emular como un 386, 486Pentium/Pentium arquitectura x86-64, lasMMX, SSEx y 3DNow!. 9 II/Pentium III/ Pentium una CPU con

incluyendo

instrucciones

adicionales

CoLinux Open Source Linux inside Windows Fabricante: www.colinux.org Caractersticas: coLinux utiliza el concepto de una mquina virtual cooperativa (CVM). En contraste a mquinas virtuales tradicionales, la CVMcomparte los recursos que ya existen en el sistema operativo principal. En las mquinas virtuales, los recursos son virtualizados para cada sistema operativo husped. La CVM da a ambos sistemas operativos el poder para usar los recursos de forma paralela. La mquina virtual tradicional pone a cada sistema operativo husped en una "caja de arena".

Denali
Fabricante: Department of Computer Science and Engineering The University of Washington Caractersticas: Uses paravirtualization of x86 for running para-virtualized PC operating systems.

Hercules emulator
Free System/370, ESA/390, z/Mainframe Fabricante: Roger Bowler; Jay Maynard, Jan Jaeger, David "Fish" Trout, Greg Smith, Bernard van der Helm, Ivan Warren. Caractersticas: Hrcules se ejecuta en mltiples matrices sistemas distribuye bajo operativos la fuente de incluyendo Linux , de OS X, y se software libre de Windows , FreeBSD , Solaris y Mac

licencia CVP . Es anlogo a Bochs y QEMU , ya que emula la CPU las instrucciones y seleccione perifrica slo los dispositivos. Hrcules era sobre todo el primer emulador de mainframe para incorporar 64-bit z / Architecture apoyo, superando a las ofertas comerciales. 10

Integrity Workstation
Fabricante: Hirche System: Green Hills Software Caracteristicas: El HP Integrity Virtual Machines (Integrity VM) es una particin suave slido y la tecnologa de virtualizacin que proporciona aislamiento del sistema operativo, con granularidad de asignacin de sub-CPU y comparti I / O. Integrity VM permite crear una mquina virtual - una abstraccin de software que presenta todas las interfaces proporcionadas por el hardware de un sistema informtico.

Microsoft Virtual PC
Fabricante: Desarrollado por Connectix y comprado por Microsoft Caractersticas: Virtual PC, en el caso de la versin para Windows, no emula el procesador sino que deja que el mismo ejecute las instrucciones en el entorno emulado. Por el contrario, en la versin para MacOS emula un procesador Intel Pentium III (32 bit). El resto del hardware que emula son: una placa madre con un chipset Intel 440BX, una tarjeta de video SVGA VESA Estandar S3 Tro32/64 con 8 MB. de memoria VRAM, un chip de BIOS de American Megatrends, una tarjeta de sonido SoundBlaster 16 y una tarjeta de red DEC 21140.

Microsoft Virtual Server


Fabricante: Microsoft Caractersticas: Algunas mejoras en R2 SP1 incluyen soporte para el sistema operativo Linux , Virtual Disk Precompactor, SMP (pero no para el sistema operativo virtual), x64 soporte de sistema operativo anfitrin (pero no para el sistema operativo virtual), habilidad de montaje de discos duros virtuales en sistemas operativos anfitriones y sistemas operativos adicionales, incluyendo Windows Vista.

11

OKL4
Fabricante: Open Kernel Labs (OK Labs) Caractersticas: OKL4 es un cdigo abierto plataforma de software del sistema para los sistemas integrados que se pueden utilizar como un hipervisor , as como un simple sistema operativo en tiempo real con la proteccin de la memoria .El OKL4 "microvisor" se basa en la L4 microncleo . OKL4 es un tipo I de hipervisor integrado y funciona en plataformas individuales y multi-core basado en ARM , x86 y MIPS procesadores.

Parallels Workstation
Virtualizacin de x86 para ejecutar sistemas operativos Fabricante: Universidad de Tennessee, el Laboratorio Nacional Oak Ridge y la Universidad Emory Caractersticas: Est diseado para permitir que una red de computadoras heterognea comparta sus recursos de cmputo (como el procesador y la memoria RAM) con el fin de aprovechar esto para disminuir el tiempo de ejecucin de un programa al distribuir la carga de trabajo en varias computadoras. Parallels Desktop for Mac Virtualizacin de x86 para ejecutar mquinas virtuales en Mac OS X

QEMU
Fabricante: Fabrice Bellard

12

Caractersticas: QEMU tambin tiene capacidades de virtualizacin dentro de un sistema operativo, ya sea GNU/Linux, Windows, o cualquiera de los sistemas operativos admitidos, (de hecho es la forma ms comn de uso). Esta mquina virtual puede ejecutarse en cualquier tipo de Microprocesador o arquitectura (x86, x86-64, PowerPC, MIPS, SPARC, etc.). Est licenciado en parte con la LGPL y la GPL de GNU.

SheepShaver
Fabricante: Christian Bauer, Gwenole Beauchesne Caractersticas: Es capaz de ejecutar el Mac OS desde la versin 7.5.2 hasta la versin 9.0.4, pero requiere una "imagen" de la ROM. Para ejecutar las versiones 8.1 y posteriores es necesario que sea de tipo Old World ROM (de Mac viejo, habitualmente de los anteriores a los que llevaban USB para todo). Al igual que el restod emuladores de Christian el emulador funciona en multitarea y permite al usuario ejecutar aplicaciones clsicas de Mac junto con otras aplicaciones del Sistema Operativo Anfitrin (BeOS, Windows, MacOS X, Linux, etc.) VirtualBox

Fabricante: Innotek GmbH actualmente desarrollado por Oracle Corporation

13

Caractersticas: VirtualBox ofrece algunas funcionalidades interesantes, como la ejecucin de mquinas virtuales de forma remota, por medio del Remote Desktop Protocol (RDP), soporte iSCSI, aunque estas opciones no estn disponibles en la versin OSE. En cuanto a la emulacin de hardware, los discos duros de los sistemas invitados son almacenados en los sistemas anfitriones como archivos individuales en un contenedor llamado Virtual Disk Image, incompatible con los dems softwares de virtualizacin.

Virtual Iron (Virtual Iron 3.1)


Fabricante: Oracle Corporation Caractersticas: A virtualization manager offered access to control, automate, modify and monitor virtual resources. Virtualization services were automatically deployed on supported hardware without additional software. The platform was based on the open source Xen hypervisor. Virtual Iron, like other virtualization software, provided server consolidation, business continuity and capacity management.

VMware
(ESX Server, Fusion, Virtual Server, Workstation, Player y ACE) Fabricante: Empresa privada (NYSE:VMW) Caractersticas: Cuando se ejecuta el programa (simulador), proporciona un ambiente de ejecucin similar a todos los efectos a un computador fsico (excepto en el puro acceso fsico al hardware simulado), con CPU (puede ser ms de una), BIOS, tarjeta grfica, memoria RAM, tarjeta de red, sistema de sonido, conexin USB, disco duro (pueden ser ms de uno), etc.

14

Xen Fabricante: The Xen Project. XenSource, Inc. Caractersticas: Las mquinas virtuales Xen pueden ser migradas en caliente entre equipos fsicos sin pararlos. Durante este proceso, la memoria de la mquina virtual es copiada literalmente al destino sin detener su ejecucin. Una parada muy breve de alrededor de 60 a 300 ms es necesaria para realizar la sincronizacin final antes de que la mquina virtual comience a ejecutarse en su destino final. Una tecnologa similar es utilizada para suspender las mquinas virtuales a disco y cambiar a otra mquina virtual. El paravirt_ops (o pv-ops para abreviar) es una pieza de la infraestructura del kernel Linux que permite ejecutar el kernel de forma paravirtualizada sobre un hipervisor. Actualmente soporta Xen (entre otras opciones de virtualizacin).

KVM

Fabricante: Qumranet

Caractersticas: KVM permite ejecutar mquinas virtuales utilizando imgenes de disco que contienen sistemas operativos sin modificar. Cada mquina virtual tiene su propio hardware virtualizado: una tarjeta de red, discos duros, tarjeta grfica, etc. Una de las caractersticas que KVM posee es el overcommit que es el uso de memoria excediendo an la memoria fsica del host. 15

Virtuozzo: Fabricante: SWsoft Caractersticas: Virtuozzo crea mltiples entornos virtuales independientes (VEs, tambin conocidos como servidores privados virtuales, o VPSs) en un solo servidor fsico. Esto permite compartir hardware, tiempo y esfuerzo en la administracin de sistemas y a veces, hasta las licencias del software entre los mltiples entornos virtuales. Los VPS actan en la mayora de los casos como si fueran un servidor individual. Cada VPS tiene su propio superusuario (raz o administrador), sistema de usuarios/de grupos, direccin(es) IP, procesos, archivos, usos, bibliotecas de sistema y archivos de configuracin. Los VPS son totalmente accesibles va red. Debido a la creacin de diferentes servidores de red virtualizados, un propietario de VPS puede tener sus propias tablas de enrutamiento y reglas de seguridad en el firewall (IPtables).

Bibliografa:
http://www.virtualizacion.com/ http://www.lsi.uned.es/lp/MaqsVirt.pdf http://bevirtual.blogspot.com/ http://www.vmware.com/latam/virtualization/virtualization-basics/history.html http://lilyvm.sourceforge.net/ https://www.virtualbox.org/

16

Você também pode gostar