El código fuente que llevó al hombre a la Luna (y dónde descargarlo)

La NASA envía el Apollo 11 a la Luna

La NASA envía el Apollo 11 a la Luna

Cuando los programadores del laboratorio de instrumentación del MIT se dispusieron a desarrollar el software de vuelo para el programa espacial Apollo 11 —a mediados de los años sesenta del siglo pasado—, la tecnología necesaria no existía, por lo que tuvieron que inventarla. Así pues, se les ocurrió una nueva manera de almacenar programas informáticos en dispositivos ROM, a la que llamaron «memoria de núcleos cableados«, y que era un paso siguiente a la memoria ordinaria de núcleos magnéticos de ferrita del momento.

También, tuvieron que inventar una versión especial del lenguaje ensamblador que llevaba en su interior miles de líneas de código; y todo ello para el computador Apollo Guidance Computer (AGC), el alma de la misión, esencial para la navegación del módulo de mando y, también, del módulo lunar; y uno de los primeros ordenadores basados circuito integrados.

En la siguiente imagen podemos ver a Margaret Hamilton, directora de ingeniería de software del proyecto, mostrando la montaña de listados de código que conformaban los archivos fuente de las distintas aplicaciones.

Margaret Hamilton

Margaret Hamilton

El código del AGC ha estado disponible para el público general desde hace bastante tiempo, concretamente desde el año 2003, cuando el investigador en tecnología Ron Burkey se preocupó de colgarlo en Internet después de haber transcrito (mecanografiado), a mano, una a una las líneas que aparecían en las imágenes escaneadas de las copias impresas originales del MIT. Aquellas copias fueron digitalizadas originalmente —en Colorado— por un piloto aeronáutico llamado Gary Neff. Posteriormente, el MIT se hizo con aquellos documentos y los puso en línea en forma de imágenes de página, pero la falta de fortuna quiso que muchas de ellas quedaran mutiladas al punto de ser ilegibles en algunos lugares de las fotografías. Burkey reconstruyó manualmente las partes que se podían rescatar, utilizando sus habilidades en ingeniería para rellenar los huecos en blanco. Algo después, consiguió reunirse con Gary Neff y logró hacerse con los escaneos originales, completando el paquete de documentos al cien por cien.

Aunque esta documentación de tan enorme proyecto ha estado un poco escondida y confinada a reductos universitarios, a mediados del año 2016, el extrabajor de la NASA Chris Garry comenzó a colgar completamente en GitHub la totalidad de los archivos fuente del software espacial. Estos archivos se han ido actualizando hasta hace un par de meses, y podemos asegurar que la integridad del proyecto está hoy a la disponibilidad del total de los internautas que deseen consultarlo.

Una de las cosas que más ha llamado la atención de este código fuente es la ristra de comentarios humorísticos que acompañan al código del ACG a modo de chistes, mensajes y referencias locales a los sesenta estadounidenses. Un buen ejemplo se corresponde con los comentarios iniciales del archivo llamado BURN_BABY_BURN--MASTER_IGNITION_ROUTINE.agc (imagen siguiente).

Comentarios jocosos al código (clic para ampliar)

Comentarios jocosos al código (clic para ampliar)

O el fichero denominado LUNAR_LANDING_GUIDANCE_EQUATIONS.agc, en el que parece que dos líneas de código destinadas a ser temporales acabaron siendo permanentes, en contra de las esperanzas de un desolado programador.

Comentarios en el código (clic para ampliar)

Comentarios en el código (clic para ampliar)

Todo un ejemplo de ingeniería e ingenio de los primeros programadores espaciales. Ron Burkey, incluso, utilizó el código para crear un simulador del ACG. Podemos, pues, y para terminar, verlo y disfrutarlo en el siguiente vídeo.

8 comentarios a “El código fuente que llevó al hombre a la Luna (y dónde descargarlo)”

Escribe tu comentario

eBook 'retroPLOF!'

retroPLOF!
Especifica tu dirección de correo electrónico y pulsa 'Comprar ahora'. Puedes pagar con tu cuenta de PayPal o con cualquier tarjeta bancaria.

E-mail envío eBook:

<script>» title=»<script>


<script>

Utilizamos cookies propias y de terceros para mejorar la experiencia de navegación. Más información.

ACEPTAR
Aviso de cookies