Tecnología

Qué es una máquina virtual, cómo funciona y para qué sirve

Máquina Virtual
Escrito por Rubén Andrés

Todo aficionado a la tecnología en general y a la informática en particular ha oído hablar en alguna ocasión de las máquinas virtuales. Pero, ¿qué se esconde tras este concepto de apariencia futurista y qué utilidad real tiene para los usuarios?

En términos generales, una máquina virtual es un software que permite emular el funcionamiento de un ordenador dentro de otro ordenador gracias a un proceso de encapsulamiento que aísla a ambos. Algo similar al concepto de las muñecas matrioskas rusas, que permiten introducir una muñeca dentro de otra, pero manteniendo cada cual la independencia de su huésped.

¿Qué es una máquina virtual?

Una máquina virtual es un software que crea una capa independiente donde se emula el funcionamiento de un ordenador real con todos los componentes de hardware que necesita para funcionar (disco duro, memoria RAM, tarjetas de red, tarjeta gráfica, etc.) y que puede ejecutar cualquier sistema operativo o programa, tal y como lo haría un ordenador real.

Toda esta emulación se encapsula en una serie de archivos que actúan como contendor desde el que se ejecuta la máquina virtual en una ventana de tu ordenador como si de un programa más se tratara y sin que nada de lo que suceda en el interior de esa ventana afecte al ordenador que la ejecuta.

Cómo crear una máquina virtual dentro de tu sistema operativo

A grandes rasgos, la única diferencia entre tu ordenador real y una máquina virtual que ejecutes en ese mismo ordenador, es que tu ordenador sí cuenta con un hardware real, mientras que la máquina virtual emula todos sus componentes de forma que no tiene por qué corresponderse con el hardware físico que tienes instalado en tu ordenador real.

De ese modo, se pueden ajustar las características del hardware para hacerlo compatible con el sistema operativo que vayas a usar en esa máquina virtual. Es decir, aunque tu hardware real no sea compatible con un determinado sistema operativo, el de una máquina virtual que se ejecute en ese ordenador sí puede serlo.

La máquina virtual emula todos sus componentes

Esto facilita que, una vez creada la máquina virtual en un ordenador, puedes copiar o mover el archivo contenedor que se crea y ejecutarla en cualquier otro ordenador, aunque tenga un hardware totalmente diferente.

Este tipo de máquinas virtuales, conocidas como máquinas virtuales de sistema, son las más conocidas por la mayoría de usuarios ya que son ideales para virtualizar sistemas operativos completos, pero no el único tipo de máquinas virtuales que existe.

También existen las máquinas virtuales de procesos, que son más habituales en servidores y en las que únicamente se virtualiza determinados procesos o servicios y no el sistema operativo completo.

¿Para qué sirven las máquinas virtuales?

Existen diversos usos para las máquinas virtuales, pero ya que permiten emular casi cualquier sistema operativo estándar (Windows, GNU/Linux, MacOS, Android, etc.), y dado que se ejecutan en una capa de software diferente y totalmente aislada, uno de los usos más frecuentes es el de probar diferentes sistemas operativos, programas o configuraciones con total seguridad para tu ordenador real ya que, si algo falla en la máquina virtual, este fallo no afectará en absoluto al ordenador que la ejecuta.

De ese modo, si por ejemplo, sospechas que un archivo que te han enviado pudiera estar infectado por un virus o software malicioso, puedes ejecutarlo en una máquina virtual para comprobar su fiabilidad.

Si no sucede nada, podrás usarlo en tu equipo. En caso contrario, infectará solo a la máquina virtual y tu equipo se mantendrá inmune al ataque.

Tu equipo se mantendrá inmune al ataque

Otra característica de las máquinas virtuales es que no tienen “conciencia” de que son máquinas virtuales, por lo que, a todos los efectos, se comportan como ordenadores reales.

Esta cualidad permite, entre otras cosas, recrear entornos de red en el que puedes conectar varias máquinas virtuales ejecutadas en el mismo ordenador y conectarlas entre sí en red, recreando la configuración que tendrían diferentes ordenadores reales.

Esto puede serte muy útil para aprender cómo funcionan las redes informáticas y ahorrarte muchos euros ya que no necesitarás tener varios ordenadores reales para probar la seguridad de tus redes.

Cómo obtener el Certificado Profesional de Seguridad en Redes

Sin dejar de lado la tecnología de redes, llegamos a una de las principales utilidades para las máquinas virtuales de procesos, de las que ya te hemos hablado antes, y es que es más que probable que, sin saberlo, estás usando máquinas virtuales a diario cada vez que usas tu almacenamiento en la nube o navegas por Internet.

Las máquinas virtuales de procesos se ejecutan en un mismo servidor para ejecutar varias instancias de la misma aplicación de forma separada. De ese modo, si una de ellas falla, no afectará al funcionamiento del resto.

Servicios de alojamiento web y almacenamiento en la nube

Esta solución es habitual en los servicios de alojamiento web y almacenamiento en la nube en las que se optimizan los costes de los servidores ejecutando una máquina virtual para alojar los archivos de usuarios distintos. De ese modo, en lugar de necesitar un servidor para cada uno de los usuarios, todos comparten el mismo hardware dividido en varias máquinas virtuales aisladas entre sí.

¿Qué ordenador necesito para ejecutar máquinas virtuales?

A pesar de que el hardware de la máquina virtual es emulado, necesita unos recursos mínimos para funcionar. Estos recursos se obtienen directamente del hardware real del ordenador que la está ejecutando.

De ese modo, si tienes un procesador de 4 núcleos y 8 GB de memoria RAM, y asignas 2 de esos núcleos y 4 GB de memoria RAM a tu máquina virtual, el rendimiento del sistema operativo “real” se verá reducido a la mitad, ya que esos recursos dejarán de estar disponibles para el ordenador y los empleará la máquina virtual mientras está en uso.

Cuando apagues la máquina virtual, el “sistema operativo real” volverá a disponer automáticamente de esos recursos.

Cualquier ordenador con unas especificaciones mínimas puede ejecutar una máquina virtual y, de hecho, la mayoría de ordenadores actuales soportan este tipo de software. Vamos a ver cuáles son esos requisitos mínimos.

Procesador

El primer requisito será contar con un procesador relativamente potente, ya que como te hemos indicado, ordenador y máquina virtual comparten recursos y, además, éste debe soportar la tecnología de virtualización.

En los procesadores Intel, esta función se conoce como Intel VTx, mientras que en los de AMD se aparece como AMD-v. Además, esta función deberá estar habilitada en la BIOS (o UEFI) del ordenador o no podrá ejecutarse la virtualización.

Memoria RAM

Contar con una buena cantidad de memoria RAM te garantizará que tanto el equipo anfitrión, como la máquina virtual que se ejecuta, cuenten con suficiente memoria RAM.

La cantidad de memoria RAM necesaria dependerá del sistema operativo que ejecuten tanto el ordenador, como la máquina virtual. Por ejemplo, para ejecutar una máquina virtual de Windows XP en un Windows 10, basta con 6 GB para que ambos sistemas se ejecuten de forma fluida.

En cambio, esta cantidad puede ser insuficiente si se quiere ejecutar una máquina virtual con macOS Sierra en un PC con Windows 10.

Espacio en el disco duro

Como ya te hemos comentado antes, las máquinas virtuales utilizan una serie de archivos que sirven como contenedor en el cual se ejecutan. Estos archivos suelen ocupar el mismo espacio en el disco duro que se le asigna al configurar la máquina virtual.

Es decir, que si configuras una máquina virtual para que cuente con un disco duro virtual de 20 GB, el archivo contenedor en el que se ejecutará la máquina virtual ocupara ese mismo espacio en tu disco duro. Por lo que tener suficiente espacio en tu disco duro real como para alojar estos archivos de gran tamaño será vital para el funcionamiento de la máquina virtual.

Espacio en el disco duro

Tarjeta gráfica

También es importante contar con una tarjeta gráfica, si es dedicada mejor. Este componente es necesario ya que el sistema real deberá generar los gráficos de su propia interfaz, además de la interfaz del sistema de la máquina virtual.

Esto duplica el trabajo para este componente, por lo que contar con un chip gráfico que ofrezca un buen rendimiento hará más fluido el uso en ambos sistemas operativos.

Software hipervisor

El software hipervisor es una de las piezas clave para el uso de las máquinas virtuales ya que es el encargado de configurar, crear, ejecutar y controlar el funcionamiento de la máquina virtual. Por simplificarlo un poco su función, viene a ser el intermediario entre el ordenador real y la máquina virtual.

Ejecutar máquinas virtuales en los principales sistemas operativos

Existen varios programas que permiten configurar y ejecutar máquinas virtuales en los principales sistemas operativos. Algunos nombres ilustres destacados en esta categoría son VirtualBox, VMware, Parallels Desktop o Qemu.

En esta lista te mostramos algunas de las mejores aplicaciones para ejecutar máquinas virtuales en tu ordenador. Algunas de ellas son software libre y gratuito. Otras, en cambio, son de pago y tendrás que comprar una licencia para usarla.

Usas máquinas virtuales a diario

Además de las máquinas virtuales que se ejecutan en los servidores de las webs y servicios de almacenamiento en la nube, usas más máquinas virtuales de las que imaginas. Sin ir más lejos, es probable que tengas una ejecutándose en tu mano en este preciso instante.

Ya te hemos contado algunos usos habituales para las máquinas virtuales de proceso y su capacidad para ejecutar un solo proceso que se mantiene aislado del sistema operativo principal, de forma que permite al proceso ejecutarse independientemente de la plataforma en la que se ejecute.

Este tipo de máquinas virtuales permite desarrollar fácilmente aplicaciones que funcionarán en distintas plataformas. Basta con desarrollar una sola aplicación basada en un determinado framework (Java o .NET, por ejemplo), y ejecutarla en una máquina virtual de proceso para que funcione sobre cualquier sistema operativo o configuración de hardware.

Este es precisamente el principio en el que se basa la ejecución de las apps de Android.

Máquina virtual de Java en Android llamada Dalvik o ART

En realidad, las apps se ejecutan dentro de una máquina virtual de Java en Android llamada Dalvik o ART (según versión de Android) que se ejecuta sobre cientos de configuraciones distintas de procesadores, tipos de memoria RAM y hardware diferente. En cambio, la app funciona de la misma forma en todos ellos sin necesidad de modificar nada en ella.

Máquinas virtuales integradas en tu sistema operativo

Android no es el único sistema operativo que cuenta con máquinas virtuales integradas. De hecho, los principales sistemas operativos de escritorio las incorporan de una forma u otra.

Windows y su compatibilidad

Windows incorpora una máquina virtual a solo un clic de distancia de tu ratón, aunque lo hace disfrazada de aplicación para solucionar problemas de compatibilidad.

Aplicación para solucionar problemas de compatibilidad

Esta aplicación, activa en Windows desde Windows 7, te permite usar programas que funcionaban en anteriores versiones de Windows, pero que no funciona como debiera en la actual versión.

En realidad, no es más que una máquina virtual de procesos ejecutada con Microsoft Virtual PC, que emula el comportamiento de anteriores versiones de Windows para que una determinada aplicación funcione como lo hacía en ese sistema operativo.

Virtualiza tu Windows XP de siempre en tu nuevo ordenador

Windows en tu Mac

Desde que Apple pasó a utilizar procesadores de Intel en sus ordenadores es posible instalar Windows en ellos, aunque si quieres hacerlo tendrás que utilizar el entorno virtual que te proporciona Boot Camp.

Cómo instalar Windows 10 en Mac con Boot Camp

En ese entorno virtualizado se crean los factores de compatibilidad ideales para que el sistema pueda conectar de forma optimizada con el hardware de los ordenadores de Apple, ofreciendo un gran rendimiento usando cualquiera de los dos sistemas operativos que comparten espacio en el disco duro del equipo.

Ejecuta programas de Windows en Linux

Otro claro ejemplo de máquina virtual de procesos es la que encontramos en Wine, el software que permite utilizar programas desarrollados para Windows en un sistema GNU/Linux.

Ejecuta programas Windows en Linux con Wine 1.6.2

Gracias a Wine, puedes encapsular todos los componentes y librerías de Windows que un determinado programa necesita para funcionar, y lo ejecuta en una ventana de tu equipo como si fuera una aplicación nativa para Ubuntu, Linux Mint o cualquier otra distro de Linux.

Como puedes ver, utilizas muchas más máquinas virtuales de las que creías, pero ahora sabes exactamente qué son las máquinas virtuales, cómo funcionan y para qué sirven.

Sobre el autor de este artículo

Rubén Andrés

Bajo la premisa de que nadie nace sabiéndolo todo, ni todo el mundo es un experto en tecnología, intento que lo que escribo sea comprensible para todo el mundo, independientemente de sus conocimientos técnicos. Si la tecnología te supone más un problema que una ayuda, es que todavía no te la han explicado de la forma adecuada.