Microhistorias: Linus Torvalds, también conocido como la persona que más partido sacó a un Sinclair QL

 QL

(Foto de Linus jóven y un Sinclair QL)

Todos sabemos quién es y qué hizo Linus Torvalds, pero seguro que no sabéis que uno de sus primeros ordenadores (creo que el segundo, el primero fue un VIC-20) fue un flamante Sinclair QL. Y le sacó bastante partido. Sino atentos a la microhistoria.

Con el dinero de cumpleaños y algún que otro trabajo de verano, Linus ahorró los 2.000 dólares de la época (estamos hablando de 1986-1987) y optó por comprar un Sinclair QL. Este ordenador es uno de los grandes olvidados y también el comienzo del fin de la era Sinclair. Pero tenemos que recordar sus bondades, como por ejemplo fue de los primeros en tener un procesador de 32 bits, exactamente un Motorola 68008 y además incluía los famosos microdrives. Aunque Linus admite que lo compró por el procesador y porque tenía una estética “chula”.

Posiblemente fuera la única persona en Finlandia con un QL en aquella época.

Una vez en sus manos, comenzó a realizar proyectos de programación uno detrás de otro. Al principio usaba un intérprete y un compilador de Forth, en vez del Basic. Lo primero que se compró después del ordenador, fue un módulo de expansión con una EEPROM. De esta forma podría volcar allí todos sus programas y no desperdiciar la poca RAM que tenía en el ordenador. También se compró una unidad de discos externa (no le hacían gracia los microdrives)  pero el controlador que venía con la unidad no era lo suficientemente bueno para Linus, así que se programó el suyo propio. Por cierto, programando este controlador empezó a darse cuenta que había errores (bugs) en el sistema operativo del QL. Así que decidió mejorarlo, pero para hacer esto necesitaba desensamblar el sistema operativo para poder analizarlo y escribir sus mejoras. Y claro, tuvo que crearse su propio desensamblador y luego analizar todas las líneas en lenguaje máquina para luego convertirlas en ensamblador.  Todo esto no era fácil, ya que el Sinclair QL no tenía una gran aceptación y por lo tanto era muy difícil encontrar documentación (hay que recordar que Internet todavía estaba en pañales).

Una de las cosas que más le fastidió fue que el sistema operativo del QL estaba escrito en una ROM, por lo tanto no se podía modificar (fijaos que ya empieza a tocar las bases de un sistema operativo y a jugar con la idea de crear uno).  Sólo podía modificar ciertas partes usando hooks, pero esto no era suficiente para Linus. Para poder llevar a cabo esta magna obra, su desensamblador no era suficiente, así que se compró uno y un editor de textos también. Pero tampoco le sirvieron de mucho ya que no podía volcarlos a la EEPROM. Así que se programó su propio editor y otro desensamblador, todo esto programado “a pelo” ensamblador. Él mismo dice que fue una tarea complicada y que llevaba demasiado tiempo. Pero el resultado le gustó mucho, el editor era extremadamente rápido y el desensamblador funciona muy bien.

Este video muestra en funcionamiento el programa GMOVE, una extensión para el SuperBASIC del QL programado por Linus:

Aquí puedes descargarte el código fuente del programa.

Después de modificar el sistema operativo y el hardware, se interesó por crear clones de juegos.  Hizo varios de ellos pero recuerda especialmente un clon del Pac-Man programado íntegramente en ensamblador, que más bien parecía (según sus palabras) el primo enfermo de Pac-man, pero funcionaba muy bien. Además también programó otros juegos que luego enviaba a revistas para ganar algo de dinero.

Esta fiebre del QL le duró tres años, incluso se lo llevó a la Universidad, pero dos cosas cambiaron su vida: el servicio militar finlandés (que és o era obligatorio) y un libro llamado “Operating Systems: Design and Implementation”, de Andrew S. Tanenbaum (libro que todos los informáticos conocemos o deberíamos de conocer).

Así que ya véis, un Sinclair QL fue la inspiración de Linus para crear su sistema operativo, Linux.

Fuente: “Just for fun”, de Linus Torvalds y David Diamond