La regla de diseño de Castalia DOS es brutal en su sencillez: cuando la máquina enciende, abre en CASTALIA y en nada más. Sin «FreeDOS kernel», sin «Open Watcom», sin muro de licencias desfilando. Sonaba a cambiar tres cadenas de texto. Acabó siendo reconstruir un kernel.
El problema: strings dentro de una imagen empaquetada
El KERNEL.SYS de serie imprime su sign-on y un bloque de licencia incondicionalmente, desde una imagen comprimida (UPX) cuyas cadenas no se pueden editar in situ. Un hex-edit corrompe el checksum; descomprimir y recomprimir a mano es fragilísimo. La única vía honesta era la puerta grande: reconstruir el kernel desde su propia fuente publicada, con un único cambio marcado en la rutina de sign-on, y enviarlo sin comprimir.
Legal por construcción
FreeDOS permite explícitamente este white-labeling, y nosotros lo hacemos a cara descubierta: su copyright y su licencia viajan en la fuente incluida en third_party/, en el árbol de licencias y en la propia pantalla About del sistema. La honestidad no era negociable: el banner dice CASTALIA DOS, y el About dice «Built on FreeDOS (GPLv2+)». Las dos cosas son verdad.
Es un cambio de tres líneas que solo se puede hacer recompilando doscientas mil.
Y en cada commit, un disco arranca
La parte que me quita el sueño no es compilar un kernel de 1994 con NASM y Open Watcom en 2026 —eso, sorprendentemente, funciona a la primera si respetas el makefile. Es no romperlo después. Por eso la CI ensambla un disquete de 1.44 MB arrancable en cada commit y lo arranca DE VERDAD en un emulador headless, comprobando que llega a AUTOEXEC.BAT en frío. Un DOS que no arranca no es un DOS.

D. ABELLÁN · FOUNDER · PRINCETON, IL · 2026.07.05