Restaurar ordenadores antiguos, recuperar software que se creía perdido y documentar todo el proceso es una misión titánica por donde se la mire. Los esfuerzos de preservación son cada vez más complejos, y demandan hasta la última pizca de creatividad. Así nos encontramos con CROOK, un sistema operativo de origen polaco que fue rescatado de cinco cintas magnéticas tras una dura batalla con viejos estándares de codificación, hardware Arduino, y una enorme dosis de Python.
La informática al otro lado del muro debía luchar con sus propios demonios. La mayoría de los sistemas disponibles eran copias de ordenadores occidentales que quebraban un estándar tras otro, y los diseños locales quedaban atrapados en conflictos burocráticos o disputas políticas. Lamentablemente, quienes pagamos las consecuencias de eso somos nosotros, porque a la hora de rescatar y preservar dichas plataformas, se vive algo muy cercano a una pesadilla. Imaginen todos los diseños que fueron consumidos por el tiempo, y los programas que se han perdido. Horas y horas de código escrito por expertos de la época. Sin copias, sin respaldos. Por suerte, lo que tenemos para compartir hoy es una historia con final feliz: La resurrección de CROOK, un sistema operativo polaco.
Un equipo formado por el Museo dell’Informatica Funzionante y el portal Mera400.pl logró recuperar a CROOK tras extraer el contenido de cinco cintas magnéticas. La historia se remonta a mayo de 2015, cuando el programador Jakub Filipowicz comenzó su trabajo en un emulador del ordenador MERA-400, la «reimplementación» del mini ordenador K-202 diseñado por el ingeniero polaco Jacek Karpiński a principios de los ‘70. El problema de Filipowicz era que no podía acceder a una copia de CROOK, pero al descubrir las cinco cintas en el Museo de Tecnología de Varsovia, se las envió a Andrea «Mancausoft» Milazzo para que trate de leerlas. En ese punto surgieron otros inconvenientes: Las cintas fueron grabadas en 1990, y su estado era excelente, pero el «header» había sido escrito en 800 bits por pulgada NRZ (Non-Return-to-Zero), provocando una pausa en la unidad IBM 9348 del museo italiano, que sólo lee 1.600 / 3.250 BPI.
Al principio trataron de obtener los datos directamente del cabezal de lectura con la ayuda de un Arduino Mega, y después pasaron a un analizador lógico de dieciséis canales, con el software escrito en Python por el propio Filipowicz. Este último paso fue el más elegante de todos, ya que el programa puede leer cualquier cinta magnética, independientemente de los bits por segundo, la velocidad, y la codificación. Con varios ajustes adicionales, fueron capaces de extraer todo el contenido sin errores. ¿Qué encontraron? Cuatro versiones diferentes de CROOK, el sistema operativo original SOK-1 del K-202, un simulador 8080, BASIC para K-202/MERA-400, una imagen intacta de CROOK-3, y una gigantesca cantidad de código fuente. En resumen: Era suficiente con una copia de CROOK, pero rescataron todo su proceso de desarrollo.