TempleOS: una rareza de sistema operativo, tan denostado como revolucionario

TempleOS: una rareza de sistema operativo, tan denostado como revolucionario
Sin comentarios

TempleOS es, posiblemente, el sistema operativo con más fans que, sin embargo, no lo usan en su día a día: eso no les ha impedido reconocer los méritos tecnológicos de este particular proyecto unipersonal. También es uno de los pocos SO modernos de dominio público.

De Terry A. Davis, su creador, se dice que podría haber sido otro Steve Jobs si no hubiera sido por su enfermedad: perdió su trabajo en 1996 (antes de cumplir los 30), cuando empezó a sufrir esquizofrenia y a experimentar delirios místicos y relacionados con extraterrestres y teorías de la conspiración.

Tras unos años, en 2004, David comenzó el que podríamos considerar el proyecto de su vida, un sistema operativo diseñado según "instrucciones de Dios" para "convertirse en su Templo". Durante una década —durante la cual fue bautizado como 'J Operating System', 'LoseThos', 'SparrowOS' y, finalmente, 'TempleOS'— Davis dedicó su tiempo a escribir más de 100.000 líneas de código con las que logró dar forma a su muy particular idea de lo que debía ser un sistema operativo.

"TempleOS es un testimonio de la dedicación y la pasión de un hombre que muestra su destreza tecnológica. No tiene por qué ser nada más"

Davis Moriría en 2018 atropellado por un tren en Oregón, tras haber vivido unos meses en la calle (durante los cuales numerosos fans se acercaron para proporcionarle suministros). Pero, para entonces, había finalizado TempleOS y reunido una activa comunidad en torno al mismo.

"Davis era claramente un programador talentoso – escribir un sistema operativo completo no es poca cosa – y fue triste verlo afectado por su enfermedad mental", escribieron tras su muerte en OSnews, uno de los numerosos portales y foros tecnológicos sitios que le habían terminado 'baneando' a causa de sus diatribas —entre lo agresivo y lo incomprensible—.

Pero, ¿qué hizo que un proyecto tan… extraño —y de vocación tan minoritaria— como TempleOS terminara teniendo tal repercusión?

La justificación religiosa de TempleOS no apareció hasta que el proyecto adoptó dicho nombre: antes, había alegado una motivación meramente lúdica
TempleOS
Captura de la versión definitiva de TempleOS 1.0.

TempleOS es un sistema operativo de 64 bits, multi-núcleo y con soporte para ratón… pero también con gráficos de 16 colores, resolución 640x480 y una interfaz basada mayoritariamente en texto, sin soporte para tarjetas de sonido ni redes.

Puede chocarnos saber que TempleOS no contempla los permisos de archivo (o no tanto, pues su enfoque es estrictamente monousuario), y que se ejecuta en el llamado 'anillo 0', es decir, interactuando directamente con el hardware. En lo que respecta a la seguridad, esto no resulta demasiado recomendable —siendo diplomáticos—, pero es una elección de diseño muy deliberada por parte de su creador:

"Es divertido tener acceso a todo. Cuando era adolescente, tenía un libro, "Mapping the Commodore 64", que contaba lo que hacía cada ubicación en la memoria. Me gustaba copiar la ROM a la RAM y hurgar en las variables de la ROM BASIC. Todas accedían directamente a los puertos de hardware".

Davis utilizaba la siguiente analogía:

  • "Linux es un semirremolque con 20 marchas para operar".

  • "Windows es más como un coche".

  • "TempleOS es como una moto. Si te inclinas demasiado, te caerás. No hagas eso".

Cuando Torvalds creó Linux, sólo tuvo que crear un kernel, puesto que todos los demás elementos del sistema operativo (shell, aplicaciones, entorno gráfico) ya estaban disponibles para otros Unix, y bastaba con recompilarlos para que funcionaran en Linux. Este no fue el caso de David y TempleOS.

El lenguaje: HolyC

De hecho, Davis se propuso crear, además de todo eso, su propio lenguaje de programación: C+ (que no C++), luego renombrado HolyC (que se pronuncia igual que 'Holy See', 'Santa Sede' en inglés). Pese a su nombre, el parecido entre C y HolyC es bastante superficial, algo así como el existente entre Java y JavaScript.

Y las diferencias no son únicamente de sintaxis: HolyC permite hacer algunas cosas que no están a nuestro alcance cuando usamos C, como el hecho de poder compilar en tiempo de ejecución desde el código cada elemento de software de TempleOS (menos el kernel).

Además, HolyC cuenta con los siguientes tipos numéricos: U0, I8, U8, I16, U16, I32, U32, I64, U64, y F64. Las letras indican Unsigned, Integer y Float, y los números el número de bits:** si te sorprende la existencia de 'U0', piensa que es algo similar al '!' de Rust**.

Por otra parte, un aspecto significativo de templeOS radica en que el shell del sistema ejerce como intérprete para el código de HolyC, permitiéndonos cargar un programa mediante un #include desde el shell y, a continuación, llamando desde éste a las funciones de dicho programa.

Otro dato: si el código compilado incluye una directiva #help_index, el texto de la misma se incluirá de forma inmediata en la documentación de TempleOS: bastará con compilarlo en tiempo de ejecución, como dijimos antes, para que la ayuda del programa esté disponible con sólo pulsar F1.

"Tal vez deberíamos considerar TempleOS como un 'sistema operativo de investigación': [una muestra de] lo que se puede lograr si uno no se deja atrapar por el pensamiento establecido, la compatibilidad con versiones anteriores o las demandas del mercado" (Codernotes.com)

El hipertexto: DolDoc

Coldoc

Pero quizá la característica más notable de TempleOS sea su omnipresente sistema de hipertexto, DolDoc; éste constituye la base de su shell, de su editor de texto, de su explorador de archivos, de su sistema de documentación, etc. ¿HTML, XML, JSON, shell scripts…? Todos ellos quedan sustituidos, en TempleOS, por DolDoc.

¿Y que nos permite hacer DolDoc? Pues desde insertar imágenes y mallas 3D directamente dentro de un documento a introducir macros; esto es, comandos que se ejecutan al hacer clic en hipervínculos, permitiéndonos abrir otros documentos o programas, o crear menús. ¿Introducir hipervínculos y diagramas de flujo dentro de los comentarios del código de HolyC? ¡También es posible!

Si pulsamos Ctrl+R, se abrirá un editor de recursos que nos permitirá dibujar sprites e insertarlos directamente en un documento. Si, por el contrario, pulsamos Ctrl+T, podremos visualizar en texto plano el código del documento DolDoc que tengamos abierto en ese momento.

Vía | Harrison Totty & Jack Whitman & Coders Notes

Temas
Inicio