Desde el 80286, los procesadores x86 tienen cuatro niveles de privilegio, los llamados anillos, pero los sistemas operativos convencionales solo usan dos: el anillo 0 para el núcleo y el 3 para las aplicaciones. Los anillos 1 y 2 quedaron vacíos durante décadas, hasta el punto de que Linus Torvalds escribió en 2003 que el modelo de varios anillos había sido un fracaso. Sin embargo, fue precisamente en el anillo 1 donde VMware y Xen ejecutaron los núcleos de sus máquinas virtuales, y las dos empresas que se construyeron sobre esa idea se vendieron por algo más de 1.100 millones de dólares en total.
Las claves de los anillos 1 y 2 de x86 en 30 segundos
- x86 tiene cuatro anillos de privilegio, pero los sistemas operativos solo usan el 0 y el 3.
- VMware y Xen ejecutaban el núcleo invitado en el anillo 1, el primero con traducción binaria y el segundo con paravirtualización.
- EMC compró VMware por unos 635 millones de dólares y Citrix pagó unos 500 millones por XenSource.
- Intel VT-x, en 2005, permitió que los invitados volvieran al anillo 0 en un modo propio.
- Intel propuso eliminar los anillos 1 y 2 con X86S en 2023 y abandonó el plan en 2024.
Entender esta historia ayuda a comprender por qué la virtualización x86 funciona como funciona hoy en KVM, Xen o Hyper-V, y por qué los hipervisores modernos dependen tanto de extensiones del procesador que no existían hace veinte años.
Dos pisos que nadie quiso usar
Intel introdujo los cuatro niveles de privilegio con el 80286 en 1982 y los mantuvo en el 80386. La idea era que el núcleo ocupara el nivel 0, las aplicaciones el 3 y los niveles intermedios sirvieran para servicios del sistema o controladores. Pero el propio manual del 386 admitía que un sistema diseñado para uno o dos niveles podía ignorar el resto, y recomendaba a los de dos niveles usar el 0 y el 3. Eso es lo que hicieron Unix, Linux y Windows. OS/2 fue uno de los pocos sistemas conocidos que aprovechó un anillo intermedio.
El 21 de noviembre de 2003, en una discusión de la lista del núcleo de Linux sobre si los controladores de Windows de ndiswrapper podrían ejecutarse en el anillo 1 o 2, Torvalds fue tajante: «Multi-ring was a failure. Let it go» (el modelo de varios anillos fue un fracaso, olvidadlo). Ese mismo día otro desarrollador le recordó que en Cambridge habían creado un monitor de máquinas virtuales que usaba precisamente el anillo 1 para el núcleo invitado. Torvalds respondió que ese era el tipo de uso al que se refería: un monitor mínimo en el anillo 0 y todo lo demás un nivel por debajo.
VMware y Xen se mudan al anillo 1
El problema de virtualizar x86 era que dos núcleos, el del hipervisor y el del invitado, querían el anillo 0. Bajar el invitado al anillo 1 no bastaba, porque algunas instrucciones de x86 se comportan de forma distinta fuera del anillo 0 sin provocar una excepción que el monitor pueda capturar. VMware, fundada en 1998 a partir del trabajo de Mendel Rosenblum en Stanford, lo resolvió con traducción binaria dinámica: su monitor reescribía sobre la marcha el código del núcleo invitado, que se ejecutaba desde una caché de traducción en el anillo 1, mientras las aplicaciones invitadas seguían en el anillo 3.
En la Universidad de Cambridge, el equipo de Ian Pratt eligió otro camino. Xen, presentado en octubre de 2003 en el artículo Xen and the Art of Virtualization, usaba paravirtualización: en lugar de traducir el núcleo invitado, se modificaba su código fuente para que colaborara con el hipervisor. Xen ocupaba el anillo 0, el Linux modificado el anillo 1 y las aplicaciones el 3. El proyecto nació dentro de XenoServers, una iniciativa para vender tiempo de cómputo a terceros que compartieran máquina sin verse entre sí.
El 15 de diciembre de 2003, menos de un mes después del mensaje de Torvalds, EMC acordó comprar VMware por unos 635 millones de dólares. En agosto de 2006, Amazon abrió en beta EC2, su servicio de máquinas virtuales en la nube, construido sobre Xen.
VT-x, los 64 bits y el intento de demolición
En noviembre de 2005, Intel lanzó sus primeros Pentium 4 con VT-x. La extensión añadía dos modos, raíz y no raíz, de forma que el núcleo invitado podía ejecutarse en el anillo 0 de su propio modo mientras el hipervisor gobernaba desde el anillo 0 del modo raíz. Al principio no fue una victoria inmediata: en 2006, los ingenieros de VMware Keith Adams y Ole Agesen publicaron una comparación en la que el monitor por hardware de primera generación rendía a menudo peor que su monitor por software, ya maduro.
Los 64 bits también cambiaron el reparto. AMD64 eliminó los límites de segmentación en modo de 64 bits, una herramienta que Xen usaba para proteger el hipervisor desde el anillo 1. Como consecuencia, en los invitados paravirtualizados de 64 bits de Xen el núcleo invitado pasó a ejecutarse en el anillo 3, junto a sus aplicaciones, y el hipervisor tuvo que interceptar las llamadas al sistema para redirigirlas.
Las operaciones económicas cerraron el círculo en 2007. En julio, Intel Capital acordó comprar alrededor del 2,5 % de VMware, que salió a bolsa en agosto. El 15 de agosto, Citrix anunció la compra de XenSource, la empresa fundada por los creadores de Xen, por unos 500 millones de dólares en efectivo y acciones. Sumada a la compra de VMware por EMC, las dos operaciones rondan los 1.100 millones.
Los anillos intermedios estuvieron a punto de desaparecer. En mayo de 2023, Intel publicó el borrador de X86S, una arquitectura simplificada que eliminaba los anillos 1 y 2 entre otros elementos heredados. En diciembre de 2024, la compañía anunció que no seguiría adelante con X86S y reafirmó su compromiso con la compatibilidad. Hoy la virtualización x86 descansa sobre VT-x y AMD-V, y los anillos 1 y 2 siguen en el silicio, casi sin inquilinos.
Preguntas frecuentes
¿Qué son los anillos de privilegio en x86?
Cuatro niveles de protección del procesador, del 0 (máximo privilegio, núcleo) al 3 (aplicaciones). La mayoría de sistemas operativos solo usan el 0 y el 3.
¿Por qué VMware y Xen usaban el anillo 1?
Porque el hipervisor necesitaba el anillo 0 y el núcleo invitado debía quedar un nivel por debajo. VMware lo hacía con traducción binaria y Xen con paravirtualización.
¿Qué cambió Intel VT-x?
Añadió un modo no raíz en el que el núcleo invitado puede ejecutarse en el anillo 0 sin interferir con el hipervisor, que funciona en modo raíz.
¿Siguen existiendo los anillos 1 y 2?
Sí. Intel propuso eliminarlos con X86S en 2023, pero abandonó ese plan en diciembre de 2024.
Fuentes:







