Semana muy especial, y día muy especial este 20 de julio tras celebrarse 42 años de la llegada del hombre a la Luna. Ni siquiera había nacido pero siempre recuerdo las anécdotas que me cuenta mi viejo y lo más simbólico que tengo de esa hazaña es una revista de 1969 que viene guardando mi viejo (ahora ya es mía je), muchos seguro la han de conocer porque en esa época era bastante popular. Esta revista se llama Siete Días como podrán ver en la foto que dejo, a pesar de los años se encuentra en buen estado y es casi una reliquia para mí.
Por esos días todos estaban maravillados por el hecho de poner a tres personas en el objeto que habíamos visto por miles de años, todos sabían los riesgos y la “gran tecnología” que había detrás. Pero, hoy en día comparando un poco y viendo más a fondo los detalles, sabemos que la computadora que hizo posible que el hombre pueda pisar la Luna no era tan increíble. La computadora Apollo Guidance Computer (AGC) original de la Apollo costó más de us$ 150.000. No tenía una unidad de disco para almacenar programas y sólo contaba con 74 kilobytes de memoria que habían sido literalmente cableados, y algo así como 4 Kb de algo similar al tipo de memoria RAM.
Tuvo bajo su control los 13.000 kg de la nave espacial, en órbita a 3.500 kilómetros por hora alrededor de la Luna, tomó suelo de forma segura a metros de una ubicación determinada, y los guió de nuevo al retornar al encuentro con la nave de mando en órbita lunar. El sistema debía reducir al mínimo el consumo de combustible debido a que la nave espacial sólo contenía suficiente combustible para un intento de aterrizaje.
Cada misión Apollo incluyó dos ordenadores AGC, uno en el Módulo de Mando y una en el módulo lunar. Cuando fueron los 40 años del aniversario, gracias a la colaboración de Google y de la NASA se publicó el código fuente del módulo de mando y del módulo lunar de la misión. El código fuente es el de los programas del Módulo de Comandos (comanche054) y Módulo Lunar (Luminary099) como les dije.
El software de control fue escrito en un lenguaje de alto nivel llamado MAC (MIT Algebraic Compiler, ya que fue desarrollado en el Instituto Tecnológico de Massachussetts). El código transcrito ahora se encuentra en los repositorios de Google Code y se puede ejecutar sobre Virtual AGC y AGS, un emulador del AGC y que puede correr sobre Linux, MacOSX y Windows entre otros.
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.
Bastante increíble todo, viendo el tipo de computadoras que tenemos hoy en día o los mismos teléfonos móviles, parece una joda que con ese tipo de tecnología se puedan haber realizado viajes espaciales.
Fuentes: