¿Qué es un hipervisor?
Un hipervisor es un tipo único de software que permite que una computadora ejecute más de un sistema operativo (SO). A través de un proceso conocido como virtualización, el software engaña a cada sistema operativo para que piense que tiene acceso exclusivo a un conjunto particular de hardware. Se ubica entre el hardware físico y el sistema operativo y presenta un conjunto virtual de hardware a todos los demás programas que se ejecutan en la máquina. También gestiona el flujo de información entre el software, el hardware virtualizado y el hardware físico. Este tipo de software se usa tanto en entornos de consumo como empresariales.
En la mayoría de los casos, el sistema operativo de una computadora se ejecuta en un estado altamente privilegiado donde tiene acceso sin restricciones al hardware de la máquina, mientras que las aplicaciones se ejecutan en un estado menos privilegiado y deben depender del sistema operativo. Estos diferentes niveles de privilegios de acceso al hardware se conocen como anillos, y el sistema operativo se ejecuta tradicionalmente en el anillo 0; Las aplicaciones de usuario se ejecutan en los anillos 1–3, que tienen menos privilegios. Este modelo funciona bien la mayor parte del tiempo, pero se desmorona por completo cuando se intenta ejecutar más de un sistema operativo en una sola computadora simultáneamente. Un hipervisor resuelve este problema utilizando una técnica llamada virtualización.
La virtualización no es una idea nueva, pero se ha convertido en una especie de palabra de moda desde mediados de la década de 2000 a medida que las corporaciones y la industria de la tecnología de la información (TI) se han dado cuenta de su potencial para reducir los costos y aumentar la eficiencia. Existen muchos enfoques diferentes para la virtualización, pero la idea básica es crear conjuntos simulados de hardware que a menudo se conocen como máquinas virtuales. En el caso de un hipervisor, que también puede denominarse monitor de máquina virtual, cada máquina virtual contiene un sistema operativo "invitado". El hipervisor en sí mismo puede ejecutarse directamente en el hardware físico, en cuyo caso se le conoce como un tipo "bare metal" o dentro de un sistema operativo host como un hipervisor "software".
Los hipervisores deben usar algunas técnicas muy sofisticadas para administrar sus sistemas operativos invitados y asegurarse de que no entren en conflicto entre sí. Dado que un sistema operativo dentro de una máquina virtual desconoce que se le ha privado de privilegios de anillo 0, puede intentar realizar funciones restringidas sin permiso. En estos casos, el hipervisor puede interceptar una función antes de que llegue al hardware, ejecutar las instrucciones de manera que no cause daños a otros sistemas operativos que se ejecutan en el hardware y devolver el resultado al sistema operativo original. Conocido como una técnica de "atrapar y emular", este es solo uno de los muchos conceptos avanzados exclusivos del mundo de la virtualización.
A medida que este tipo de software se ha vuelto más importante y lucrativo, más compañías han buscado formas de aliviar la carga en un hipervisor y proporcionar un mayor rendimiento. Los proveedores de software han modificado sus sistemas operativos para conocer las máquinas virtuales en las que se están ejecutando, lo que significa menos tipos de escenarios de captura y emulación. Los proveedores de hardware han agregado soporte para un nuevo nivel de privilegios, a veces conocido como anillo -1. Los programas de software más nuevos pueden aprovechar una o ambas técnicas para aumentar el rendimiento.
Los hipervisores ahora se pueden encontrar en una variedad de productos tanto a nivel de consumidor como de empresa. Los productos de consumo que permiten que un sistema operativo se ejecute dentro de otro a menudo usan un hipervisor de tipo software. En el espacio empresarial, el software permite consolidar servidores infrautilizados que ejecutan diferentes sistemas operativos. Los desarrolladores de software pueden usar este enfoque para ejecutar múltiples instancias de sistemas operativos similares o incluso idénticos para probar problemas de compatibilidad.