La virtualización ha transformado la manera en que se administran los recursos computacionales en la actualidad. En el corazón de esta revolución se encuentran los hipervisores, piezas clave de software, firmware o hardware que permiten la creación y gestión de máquinas virtuales. Este artículo proporciona una visión exhaustiva sobre los hipervisores, explorando sus tipos, orígenes y el impacto que han tenido en la computación moderna.
¿Qué es un Hipervisor?
Un hipervisor, también conocido como monitor de máquina virtual (VMM) o virtualizador, es una plataforma que permite la ejecución de múltiples sistemas operativos, denominados «máquinas virtuales» (VM), en un solo equipo físico, conocido como «máquina host». A diferencia de un emulador, un hipervisor permite que la mayoría de las instrucciones de las VM se ejecuten directamente en el hardware nativo. Esto posibilita, por ejemplo, que instancias de Linux, Windows y macOS compartan los recursos de hardware virtualizados en una misma máquina x86.
Clasificación de los Hipervisores
Hipervisores de Tipo 1 (Nativos o Bare-Metal)
Los hipervisores de tipo 1 se ejecutan directamente sobre el hardware del host, controlando el hardware y gestionando los sistemas operativos invitados. Debido a esta característica, se les denomina a veces como hipervisores «bare-metal». Los primeros hipervisores, desarrollados por IBM en la década de 1960, eran de este tipo.
Hipervisores de Tipo 2 (Hospedados)
Estos hipervisores se ejecutan sobre un sistema operativo convencional, como cualquier otro programa informático. El monitor de máquina virtual opera como un proceso en el host. Los hipervisores de tipo 2 abstraen los sistemas operativos invitados del sistema operativo del host.
La distinción entre estos dos tipos no siempre es clara. Por ejemplo, KVM y bhyve son módulos de kernel que convierten el sistema operativo host en un hipervisor de tipo 1, pero dado que las distribuciones de Linux y FreeBSD siguen siendo sistemas operativos de propósito general, KVM y bhyve también pueden categorizarse como hipervisores de tipo 2.
Orígenes en Mainframes
Los primeros hipervisores que proporcionaron virtualización completa fueron el software de prueba SIMMON y el sistema de investigación IBM CP-40, que luego evolucionó en el sistema operativo CP/CMS de IBM. CP-40, que comenzó a utilizarse en enero de 1967, fue ejecutado en un S/360-40 modificado para admitir la traducción de direcciones dinámicas, una característica esencial para la virtualización.
Soporte del Sistema Operativo
La reactivación del uso de la tecnología de virtualización en sistemas Unix, Linux y otros sistemas operativos tipo Unix alrededor de 2005 se debió a factores como la expansión de las capacidades de hardware, esfuerzos para controlar costos y simplificar la gestión mediante la consolidación de servidores, y la necesidad de controlar grandes instalaciones multiprocesador y de clusters.
Grandes proveedores de Unix, como HP, IBM, SGI y Sun Microsystems, han estado vendiendo hardware virtualizado desde antes del año 2000. Estos sistemas han sido en su mayoría grandes y costosos, aunque la virtualización también ha estado disponible en sistemas de gama media y baja.
Virtualización en Sistemas x86
La virtualización x86 fue introducida en la década de 1990, con la emulación incluida en Bochs. Intel y AMD lanzaron sus primeros procesadores x86 con virtualización de hardware en 2005 con Intel VT-x y AMD-V, respectivamente.
Sistemas Embebidos
Los hipervisores embebidos, destinados a sistemas embebidos y ciertos entornos de sistemas operativos en tiempo real (RTOS), están diseñados con requisitos diferentes en comparación con los sistemas de escritorio y empresariales, incluyendo robustez, seguridad y capacidades en tiempo real.
Implicaciones de Seguridad
El uso de la tecnología de hipervisores por parte de malware y rootkits para instalarlos como hipervisores debajo del sistema operativo, conocido como hyperjacking, puede hacerlos más difíciles de detectar. Sin embargo, investigaciones recientes han demostrado formas de protegerse contra rootkits a nivel de hipervisor.
En resumen, los hipervisores son fundamentales en el ámbito de la virtualización, ofreciendo soluciones flexibles y eficientes para la gestión de recursos informáticos. Su evolución desde los mainframes hasta los sistemas embebidos y los servidores x86 refleja la adaptabilidad y la relevancia continua de esta tecnología en diversos entornos informáticos. Con los avances continuos en hardware y software, los hipervisores seguirán siendo un componente crítico en la infraestructura de TI moderna.