Virtualización de sistemas operativos

Si tomas la pastilla azul, fin de la historia; despertarás en tu cama y creerás lo que quieras creerte. Si tomas la roja te quedarás en el país de las maravillas, y yo te enseñaré hasta donde llega la madriguera de conejo.

La virtualización es una tecnología que permite ejecutar varios sistemas operativos simultáneamente en una misma máquina. En un entorno virtualizado, cada sistema operativo tiene la ilusión de residir en una máquina propia, disponible enteramente para él. Para conseguir esto es necesario un programa (denominado virtualizador o hipervisor, según la técnica concreta que se utilice) que se encargue de arbitrar el uso del hardware. Para ello intercepta las operaciones privilegiadas y simula sus efectos sobre un dispositivo virtual, también simulado. Así, cuando un sistema operativo cree que está escribiendo en un disco duro real, en realidad lo hace en un fichero, gestionado por el hipervisor, que simula dicho disco duro. Lo mismo con tarjetas de red, pantallas, teclados, etc.

Originalmente, la arquitectura PC no estaba preparada para la virtualización, pues era imposible interceptar algunas operaciones privilegiadas. Esto llevó al desarrollo de dos técnicas que permitían soslayar el problema: la traducción binaria y la paravirtualización. Hoy en día, sin embargo, los dos principales fabricantes de procesadores x86 han incorporado capacidades de virtualización asistidas por hardware, que permiten crear virtualizadores capaces de interceptar todas las posibles operaciones privilegiadas sin necesidad de trucos.

Aplicaciones de la virtualización

Existen varias aplicaciones para la virtualización que se han extendido y generalizado en los últimos años:

  • Agrupación en una sola máquina de varios servidores infrautilizados, de manera que cada servidor seguirá siendo tan seguro como cuando estaba en una máquina separada, pero el sistema será más barato. Alquiler de servidores: gracias a la virtualización, los hosts pueden ofrecer a bajo precio un servidor individual virtualizado a cada usuario, que puede instalar el sistema operativo o servidor web de su elección, así como las versiones concretas que prefiera de éstos, en lugar de estar limitado a las que ofrezca su proveedor.
  • Migración en caliente de servidores: si se desea realizar mantenimiento en un servidor (por ejemplo, cambiar un disco duro, o ampliar la memoria), se pueden pasar todos sus servicios virtualizados a otro equipo de manera temporal, hacer la operación, y restaurarlos. Esta migración es casi instantánea.
  • Mayor seguridad: servicios que inicialmente se ejecutaban en un mismo sistema operativo (por ejemplo, la web pública de la empresa y el correo) pueden pasar a trabajar en máquinas virtuales separadas, pero funcionando todas ellas aún en el mismo hardware físico. En caso de que una de las máquinas virtuales se viese comprometida, el resto seguirán siendo confiables. Alquiler de tiempo de proceso en la nube: gracias a la virtualización ha podido superar los inconvenientes de seguridad que tendrían otros modelos.

En Gradiant estamos actualmente trabajando en varias aplicaciones basadas en virtualización, aprovechando sus ventajas para ofrecer nuevos servicios a usuarios de ordenadores personales. Por ejemplo, como parte del proyecto Avanza Gametel, se podrá acceder a aplicaciones de teleeducación para PC desde set-top-boxes de bajo coste.