maquina virtual
Definición de máquina virtual (virtual machine)
Una máquina virtual es un ordenador de software perfectamente aislado que puede ejecutar su propio sistema operativo (sistema operativo virtual, guest o invitado) y aplicaciones como si fuera un ordenador físico.
Un ordenador virtual es un software que simula el hardware de un ordenador físico y que ejecuta programas como si fuera una computadora real. Es totalmente compatible con los sistemas operativos, las aplicaciones y los controladores de dispositivos estándar, de la misma forma que una máquina física.
Cada máquina virtual completa es totalmente independiente. En un único ordenador físico, se pueden ejecutar al mismo tiempo varios sistemas operativos (sistemas operativos virtuales) y aplicaciones, al colocar varias máquinas virtuales. La capa de software, conocida como hipervisor, desvincula las máquinas virtuales de la máquina física y asigna dinámicamente los recursos a cada ordenador virtual según las necesidades.
El sistema operativo y las aplicaciones no pueden distinguir una equipo virtual de una equipo físico porque los ordenadores virtuales se comportan como un ordenadores físicos reales conteniendo su propia CPU virtual, RAM, disco duro y tarjeta de red. Los procesos que ejecuta un ordenador virtual están limitados por esos recursos.
Para qué sirve una máquina virtual
Las máquinas virtuales sirven para recrear entornos de producción en una PC y para crear laboratorios virtuales.
Se usa una máquina virtual cuando necesitamos probar una aplicación o actualización de la aplicación que podría causar inestabilidad en el sistema.
Durante el aprendizaje de nuevos sistemas operativos se usan las máquinas virtuales recreando una red de servidores.
Tipos de virtualización
La virtualización se puede hacer desde un sistema operativo Windows, ya sea XP, Vista u otra versión que sea compatible con el programa que utilicemos, en el que virtualizamos otro sistema operativo como Linux o viceversa, que tengamos instalado Linux y queramos virtualizar una versión de Windows.
Virtualización de hardware
Virtualización asistida por Hardware son extensiones introducidas en la arquitectura de procesador x86 para facilitar las tareas de virtualización al software ejecutándose sobre el sistema. Si cuatro son los niveles de privilegio o anillos de ejecución en esta arquitectura, desde el cero o de mayor privilegio, que se destina a las operaciones del kernel de SO, al tres, con privilegios menores que es el utilizado por los procesos de usuario, en esta nueva arquitectura se introduce un anillo interior o ring -1 que será el que un hypervisor o Virtual Machine Monitor usará para aislar todas las capas superiores de software de las operaciones de virtualización.
La virtualización de almacenamiento
Se refiere al proceso de abstraer el almacenamiento lógico del almacenamiento físico, y es comúnmente usado en SANs ("Storage Area Network" Red de área de almacenamiento).Los recursos de almacenamiento físicos son agregados al "storage pool" (almacén de almacenamiento), del cual es creado el almacenamiento lógico.
Tipos de máquinas virtuales
Máquinas virtuales de hardware
Las máquinas virtuales de hardware también llamadas máquinas virtuales de sistema, son aplicaciones que tratan de emular directamente el hardware. Las llamadas al hardware del sistema operativo instalado serán capturadas y convertidas en llamadas al sistema del hardware emulado. En general, la emulación del hardware recibe el nombre de virtualización. Al emularse directamente el hardware, el usuario tiene la impresión de que la máquina sobre la que está trabajando es totalmente independiente. Estas maquinas virtuales, 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 operating system").
Máquinas virtuales de software
Las máquinas virtuales de software también llamadas como máquinas virtuales de proceso, este tipo de máquinas virtuales se sitúan por encima del sistema operativo y tratan de aislar a las aplicaciones del entorno sobre el que se ejecutan. 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. La máquina virtual de Java o la máquina virtual del entorno .NET son dos claros ejemplos de máquinas virtuales software.
La máquina virtual de sistema
permite que la máquina física se represente entre varias máquinas virtuales, por medio de un software denominado hypervisor o monitor de máquina virtual (VMM). El hypervisor puede ejecutarse sobre el hardware o sobre un sistema operativo. Cada equipo virtual ejecuta su propio sistema operativo.
ejemplos de maquinas virtuales de sistema

Máquinas virtuales de proceso
Las máquina virtual de proceso, es un proceso normal dentro de un sistema operativo que soporta un solo proceso. La máquina se inicia automáticamente cuando se lanza el proceso que se desea ejecutar y se detiene cuando éste finaliza.
ejemplos de maquinas virtuales de proceso

Ventajas y desventajas de las máquinas virtuales
Las máquinas virtuales ofrecen muchas ventajas teniendo en cuenta sus características pero también poseen pocas desventajas.
Los ordenadores virtuales solo contienen software. Las máquinas virtuales no contienen ninguna clase de componente de hardware físico por lo que no tenemos que preocuparnos por el daño físico del hardware.
Las ordenadores virtuales tienen el inconveniente que agregan gran complejidad al sistema en tiempo de ejecución provocando su ralentización.
Un programa se ejecutará a mayor velocidad si se instala sobre el sistema operativo de la máquina física que si se instala sobre el sistema operativo del ordenador virtual.
Cuanta más memoria ocupa una máquina virtual, más recursos consume y por lo tanto el rendimiento del ordenador físico disminuye drásticamente.
Características de la máquina virtual
Las características de una máquina virtual que sin lugar a duda las hacen tan ventajosas y tan populares son el particionamiento, el aislamiento, la encapsulación y la independencia del software.
Particionamiento
El particionamiento es una de las características de las máquinas virtuales que permite que se ejecuten varios sistemas operativos en una misma máquina física y se distribuyan los recursos del sistema entre las máquinas virtuales.
Aislamiento
El aislamiento es aquella característica de las máquinas virtuales que ofrece seguridad a nivel de hardware y el aislamiento por fallas y protege el rendimiento mediante controles de recursos avanzados.
Encapsulación
La encapsulación es una característica de las máquinas virtuales que garantiza que se guarde el estado completo de una ordenador virtual en archivos y que se muevan y copien máquinas virtuales con la misma facilidad que si fueran archivos.
Independencia del hardware
La independencia del hardware es característica de máquinas virtuales que proporciona que se migre cualquier máquina virtual a cualquier servidor físico.
Uso de de máquinas virtuales en Linux
Uso de de máquinas virtuales en Linux para ejecutar programas de Windows
Primero tenemos que definir lo que es una máquina virtual: una máquina virtual es otro sistema operativo que se ejecuta como programa dentro de otro sistema operativo. De esta manera, podemos instalar Windows como si fuera un programa más de Linux y a partir de ahí, instalar programas de Windows como si de otra computadora se tratara.
Teóricamente podemos administrar una máquina virtual de Linux en Windows, lo cual no es muy recomendable, pues el sistema operativo Windows es bastante inestable y lleno de virus y defectos.
Para instalar una máquina virtual en Linux, solamente necesitas un programa gratuito conocido como "VirtualBox”, que puedes instalar directamente del centro de instalación de Linux o bien descargarlo para tu versión de Linux particular. Yo utilizo la versión de Linux conocida como “Ubuntu”, que es la más popular.
Una vez que instales VirtualBox sólo tienes que ir al menú de Inicio y seleccionar "nueva máquina virtual", y seguir el asistente. En este caso, yo utilizo Windows XP virtualizado.

Aqui vemos el asistente de VirtualBox para crear máquinas virtuales.
Para instalar una máquina virtual, necesitas crear primero un disco duro virtual. Un disco duro virtual es un archivo gigante que sirve como disco duro para la máquina virtual. Los hay dinámicos y fijos. En los dinámicos tu seleccionas un límite máximo de tamaño, y el archivo crece hasta obtener el máximo tamaño que elijas. En un disco duro virtual fijo, el tamaño de archivo es fijo y no cambia de tamaño. Recomiendo que uses un disco virtual dinámico.
Una vez que logras crear la máquina virtual, puedes instalar cuantos programas de desees y que alcance el disco duro virtual en capacidad. Lo mejor de todo, es que puedes guardar este disco virtual como una copia en otro disco duro portátil, para que sirva de respaldo en caso de que tengas que formatear una máquina o bien desees instalar esta máquina virtual en otra computadora. Así te ahorras mucho tiempo y molestias.

Aqui vemos una máquina virtual de Windows XP corriendo sobre Linux
maquinas virtuales de windows
En la siguiente imagen vemos que la máquina real (fondo negro) es Windows 7 Home y la máquina virtual con el sistema operativo Windows XP. La máquina virtual está embebida en una ventana windows; y podemos pasarnos de una máquina a la otra con solo un click del mouse.

virtual box
La empresa Oracle ha creado una herramienta gratuita para que podamos crear máquinas virtuales de diferentes sistemas operativos. En el caso de hoy veremos cómo crear una máquina virtual de un sistema operativo llamado Elementary OS, una distribución de Linux basada en Ubuntu la cual nos acerca a la estética de Mac.
Lo primero a tener en cuenta es que necesitamos un equipo relativamente potente con mínimo 4 GB de memoria RAM para poder alojar una máquina virtual.
crear una maquina virtual
Lo primero de todo es tener instalado el programa Virtual Box el cual podrás descargar al final del post. Una vez instalado debemos descargar una imagen ISO de nuestro sistema operativo en nuestro caso hemos elegido una distribución gratuita de Elementary OS, puedes descargarla también al final.
Al abrir Virtual Box nos encontramos con una interfaz algo diferente a lo normal.

Haremos clic en Nueva, en la parte superior izquierda y nos aparecerá una ventana en la cual debemos poner el nombre de nuestra máquina y elegir el tipo de sistema operativo que vamos a instalar.

En la pantalla siguiente tendremos que elegir la cantidad de memoria RAM que queremos asignar a la máquina, en este caso con 2048 MB es suficiente.

En la siguiente pantalla elegiremos añadir un disco duro a nuestra máquina. El tamaño será de 20 GB.

Cuando hayamos creado nuestra máquina virtual tan solo nos falta un último ajuste para poder empezar a instalar el sistema.
En la ventana que nos aparece tendremos que hacer clic en almacenamiento.

Haremos clic en unidad óptica la cual estará en estado "Vacío" y haremos clic en el icono en forma de CD con un + de color verde, buscaremos donde tenemos la imagen ISO y haremos clic en seleccionar disco y finalmente en OK.
Ahora haremos clic en Iniciar y esperaremos a que nuestro sistema se instale.
Tras unos minutos y de forma guiada nos aparecerá una ventana con el nuevo sistema la cual no preguntará que si queremos instalarlo o probarlo. En este caso lo instalaremos.

Haremos clic en continuar hasta que aparezca esta ventana, en la cual deberemos escoger la primera opción, que dará formato a nuestro disco duro virtual e instalará el sistema.
Por último elegiremos nuestro usuario y una contraseña, pueden ser cualquiera.

Ahora tan solo habrá que esperar para tener nuestro sistema instalado y poder probar Elementary OS bajo Linux en nuestro equipo Windows.

Ahora ya sabes cómo hacer máquinas virtuales con Virtual Box, te animo a que pruebes a hacer una y que experimentes con ellas, tranquilo, si se rompe no pasa nada, la eliminas y haces otra.