Menu
in

El código fuente del Apollo 11 a tu disposición

Con esto del 40 aniversario de la llegada del hombre a la Luna no hacen más que sacar sorpresas relacionadas con el evento. Gracias a la colaboración de Google y de la NASA se ha publicado el código fuente del módulo de mando y del módulo lunar de la misión Apollo 11. Tienes la posibilidad de comprobar cómo se hacían las cosas antes. No es que vaya a acabar con la crisis o con el cáncer pero como curiosidad tecnológica no tiene precio.

La Luna está de moda, de eso no cabe la menor duda. El bombardeo constante por parte de los medios no admite réplica, ni las exigencias del guión tampoco, por tanto, aquí nos encontramos de nuevo ofreciendo una curiosa información referida a la misión del Apollo 11. Se trata de la publicación del código fuente de los programas del Módulo de Comandos(comanche054) y Módulo Lunar (Luminary099) utilizados en la famosa nave que todos estamos hartos de nombrar ya. Los más graciosos seguro que esperan ver algo de Microsoft oculto entre las líneas de código pero la prueba de que Bill no metió las manos en el diseño la tenemos en el hecho de que la misión concluyó con éxito.

En eso y en que el código ha sido lanzado de manera pública para que cualquiera pueda verlo sin cobrar por ello. El código transcrito ahora se encuentra en los repositorios de Google Code y se puede ejecutar sobre Virtual AGC (Apollo Guidance Computer), un emulador del AGC que veréis en el video y que puede correr sobre Linux, MacOSX y Windows entre otros. La computadora y su software fueron desarrollados por el Laboratorio de Instrumentación de la MIT, también conocido como los Draper Labs.

Por restricciones de memoria no convenía escribir el código directamente en lenguaje ensamblador del AGC, razón por la cual se diseñó un intérprete que funcionaba algo más lento pero cumplía con las condiciones especiales de estas máquinas. El código interpretado contenía instrucciones para manejar vectores y funciones trigonométricas, algo de crucial importancia en sistemas de este tipo.

Otra peculiaridad de este código fuente es que se grababa como firmware y sólo se le podían realizar modificaciones en caliente, aunque eso sí, las variaciones se podían ejecutar desde la Tierra y desde la propia nave por mano de los astronautas si lo consideraban necesario. Si alguno de vosotros entiende el lenguaje ensamblador de procesadores antiguos como el MOS6502 (Atari, Commodore, Apple) o Z80 (Spectrum, MSX) no tendrán problemas en entender el del Apollo.

Código fuente del Módulo de Comandos (302 líneas)

Código fuente del Módulo Lunar (1.474 líneas)

Este código no tiene mucha utilidad a día de hoy pero resulta muy interesante observar cómo se programaba en aquellos sistemas considerados críticos y de alto riesgo. La calidad del código debía estar fuera de toda duda y depurado hasta el extremo. Fijarse en la limpieza conceptual del diseño y en la optimización de las instrucciones. Apenas necesitan 300 líneas para el Módulo de Comandos y 1400 líneas para el Módulo Lunar. Cualquier error hubiera sido catastrófico para la mision, sin embargo, la prueba de que todo se hizo correctamente la tenemos hoy en forma de 40 aniversario de la llegada del hombre a la Luna. La digitalización en PDF de todos los códigos la puedes encontrar haciendo click aquí.

Un pequeño paso para las noticias de Neoteo, pero un gran paso para el código fuente público.

Escrito por imported_Kir

Leave a Reply