Objetivos de la virtualización

Uno de los objetivos de los sistemas operativos consiste en la abstracción, es decir, abstraer o separar a los programas en funcionamiento del hardware del equipo. Y este objetivo lo consiguen creando una serie de máquinas virtuales en las que se ejecutan las aplicaciones.

image.png

Cada una de las máquinas virtuales generadas por el sistema operativo ofrece a las aplicaciones una serie de recursos virtuales (espacio de almacenamiento, impresora, video, etc.) de modo que un error en la aplicación no afecte al hardware real del sistema informático, sino a este hardware virtual. Sin embargo, estas máquinas virtuales creadas por el sistema operativo no se comportan realmente como máquinas completas, ya que solo ofrecen a las aplicaciones algunos recursos, no replican todos los recursos existentes en una máquina real.

El concepto de virtualización nace cuando a alguien se le ocurre ir un paso más allá, crear una máquina virtual que replique completamente a una máquina real, demodo que sobre dicha máquina ficticia podamos correr un sistema operativo completo, el cual seria “engañado”, ya que se creería que se está ejecutando sobre una máquina normal cuando en realidad se está ejecutando sobre una máquina virtual.

image.png

Luego, una máquina virtual, es una máquina creada, no por el sistema operativo en sí, sino por un software especializado en crear máquinas ficticias capaces de comportarse como máquinas reales a fin de montar sobre ellas sistemas operativos. Este tipo de software se conoce como aplicaciones de virtualización.

Equipo Anfitrión (Host) y Húesped (Guest)

Los dos conceptos más importantes para entender qué es la virtualización son las de anfitrión e invitado. Ambos conceptos se refieren al sistema operativo, por ello, habría que hablar de sistema operativo anfitrión y sistema operativo invitado.

El anfitrión es el que alberga al invitado. Además un anfitrión puede tener varios invitados, no está limitado solo a uno.

image.png

Requisitos Hardware

Para construir la máquina virtual tenemos que asignar determinados recursos de hardware, como son espacio en disco duro, memoria RAM, número de procesadores, etc., que el anfitrión cederá o compartirá con el invitado.

Ejemplo: Si disponemos de un ordenador que tenemos instalado Windows XP e instalamos un software de virtualización y creamos una máquina virtual que corra Windows 7. Realmente en dicho ordenador estará realmente ejecutando dos sistemas operativos al mismo tiempo (el host y el guest), y todos sus recursos se estarán repartiendo entre ambos. Si dicho ordenador tiene por ejemplo 2 GB de RAM, podemos darle 1 GB a la máquina virtual, y nuestro ordenador seguirá funcionando con 1 GB, cosa totalmente aceptable. Pero si por el contrario el ordenador solo tiene 1 GB de RAM tendríamos problemas, ya que 512 MB son muy pocos para trabajar con un sistema operativo de una forma correcta.

Para que la virtualización funcione de una manera aceptable se necesitan ordenadores modernos y potentes, que puedan ceder recursos a sus sistemas invitados para que luego funcionen bien. Es conveniente contar con una buena memoria RAM, suficiente espacio en disco duro y sobretodo un microprocesador potente que pueda dividir su tiempo de proceso entre los dos sistemas operativos.

Realizar una virtualización completa mediante software es un proceso engorroso y lento, por eso los fabricantes de microprocesadores han incorporado en algunos de sus productos soluciones hardware especializadas en virtualización que han conseguido que la velocidad de las soluciones virtuales aumente considerablemente.

Intel y AMD han desarrollado independientemente extensiones de virtualización x86. Noson directamente compatibles entre sí, pero proporcionan las mismas funciones. A veces no viene por defecto activada y hay que entrar en la BIOS para activarla:

VT INTEL (I VT)

La extensión de Intel para virtualización de la arquitectura de 32 y 64 bits se llama Intel VT-x (Intel Virtualization Technology). Está disponible para la mayoría de los últimos procesadores de Intel y en algunos modelos anteriores. Tendremos que ver si nuestro procesador cuentacon estas extensiones VT que nos permiten trabajar sin problemas con la virtualización.

Página de información de Intel: http://ark.intel.com/VTList.aspx

VIRTUALIZACIÓN AMD (AMD-V)

La extensión de virtualización AMD para la arquitectura de 64 bits x86 se llama AMD Virtualization (abreviada AMD-V). Prácticamente todos los micros AMD incluyen AMD-V.

image.png

image.png