Los sistemas operativos son programas complejos de escribir y además, debido a la importancia que tienen en el cómputo moderno, no muchas empresas se aventuran a entrarle a este tipo de sistemas. Microsoft tiene años en el tema, por ejemplo, y es claro que no ha sido fácil llegar a Windows 10, por ejemplo, en donde parece que la experiencia acumulada empieza a dar sus frutos. Otros sistemas, como Linux, han ido creciendo a través de los años también, pero evidentemente la inercia de las grandes empresas en el tema han hecho que su crecimiento en popularidad no sea como se esperaba.
Pero curiosamente el sistema operativo que usan en Intel, en cuanto dispositivo tienen es Minix, un sistema creado por Andrew Tanenbaum en los años 1980s. La historia es poco menos que extraña y digamos que tiene ya un par de años. En los primeros días del cómputo, cuando se usaba MsDOS, había pocas alternativas. Mucha gente usaba Unix, sistema operativo creado en los Laboratorios Bell por Ritchie y Thompson el cual, en un inicio, se regalaba, pero que eventualmente se volvería comercial. Debido a estas restricciones, Andrew Tanenbaum, de la Universidad de Vrije, en Amsterdam, creó un pequeño sistema operativo basado en Unix al que llamó Minix por su enfoque minimalista. Tenía apenas 12 mil líneas de C y se incluía todo (con el código fuente), en su libro: “Operating Systems: Design and Implementation”.
Dice Tanenbaum: “Usé este libro para enseñar un curso de sistemas operativos en la universidad y estaba complacido de poder tener acceso al código, y no era el único que pensaba así de Minix, el cual podría ser el sistema operativo que todos estaban quizás esperando”. Y continúa: “Un programador joven, llamado Linus Torvalds, de quien seguro han oído hablar, estudio Minix con dedicación y decidió que era posible crear un Unix basándose en algunas de estas ideas. Como se suele decir, el resto es historia, pero cabe preguntarse: ¿Por qué Linux y no Minix?
La respuesta revela mucho sobre el desarrollo del código abierto y de la mentalidad de este esquema. Sólo se necesita recordar que antes de que el código abierto se estableciera, había pocas herramientas y formas muy ineficientes para comunicarse. No había Git, por ejemplo, o GitHub y no había tampoco web… Bueno, sería más fácil listar lo que sí había”.
Tanenbaum nos dice: “el punto es que yo, con un par de personas más, hicimos cambios a Minix pero el licenciamiento que era permisivo en ese entonces, nos puso fuera de lo que pudo haber sido un gran proyecto de código abierto. El problema es que el libro publicado no estaba preparado para que el código fuente fuese copiado y usado libremente. La licencia estaba restringida y pedía 69 dólares por el privilegio de usarlo. No está muy claro qué hubiera pasado si se hubiese desarrollado haciéndolo disponible. Tuvo que llegar el año 2000 para que Minix fuese gratuito y de código abierto en el sentido moderno”.
Tanenbaum hace una interesante reflexión entonces: “Si no hubiese sido por la visión tradicional de los derechos de autor (copyright), que tenían los editores, ¡Minix y Tanenbaum hubiesen sido los verdaderos Linux y Linux, respectivamente!”. Pero he aquí que viene un extraño giro de tuerca: Los procesadores Intel tienen un chip administrativo por separado, el cual era el estado del arte en ese entonces. Esto se llamaba AMT – Active Management Technology, el cual estaba en algunos programas de manejo de servidores. Daba acceso remoto incluso cuando la computadora estaba apagada pero conectada a las máquinas principales. Se usaba una aplicación llamada KVM para conectar a la computadora mientras estaba apagada, se configuraba y cando arrancaba ésta, las cosas en general funcionaban. Estas características eran fundamentales para los administradores de sistemas de ese entonces. Pero la mayoría de los usuarios las podían simplemente ignorar.
Todo parecía ir bien pero en mayo se encontró un error en la seguridad y se requirió actualizar los datos al código AMT. Una actualización que mucha máquinas probablemente nunca tendría. Desde entonces varios investigadores, la mayoría de Google, habían echado un ojo al hardware y software y habían descubierto que había una capa adicional n el hardware de la que Intel nunca había hablado. Ring 3, por ejemplo, es la capa del usuario. Ring 0 es la capa del sistema operativo y Ring 1 es para los hipervisores. Pero había un Ring 2, usado por el kérnel UEFI y Ring -3 el cual llevaba el manejo de lo que ejecutaba el sistema operativo. Y esto, sorprendentemente, era Minix 3, o mejor dicho, una versión comercial de Minix 3.
En otras palabras, estamos hablando de Minix como un microkérnel de un sistema operativo que, al contrario de Linux, está más diseñado a las labores del hardware. Esto significa, sin embargo, que cada chip de Intel, desde 2015, corre Minix 3 incluso si también corre Windows, Linux u OSX. Esto podría ser el mejor homenaje al trabajo de Tanenbaum, sin duda.
Cuando Tanenbaum supo que Intel estaba usando Minix, escribió a Intel una carta abierta: “Estimado Sr. Krzanich, Gracias por poner una versión de MINIX dentro del chip del motor administrativo que usa en casi todas las computadoras de escritorio y laptops del mundo. Sospecho entonces que esto hace a MINIX el sistema operativo más usado en todo el planeta, incluso más que Windows, Linux o Mac OSX […]
Yo sabía que Intel tenía un interés potencial en MINIX desde hace muchos años c cuando uno de sus equipos de ingenieros me contactó para hablarme de un proyecto interno secreto y en donde me hicieron una serie de preguntas técnicas sobre MINIX, las cuales conteste de buena gana. Tuve otra pista cuando sus ingenieros empezaron a pedirme un número de cambios en MINIX. […]
También hubo sospechas de que algo pasaba cuando se discutió la licencia. Yo (implícitamente) informé que de hecho, MINIX usaba la licencia de Berkeley y que eso era muy importante. La licencia GPL, por ejemplo, tiene dificultades en el sentido que si uno hace cambios en el software y estos llevan tiempo y dinero, finalmente hay que poner los cambios accesibles a todos de forma gratuita. Cabe además decir que pusimos a MINIX en la licencia de Berkeley cuando los editores dejaron de tener los derechos sobre el sistema en el año 2000. Después de eso, hubo un largo silencio hasta que leí en los medios que se estaba corriendo una versión modificada de MINIX en la mayoría de las computadoras x86, dentro de las profundidades de los chips de Intel. Esto fue una gran sorpresa y no me importó, por supuesto, así como no esperaba ningún pago o retribución pues eso no era siquiera requerido. Incluso no hay siquiera una sugerencia al respecto en la licencia del uso del sistema.
Lo único que hubiese querido es que después de finalizar este proyecto, se me hubiese informado de que Intel lo usaría en sus chips, quizás como una cortesía. Ahora MINIX es probablemente el sistema operativo más usado en las máquinas x86. Esto hubiese sido lo correcto aunque claro, no se requería de ninguna forma […]”.
Usted tiene que pensar que hubiese sido un “buen gesto” (de Intel) el contribuir en algo al proyecto, pero por supuesto, Intel ha tenido todo el asunto en silencio. Parece ser un esquema de seguridad por oscuridad. Quizás fue una manera de evitar toda crítica después de que pusieron el código en los procesadores pues éste está protegido criptográficamente y que se requiere entonces comprar el software de Intel para trabajar con el mismo”.
Pero más allá de todo lo que menciona Tanenbaum, se tiene un procesador completo, con un núcleo x86 de 32 bits, corriendo todo un sistema operativo como un sistema administrador para el procesador central, cosa impensable en los primeros días de MINIX. Es sorprendente cómo ha progresado y desarrollado el código abierto debido principalmente a las mejoras en la comunicación, porque son éstas quien han hecho posible estos avances.