Margaret Hamilton est décédée à l’âge de 90 ans, après une carrière associée au développement des logiciels de guidage embarqués à bord des véhicules du programme Apollo de la NASA et à la formulation du terme « ingénierie logicielle ». Hamilton a dirigé des équipes qui ont développé les logiciels utilisés lors de six missions d’alunissage entre 1969 et 1972. Elle a ensuite reçu la médaille présidentielle américaine de la Liberté en 2016.
Un code capable de gérer une charge informatique critique
La principale contribution de Hamilton a été la conception d’un mécanisme de sécurité intégré aux logiciels du système de guidage. Le système était conçu pour distinguer les tâches essentielles des tâches secondaires lorsque l’ordinateur du véhicule recevait davantage de commandes qu’il ne pouvait en traiter en temps réel. Il annulait alors les tâches les moins prioritaires et relançait les opérations nécessaires à la mission, tout en émettant une alerte pour prévenir les astronautes.
Les effets de cette conception sont apparus lors de l’atterrissage du module lunaire « Eagle » pendant la mission Apollo 11 en 1969. Lorsque Buzz Aldrin a saisi des commandes pour afficher l’altitude et d’autres données, l’ordinateur a commencé à émettre des alarmes en raison de la surcharge. Mais le mécanisme de sécurité a maintenu les tâches indispensables à l’atterrissage, permettant au véhicule d’atteindre sans encombre la mer de la Tranquillité au lieu d’annuler l’atterrissage.
De la simulation météorologique à Apollo
Hamilton a commencé sa carrière après avoir obtenu un diplôme de mathématiques à l’Earlham College en 1958. Elle a travaillé avec le mathématicien Edward Lorenz au Massachusetts Institute of Technology et a programmé l’ordinateur LGP-30 utilisé pour la simulation météorologique, avant de rejoindre en 1961 le projet SAGE du MIT afin d’écrire des logiciels aidant l’armée de l’air américaine à rechercher d’éventuels avions ennemis.
Au cours de son travail sur SAGE et des recherches liées à Apollo, Hamilton s’est concentrée sur la fiabilité des logiciels et la prévention des erreurs. Un exemple en est ce qui fut plus tard appelé « l’erreur de Lorenz », lorsqu’une séquence de lancement préprogrammée saisie dans le simulateur de mission a provoqué une panne du système. Hamilton a demandé l’ajout d’une protection contre ce type d’erreur. Une saisie similaire s’est effectivement produite pendant la mission Apollo 8, nécessitant la récupération des données de navigation.
Un héritage qui dépasse le programme Apollo
Après la fin du programme Apollo, Hamilton a continué à travailler sur la prévention des erreurs et la tolérance aux pannes. Elle a fondé en 1976 l’entreprise Higher Order Software, puis l’a quittée en 1985 pour créer Hamilton Technologies, dont le principal produit était l’Universal Systems Language, destiné au développement de systèmes logiciels complexes en accordant la priorité à la prévention des erreurs et à la programmation défensive.
Les logiciels Apollo qu’elle avait contribué à développer ont été ajoutés à GitHub en 2015. Google lui a également rendu hommage en 2019 avec une image monumentale créée par plus de 100 000 miroirs dans une ferme de panneaux solaires du désert de Mojave.
Pourquoi cette actualité est-elle importante ?
L’importance de l’héritage de Hamilton ne réside pas seulement dans le fait que son code a constitué une partie d’un accomplissement historique, mais aussi dans le fait qu’il montre que la fiabilité commence dès la conception du système, avant l’apparition d’une défaillance. Les logiciels n’ont pas empêché la surcharge de l’ordinateur, mais ils ont déterminé ce qui devait être sacrifié et ce qui devait être préservé, transformant une situation susceptible de mettre la mission en danger en une procédure de récupération organisée. Cette idée reste essentielle dans les systèmes dont les conditions de fonctionnement ne permettent ni la défaillance ni une nouvelle tentative aisée.