El hilo invisible

Margaret Hamilton · 1936–2026

El hilo invisible.

El código que llevó a la humanidad a la Luna. Y mucho más lejos.

El hilo invisible.

Mare Tranquillitatis

Mar de la Tranquilidad

Aquí alunizó el Apolo 11, el 20 de julio de 1969.

Lugar de alunizaje del Apolo 11, 0,67° N, 23,47° E. Situado con los datos de libración de la NASA para esta misma vista de la Luna.

Mare Tranquillitatis

Mar de la Tranquilidad

Aquí alunizó el Apolo 11, el 20 de julio de 1969.

Lugar de alunizaje del Apolo 11, 0,67° N, 23,47° E. Situado con los datos de libración de la NASA para esta misma vista de la Luna.

Una llanura lunar gris bajo una luz rasante, salpicada de cráteres y surcos finos, que se curva hacia un horizonte oscuro. En una esquina se recorta un propulsor del módulo lunar.
La aproximación al lugar de alunizaje, en el suroeste del Mar de la Tranquilidad, fotografiada desde el módulo lunar en órbita, el 20 de julio de 1969. NASA, AS11-37-5437.

La Luna. NASA Scientific Visualization Studio, a partir de datos del Lunar Reconnaissance Orbiter.

02 · Fuimos a la Luna

En 1969, la humanidad llegó a la Luna.

El viaje dependía de algo que casi nadie podía ver.

Pasa por el dibujo para nombrar sus piezas

La Tierra, fotografiada desde el Apolo 11 camino de la Luna, el 17 de julio de 1969. NASA, AS11-36-5355.

La Tierra como una pequeña esfera luminosa en el espacio negro, con África y Europa a la vista.. Apolo 11 · perfil de misión · sin escala.
Margaret Hamilton en 1969, sonriente junto a una pila de listados de programa impresos tan alta como ella.

Laboratorio de Instrumentación del MIT, 1969. A su lado, los listados del software de vuelo del Apolo. Fotografía: Draper Laboratory.

03 · Margaret Hamilton

Esta es Margaret Hamilton.

Dirigió a los equipos que crearon el software de vuelo de las naves Apolo.

El pie de foto original

Detalle: Margaret Hamilton sonríe junto a lo alto de la pila de listados encuadernados.

“Here, Margaret is shown standing beside listings of the software developed by her and the team she was in charge of, the LM [lunar module] and CM [command module] on-board flight software team.”

Traducción propia: «Aquí aparece Margaret junto a los listados del software que desarrollaron ella y el equipo que dirigía, el equipo del software de vuelo de a bordo del LM [módulo lunar] y del CM [módulo de mando]».

Pie escrito para la fotografía promocional del Laboratorio de Instrumentación del MIT, 1969, según lo recordó Margaret Hamilton para MIT News (2016).

Esta es Margaret Hamilton.

Cada volumen, listados impresos del software de vuelo del módulo lunar y del módulo de mando.

04 · Una disciplina sin nombre

El software empezaba a ser imprescindible.

Y aún tenía que ganarse que lo tomaran en serio.

Hamilton empezó a llamarlo con un nombre que lo ponía a la altura de cualquier otra ingeniería:

Ingeniería del software.

Ingeniería del software.

Por qué importaba el nombre

«Empecé a usar el término “ingeniería del software” para distinguirla del hardware y de otras ingenierías», recordaba Hamilton. «Cuando empecé a usar la expresión, a la gente le parecía bastante graciosa».

El nombre reclamaba para el software el rango de disciplina de ingeniería dentro del sistema completo, en una época en la que a menudo se trataba como un añadido al hardware.

«Con el tiempo, el software se ganó, como no podía ser de otra manera, el mismo respeto que cualquier otra disciplina».

Citas: Margaret Hamilton a El País (2018), recogidas por MIT News (2026). Traducción propia.

Líneas y archivos reales de Luminary 099, el software del módulo lunar del Apolo 11. Agruparlos en cuatro bloques es una decisión editorial.

05 · Código tejido en memoria

Parte del software que nos llevó a la Luna se tejió a mano.

Pasa el hilo a través del núcleo, o por fuera.

Al conmutar los núcleos uno a uno, el hilo responde: 1 donde está enhebrado, 0 donde no.

Los equipos del Laboratorio de Instrumentación del MIT escribían los programas. En Raytheon, operarias especializadas, en su mayoría mujeres, los tejían en cuerda.

Parte del software que nos llevó a la Luna se tejió a mano.
Un núcleo magnético en forma de anillo y un hilo de cobre. Si el hilo pasa por dentro del anillo, lee un 1; si lo rodea por fuera, un 0.al amplificador de lectura

A través del núcleo, el hilo lee un 1.

El hilo lee 101100

Toca un núcleo para volver a enhebrarlo.

Un módulo de memoria de cuerda de núcleos: un marco alargado lleno de filas de diminutos núcleos de ferrita y cable de cobre tejido.
Módulo de memoria de cuerda de núcleos del ordenador de guiado del Apolo. Fotografía: NASA.
El mismo módulo, dibujado: ilustración a partir de la fotografía de NASA. Simplificada, sin escala.

Ilustración conceptual. En las cuerdas del Apolo, hasta 192 hilos de lectura pasaban por dentro o por fuera de cada núcleo; al conmutar un núcleo, cada hilo enhebrado en él recibía un pulso.

06 · ¿Y si…?

¿Y si algo sale mal?

En el simulador del MIT, Lauren, la hija pequeña de Hamilton, puso en marcha el P01, el programa previo al lanzamiento, en pleno vuelo simulado.

Al quinto día del Apolo 8, el astronauta Jim Lovell cometió el mismo desliz. Desde el Control de Misión guiaron a la tripulación para restablecer la plataforma de guiado.

Se preparó para errores que otros creían imposibles.

Per aspera, ad astra: Por el camino difícil, hasta las estrellas

Vuelo simulado · camino de la Luna

Cronología de la misión · conceptualEn la plataformaLanzamientoRumbo a la LunaÓrbita lunarEl P01 va aquíP01La nave, en vueloReferencia de orientación?P01

Orientación conocida

El P01 prepara una nave que está en la plataforma. Arrancado en vuelo, puede borrar lo que el ordenador sabe de su orientación.

Reconstrucción conceptual. No es la interfaz del Apolo.

Pruébalo

Lo que dicen las fuentes

Según el relato de Hamilton, quiso que el software impidiera seleccionar el P01 en vuelo. Le respondieron que los astronautas no cometerían ese error («estaban entrenados para ser perfectos») y, en su lugar, se añadió una nota a la documentación: no seleccionar el P01 durante el vuelo.

El diario de vuelo del Apolo 8 de la NASA recoge el desliz. A las 106:27 de misión, Lovell informó de «un Programa 01 y una luz de “No Attitude”»; más tarde dijo: «Fue culpa mía». Hubo que realinear la plataforma de guiado; el Control de Misión confirmó que el vector de estado estaba bien, y se reinicializó una matriz de navegación que compartía memoria con el P01.

Dónde difieren los relatos

Algunas versiones dicen que se perdieron todos los datos de navegación; el diario de vuelo recoge que el vector de estado seguía intacto.

Los relatos difieren sobre si la protección se prohibió o simplemente se descartó, y sobre la edad exacta de Lauren.

Fuentes: Apollo 8 Flight Journal, día 5 (NASA); relatos de Hamilton citados por Wired (2015) y otros. Citas traducidas.

07 · El descenso final

El descenso final.

El software estaba a punto de afrontar su mayor prueba.

El Eagle en órbita lunar, fotografiado desde el Columbia tras la separación, el 20 de julio de 1969. NASA, AS11-44-6581.

Módulo lunar y superficie: ilustración a partir de documentación de NASA. No se muestra telemetría.

08 · 1202

1202

Apolo 11 · Descenso lunar · 20 de julio de 1969

Alarma de programa · Desbordamiento del ejecutivo

1202: ningún core set libre, así que no hay sitio para empezar otra tarea.

  1. Desbordamiento detectado
  2. Reinicio
  3. Tareas esenciales restablecidas
  4. Tareas del radar no reanudadas

Calma. El ordenador organizaba su trabajo en tareas, cada una alojada en uno de siete core sets. Un core set es un pequeño bloque de memoria que una tarea necesita mientras se ejecuta.

El ordenador organizaba su trabajo en tareas, cada una alojada en uno de siete core sets.

Un core set es un pequeño bloque de memoria que una tarea necesita mientras se ejecuta.

Llegaban tareas del radar que nadie necesitaba, hasta ocupar todos los core sets.

Sin sitio para la siguiente tarea, el ordenador lanzó la alarma 1202.

Se reinició y recuperó solo lo que importaba.

El guiado del descenso y la pantalla se reanudaron cerca de donde se habían detenido.

El ordenador se recuperó porque estaba diseñado para ello. La decisión de seguir fue humana.

En Houston, el oficial de guiado Steve Bales concluyó que la alarma no era un riesgo. Charlie Duke, el CAPCOM: «We’re Go on that alarm».

Diagrama de siete core sets. En calma, el guiado del descenso y la pantalla ocupan uno cada uno. En la sobrecarga, las tareas del radar ocupan el resto y una tarea más no tiene dónde ir. En la recuperación se vacía todo y solo vuelven el guiado y la pantalla. Con el GO, continúa un único camino.Core sets · 7GuiadoPantallaTareas del radarGuiadoPantallaTareas del radarTareas del radarTareas del radarTareas del radarTareas del radarTareas del radar

Diagrama conceptual. Grupos de tareas simplificados; solo los siete core sets son históricos. Sin datos de vuelo.

Cómo funcionó de verdad la recuperación

El ordenador de guiado del Apolo organizaba su trabajo en tareas. Cada tarea necesitaba uno de siete pequeños bloques de memoria, los core sets; algunas, además, una de cinco áreas de trabajo más grandes.

Durante el descenso, unos interruptores del radar mal configurados hicieron que el ordenador programara una y otra vez tareas del radar de encuentro para datos que en realidad no existían. Llenaron todos los core sets. Sin sitio para la siguiente tarea, saltó la alarma 1202. Más tarde, una 1201 indicó que también se habían agotado las áreas de trabajo.

El software estaba preparado para esto. Se reinició, restableció los programas esenciales cerca del punto en el que se habían detenido (guiar el motor de descenso, mantener la pantalla) y dejó atrás las tareas del radar. El MIT había probado ese reinicio a fondo.

El diseño fue obra de muchas personas del Laboratorio de Instrumentación del MIT. La decisión de continuar correspondió al Control de Misión.

Fuente: Peter Adler, «Apollo 11 Program Alarms», Apollo 11 Lunar Surface Journal, NASA.

Una llanura lunar gris y plana, salpicada de pequeñas rocas, bajo un cielo negro, vista desde la ventanilla del módulo lunar.

09 · Alunizaje

The Eagle has landed.

Neil Armstrong · «El Águila ha aterrizado» · 20 de julio de 1969

The Eagle has landed.

La superficie junto al lugar de alunizaje, vista desde la ventanilla derecha del Eagle. NASA, AS11-37-5458.

No era el final de la historia de Margaret Hamilton.

10A · Más allá de la Luna

Luminary 099 · página 1107

NEXTCORECAFCOREINCADSLOCCTRCCSEXECTEM2TCFNOVAC3LXCHEXECTEM1CAQTCBAILOUT1# NO CORE SETS AVAILABLE.OCT1202
Del software del módulo lunar del Apolo 11: la rutina que lanza la alarma 1202 cuando no queda ningún core set libre. Transcrita del listado del MIT Museum; dominio público.

Su trabajo no terminó en la Luna.

En 1976 fundó Higher Order Software, basada en la prevención de errores y la tolerancia a fallos.

Una década después llegaron Hamilton Technologies y su Universal Systems Language, una forma de diseñar sistemas complejos que antepone la prevención de errores.

«Su arquitectura de software hizo posibles grandes saltos para la humanidad».
Mención de la Medalla Presidencial de la Libertad, 22 de noviembre de 2016 (traducción propia)
Margaret Hamilton, recostada en un asiento del módulo de mando, sonríe mirando atrás mientras alcanza el panel de interruptores.
En una maqueta del módulo de mando del Apolo. Cambridge (Massachusetts), 1969.

10 · In memoriam

«No había otra opción que ser pioneros».

Margaret Hamilton, MIT News, 2009Traducción propia. Original: “There was no choice but to be pioneers.”

Gracias, Margaret.

1936–2026