Una máquina virtual es un software que emula un ordenador real, incluyendo disco duro, memoria y tarjeta gráfica, y puede ejecutar programas como si fuese una computadora física. Existen máquinas virtuales de hardware que permiten a una computadora física ejecutar múltiples sistemas operativos virtuales simultáneamente, y máquinas virtuales de software que se ejecutan como procesos dentro de un sistema operativo anfitrión.
2. ¿Qué es Máquina Virtual?
O Una máquina virtual es un software (programa) que emula a un ordenador
real y por lo tanto dispone de disco duro, memoria RAM, tarjeta gráfica, etc.
y puede ejecutar programas como lo hace una computadora. En informática
una máquina virtual es un software que simula a una computadora y puede
ejecutar programas como si fuese una computadora real.
Las máquinas virtuales pueden instalarse sobre cualquier ordenador.
3. Máquina Virtual de Hardware
Las máquinas virtuales de sistema, también llamadas máquinas
virtuales de hardware, permiten a la máquina física subyacente
multiplicarse entre varias máquinas virtuales, cada una ejecutando
su propio sistema operativo. A la capa de software que permite la
virtualización se la llama monitor de máquina virtual o hypervisor.
Un monitor de máquina virtual puede ejecutarse o bien directamente
sobre el hardware o bien sobre un sistema operativo ("host operation
system").
4. Máquina Virtual de Hardware
O Emulación del hardware subyacente (ejecución nativa)
Esta técnica se suele llamar virtualización completa (full virtualización) del hardware, y
se puede implementar usando un hypervisor de Tipo 1 o de Tipo 2:
O El tipo 1 se ejecuta directamente sobre el hardware.
O El tipo 2 se ejecuta sobre otro sistema operativo.
Cada máquina virtual puede ejecutar cualquier sistema operativo soportado por el
hardware subyacente. Así los usuarios pueden ejecutar dos o más sistemas operativos
distintos simultáneamente en computadoras "privadas" virtuales.
5. Máquina Virtual Software
O Máquinas virtuales de proceso
Una máquina virtual de proceso, a veces llamada "máquina virtual de
aplicación o software", se ejecuta como un proceso normal dentro de un sistema
operativo y soporta un solo proceso. La máquina se inicia automáticamente
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
ejecución 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.
6. Programas
O Máquinas virtuales de proceso
O Common Language Runtime - C#, Visual Basic .NET, J#, Managed C++
O EiffelStudiopara el lenguaje de programación Eiffel
O Lenguaje de programación Erlang
O Forth virtual machine - Forth
O Glulx - Glulx, Z-code
O Harbour - Harbour virtual machine
O Hec - Hasm Assembler
O Parrot - Perl 6
O Perl virtual machine - Perl
O Portable.NET - C#, Visual Basic .NET, J#, Managed C++
7. O Máquinas virtuales de sistema
O VThere (de Sentillion, Inc. [1])
O ATL (A MTL Virtual Machine)
O Bochs emulador de PC x86 y AMD64, portátil y open source
O CoLinux Open Source Linux inside Windows
O Denali, uses paravirtualization of x86 for running para-virtualized PC
operating systems.
O FAUmachine
O Hercules emulator, free System/370, ESA/390, z/Mainframe
O Integrity Workstation Green Hills Software[2]
O LilyVM is a lightweight virtual machineAn introduction
O Microsoft Virtual PC y Microsoft Virtual Server
8. Ventajas
O Las máquinas virtuales también 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 teoría no soportan.
O Cada máquina virtual puede ejecutar cualquier sistema operativo soportado
por el hardware subyacente. Así los usuarios pueden ejecutar dos o más
sistemas operativos distintos simultáneamente en computadoras "privadas"
virtuales.
9. Desventajas
O Uno de los inconvenientes de las máquinas virtuales es que agregan gran
complejidad al sistema en tiempo de ejecución. Esto tiene como efecto la
ralentización del sistema, es decir, el programa no alcanzará la misma
velocidad de ejecución que si se instalase directamente en el sistema
operativo "anfitrión" (host) o directamente sobre la plataforma de hardware.
Sin embargo, a menudo la flexibilidad que ofrecen compensa esta pérdida de
eficiencia.