☰ Menu

06.10.2026 · Signal Titans Editorial

Anneaux de cuivre et files de priorité : comment Margaret Hamilton a conçu les garde-fous logiciels d’Apollo

Comment Margaret Hamilton a conçu des logiciels de vol résilients pour Apollo, posant les bases de la tolérance aux pannes en temps réel.

Une illustration éditoriale montrant des fils de cuivre tissés à travers des anneaux magnétiques éclairés par une lumière sarcelle sur un fond bleu foncé.

À l'intérieur d'un boîtier en aluminium de 70 livres mesurant 24 par 12,5 par 6,5 pouces, des fils de cuivre étaient enfilés manuellement à travers des anneaux magnétiques pour stocker du code numérique. Chaque passage de fil au cœur d'un anneau représentait un 1 binaire, tandis qu'un contournement représentait un 0. Dans les années 1960, cette mémoire à toriques tissée contenait le logiciel de vol de l'ordinateur de guidage d'Apollo au sein du laboratoire d'instrumentation du Massachusetts Institute of Technology. À la tête de la division chargée d'écrire et de superviser ce code se trouvait la mathématicienne Margaret Hamilton, dont la mission consistait à concevoir un logiciel suffisamment résilient pour guider des vols spatiaux habités.

Des gyrophares de SAGE à la mémoire à toriques tissée

Diplômée de l'Earlham College avec une licence en mathématiques en 1958, Margaret Hamilton développe d'abord au MIT des logiciels de prévision météorologique pour le professeur Edward N. Lorenz sur les ordinateurs Librascope LGP-30 et DEC PDP-1. Entre 1961 et 1963, elle rejoint les Lincoln Laboratories pour travailler sur le prototype d'ordinateur XD-1 AN/FSQ-7 dans le cadre du projet de défense aérienne SAGE. Les pannes système de cette machine occupant toute une pièce déclenchaient de puissants gyrophares et des sonneries d'alarme qui avertissaient immédiatement l'ensemble du bâtiment. Cette expérience convainc Hamilton de la nécessité absolue de la fiabilité logicielle. Elle prend ensuite la tête de la division d'ingénierie logicielle d'Apollo au laboratoire d'instrumentation du MIT, où les circuits intégrés permettent à son équipe d'intégrer le calcul de vol dans un équipement spatial compact.

Neuf heures penchés sur le listing le jour de Noël

La vulnérabilité des opérations de mission aux saisies humaines imprévues est mise en évidence lors de la mission Apollo 8. Le jour de Noël 1968 à 14 heures, heure de l'Est, alors que le vaisseau est en orbite lunaire, l'astronaute Jim Lovell appuie par inadvertance sur une séquence de touches du clavier d'affichage, effaçant les données de navigation de l'ordinateur. Confrontés au risque de perdre l'alignement orbital, Hamilton et ses programmeurs passent neuf heures à analyser méthodiquement un listing de programme de huit pouces d'épaisseur étalé sur leurs tables. Après avoir testé et vérifié une séquence de récupération complexe nécessitant des centaines de frappes précises au clavier, l'équipe permet aux astronautes de redémarrer le système de guidage et de revenir sains et saufs sur Terre.

Priorité asynchrone et surcharge lors d'Apollo 11

Au cours de la descente lunaire d'Apollo 11, l'architecture tolérante aux pannes conçue par Hamilton subit son test le plus décisif. Tandis que le module lunaire descend vers la surface, une configuration radar inattendue submerge l'ordinateur de guidage de demandes de traitement excessives, déclenchant des alarmes d'avertissement exécutives. Au lieu de s'arrêter ou de planter, le logiciel exécute des routines de récupération préprogrammées qui abandonnent les tâches de fond de faible priorité afin de réserver la capacité de calcul aux fonctions critiques d'atterrissage. Comme Hamilton le détaille dans une lettre publiée en 1971 dans la revue Datamation, l'ordonnancement par priorité asynchrone intégré au code a permis à l'ordinateur de détecter la surcharge de tâches et de maintenir les commandes de guidage prioritaire en temps réel.

Formaliser la discipline du génie logiciel

Après le programme Apollo, Hamilton applique ses méthodes d'ingénierie aux systèmes de Skylab et de la navette spatiale de la NASA. En 1976, elle fonde Higher Order Software pour adapter les principes de tolérance aux pannes aux projets de défense, puis crée en 1986 Hamilton Technologies afin de commercialiser son langage Universal Systems Language. La reconnaissance accordée par le Computer History Museum a souligné son rôle fondamental dans la définition du génie logiciel moderne.

L'architecture pionnière de Hamilton a prouvé que des systèmes complexes pouvaient être conçus pour survivre en temps réel à des erreurs humaines imprévisibles et à des surcharges matérielles. En établissant que le logiciel exigeait des garde-fous mathématiques formels plutôt que des correctifs ad hoc, ses travaux ont transformé la programmation informatique en une véritable discipline d'ingénierie.

Illustration éditoriale générée par IA ; ce n’est pas une photographie documentaire.

Source: 2017 CHM Fellow Margaret Hamilton