Você está na página 1de 6

Mquina virtual

En informtica una mquina virtual es un software que simula a un ordenador y puede ejecutar
programas como si fuese un ordenador real. 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 (Windows
por ejemplo) sin necesidad de instalarlo directamente en nuestra computadora y sin miedo a
que se desconfigure el sistema operativo primario

Tipos de mquinas virtuales

Funcionamiento de la mquina virtual de Java, una de las mquinas virtuales de proceso ms populares.

Funcionamiento de VMWare, una de las mquinas virtuales de sistema ms populares.


Las mquinas virtuales se pueden clasificar en dos grandes categoras segn su funcionalidad
y su grado de equivalencia a una verdadera mquina.

Mquinas virtuales de sistema (en ingls System Virtual Machine)

Mquinas virtuales de proceso (en ingls Process Virtual Machine)


Mquinas virtuales de sistema
Emulacin
La emulacin se define como la imitacin de una plataforma de ordenador correcta o de un
programa en otra plataforma o programa. De esa manera, es posible la visualizacin de
documentos o ejecucin de programas en un ordenador que no estuviera proyectado para hacer
esa operacin. El emulador es un programa que crea para si mismo una capa extra entre una
plataforma de ordenador, definida por la plataforma del host y la plataforma donde va a ser
reproducida y definida por la plataforma objetivo; as como transcurre en una mquina fsica, la
mquina virtual (juez) emulada, es decir simula el hardware de la mquina fsica (host) por
completo y un sistema operativo inmutable de otro ordenador puede ser ejecutado. Los ejemplos
de emulacin son el Bosch y el QEMU, desarrollados por la comunidad del Linux, y el virtual PC
del Mac.
Virtualizacin nativa/servidor
Significa particionar un servidor fsico en diversos servidores virtuales o mquinas. Cada uno
interacta con independencia de los otros equipamientos. Aplicaciones, datos y usuarios como
si fuera un recurso aislado. La virtualizacin del servidor permite que la mquina virtual simule
el hardware necesario para que un sistema operativo no modificado puede ser ejecutado
aisladamente, compartiendo la misma CPU de la mquina fsica. Los ejemplos de virtualizacin
nativa/servidor son Vmware Workstation, IBM VM Y Parallels. (Miguel Daro Gonzlez Ros.
(2014). tecnologas de virtualizacin. Estados unidos: It campus academy).
Para-virtualizacin
Al contrario de la virtualizacin nativa, en la para-virtualizacin, el hardware de la mquina fsica
no es simulado en el sistema operativo de la mquina virtual. Se pasa el uso de una interface
de programacin incorporada que la aplicacin puede utilizar para tomar los requisitos del
sistema operativo modificado de la mquina virtual. Vmware ESX server y citrix xen utilizan esa
tecnologa. (Miguel Daro Gonzlez Ros. (2014). tecnologas de virtualizacin. estados unidos:
It campus academy).
Virtualizacin a nivel sistema operativo
La virtualizacin a nivel sistema operativo permite mucha seguridad para la ejecucin de
servidores virtuales y servidores fsicos, compartiendo el mismo sistema operativo, sin embargo
de forma aislada, sin que uno interfiera en la ejecucin en las aplicaciones del otro. La
virtualizacin a nivel de sistema operativo es la base de tecnologa de los sistemas de
virtualizacin Solaris containers, bsd jails, y Linux server. (Miguel Daro Gonzlez Ros. (2014).
tecnologas de virtualizacin. Estados unidos: It campus academy).
Virtualizacin de acceso
La virtualizacin de acceso incluye tecnologas de hardware y software que permiten a cualquier
equipamiento acceder a cualquier aplicacin aun sin tener mucho conocimiento sobre el otro.
La aplicacin visualiza el equipamiento con el cual est habituado a trabajar. El equipamiento
ve la aplicacin y ya sabe lo que debe mostrar. Las funciones como servicios de terminal
(Microsoft terminal service por ejemplo) y gestores de presentacin se encuadran en esa capa.
Virtualizacin de aplicacin
Comprende la tecnologa de software, permitiendo la ejecucin de aplicaciones en diferentes
sistemas operativos y distintas plataformas de hardware. Eso significa que las aplicaciones
pueden ser desarrolladas y escritas para adoptar el uso de frameworks. Pero las aplicaciones
que no usufructan esos frameworks no recibirn los beneficios de virtualizacin de la
aplicacin. Esa capa de virtualizacin permite.
Reinicializar la aplicacin en caso de fallo;
Iniciar una nueva instancia de la aplicacin que no alcanza los objetivos en el nivel de
servicio;
Responder a interrupciones planeadas y no planeadas;
Permitir el balanceo de carga de mltiples aplicaciones para alcanzar niveles altos de
escalabilidad.
Microsoft explica que la virtualizacin de aplicacin proporciona la capacidad de disponibilidad
de aplicaciones a ordenadores de usuarios finales sin la necesidad de instalar las aplicaciones
directamente en sus ordenadores. Eso es posible gracias a un proceso conocido como
secuenciamiento de aplicacin, que permite que cada aplicacin ejecute su propio entorno
virtual de forma independiente del ordenador cliente. Las aplicaciones secuenciadas son
aisladas unas de las otras, eliminando conflictos entre aplicaciones, pero aun as ellos son
capaces de interactuar con el ordenador cliente. (Miguel Daro Gonzlez Ros. (2014).
tecnologas de virtualizacin. Estados unidos: It campus academy).
Virtualizacin de procesamiento
La capa de procesamiento agrega tecnologas de hardware y software que ocultan
configuraciones fsicas de hardware de servicios de sistemas, sistemas operativos y
aplicaciones. La tecnologa comprender la habilidad de presentar un sistema fsico a diversos
recursos o viceversa. La virtualizacin de procesamiento es utilizada, principalmente, en la
consolidacin de mltiples entornos en un nico sistema con alta disponibilidad. (Miguel Daro
Gonzlez Ros. (2014). tecnologas de virtualizacin. Estados unidos: It campus academy).
Virtualizacin de almacenamiento
Comprenden las tecnologas de software y hardware que ocultan quien son los sistemas de
almacenamiento (storage) y que tipo de equipamiento soporta aplicaciones y datos. La
tecnologa ofrece diversos beneficios. Entre esos, permite que diferentes sistemas fsicos
compartan un mismo recurso de almacenamiento, de forma transparente, de unos hacia los
otros, copias de backup de aplicaciones transaccionales en entorno en produccin y,
principalmente, la reduccin de costes con compraventas de nuevos equipamientos de storage
para almacenamiento y replicacin de datos en el datacenters. (Miguel Daro Gonzlez Ros.
(2014). tecnologas de virtualizacin. Estados unidos: It campus academy).
Virtualizacin de red.
Agrega tecnologas de software y hardware que presenta una visin de la red que se difiere de
la visin fsica. De esa forma, un ordenador puede ver solamente los sistemas que tiene
permiso de acceso. Otra forma de utilizacin es consolidar mltiples conexiones de redes en
una nica. (Miguel Daro Gonzlez Ros. (2014). tecnologas de virtualizacin. Estados unidos:
It campus academy).
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.

Inconvenientes de las mquinas virtuales


Uno de los inconvenientes de las mquinas virtuales es que agregan gran complejidad al
sistema en tiempo de ejecucin. Esto tiene como efecto la ralentizacin del sistema, es decir, el
programa no alcanzar la misma velocidad de ejecucin que si se instalase directamente en el
sistema operativo "anfitrin" (host) o directamente sobre la plataforma de hardware. Sin
embargo, a menudo la flexibilidad que ofrecen compensa esta prdida de eficiencia.

Tcnicas

Monitor de tipo I.

Monitor de tipo II.

Emulacin del hardware subyacente (ejecucin nativa)


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.
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.
Actualmente tanto Intel como AMD han introducido prestaciones a sus procesadores x86 para
permitir la virtualizacin de hardware.
Emulacin de un sistema no nativo
Las mquinas virtuales tambin pueden actuar como emuladores de hardware, permitiendo que
aplicaciones y sistemas operativos concebidos para otras arquitecturas de procesador se
puedan ejecutar sobre un hardware que en teora no soportan.
Algunas mquinas virtuales emulan hardware que slo existe como una especificacin. Por
ejemplo:
La mquina virtual P-Code que permita a los programadores de Pascal crear aplicaciones
que se ejecutasen sobre cualquier computadora con esta mquina virtual correctamente
instalada.
La mquina virtual de Java.
La mquina virtual del entorno .NET.
Open Firmware
Esta tcnica permite que cualquier computadora pueda ejecutar software escrito para la
mquina virtual. Slo la mquina virtual en s misma debe ser portada a cada una de las
plataformas de hardware.
Virtualizacin a nivel de sistema operativo
Esta tcnica consiste en dividir una computadora en varios compartimentos independientes de
manera que en cada compartimento podamos instalar un servidor. A estos compartimentos se
los llama "entornos virtuales". Desde el punto de vista del usuario, el sistema en su conjunto
acta como si realmente existiesen varios servidores ejecutndose en varias mquinas
distintas. Dos ejemplos son las zonas de Solaris (Solaris Zones) y la tcnica de Micro Partioning
de AIX.

Lista de hardware con soporte para virtualizacin

AMD-V (anteriormente llamado Pacifica)


ARM TrustZone
Boston Circuits gCore (grid-on-chip) con ncleos 16 ARC 750D y mdulo de virtualizacin
de hardware Time-machine.
Freescale PowerPC MPC8572 y MPC8641D
IBM System/370, System/390 y mainframes ZSeries
Intel VT (anteriormente llamado Vanderpool)
SPARC de Sun Microsystems

Lista de mquinas virtuales


Mquinas virtuales de proceso
Mquinas virtuales de sistema
Common Language Runtime - C#, Visual Basic
.NET, J#, Managed C++ VThere (de Sentillion, Inc. [1])
EiffelStudiopara el lenguaje de programacin
ATL (A MTL Virtual Machine)
Eiffel Bochs emulador de PC x86 y AMD64, porttil
Lenguaje de programacin Erlang
y open source
Forth virtual machine - Forth CoLinux Open Source Linux inside Windows
Glulx - Glulx, Z-code Denali, uses paravirtualization of x86 for
Harbour - Harbour virtual machine running para-virtualized PC operating
Hec - Hasm Assembler systems.
Inferno - Limbo FAUmachine
Java virtual machine - Java, Nice, NetREXX Hercules emulator, free System/370,
Low Level Virtual Machine (LLVM) - ESA/390, z/Mainframe
actualmente C, C++, Stacker Integrity Workstation Green Hills
Lua Software[2]
Macromedia Flash Player - SWF LilyVM is a lightweight virtual machineAn
MMIX - MMIXAL introduction
Neko virtual machine actualmente Neko y haXe Microsoft Virtual PC y Microsoft Virtual
O-code machine - BCPL Server
P-code machine - Pascal OKL4
Parrot - Perl 6 Parallels Workstation, virtualizacin de x86
Perl virtual machine - Perl para ejecutar sistemas operativos
Portable.NET - C#, Visual Basic .NET, J#, Managed Parallels Desktop for Mac, virtualizacin de
C++ x86 para ejecutar mquinas virtuales en Mac
YARV - Ruby OS X
Rubinius - Ruby QEMU, muy popular en entornos Linux
ScummVM - Scumm Qubes OS
SECD machine - ISWIM, Lispkit Lisp SheepShaver.
Sed the stream-editor can also be seen as a VM Simics
with 2 storage spaces. SVISTA
Smalltalk virtual machine - Smalltalk Trango Virtual Processors
SQLite virtual machine - SQLite opcodes TwoOStwo
Squeak virtual machine - Squeak User-mode Linux
SWEET16 VirtualBox
TrueType virtual machine - TrueType Virtual Iron (Virtual Iron 3.1)
Valgrind - chequeo de accesos a memoria y "leaks" Virtual Operating System de Star Virtual
en x86/x86-64 code under Linux Machines
VX32 virtual machine - application-level VM de IBM
virtualization for native code VMware (ESX Server, Fusion, Virtual Server,
Virtual Processor (VP) from Tao Group (UK). Workstation, Player y ACE)
Waba - similar a Java, para dispositivos pequeos Xen
Warren Abstract Machine - Prolog, CSC GraphTalk KVM
Z-machine - Z-Code IBM POWER SYSTEMS
Zend Engine - PHP Torrecilla Virtual Machine (TVM)
Mquinas virtuales a nivel de sistema operativo

OpenVZ
Virtuozzo
FreeVPS
Linux-VServer
FreeBSD Jails
Solaris Containers
AIX Workload Partitions
Docker

Você também pode gostar