Margaret Hamilton - Des logiciels pour la Lune


08.03.2024

Par Anne-Sylvie Weinmann, avocate et data scientist.


Une mémoire bien vivante!

En août dernier, le 17 précisément, j’avais écrit un court billet sur LinkedIn à l’occasion des 87 ans de la pionnière des logiciels et du programme Apollo Margaret Hamilton (1936), mathématicienne originaire de l’Indiana (USA).

Margaret Hamilton dans le module de commande Columbia d’Apollo 11 | NASA, domaine public (Wikipedia Margaret Hamilton – scientifique)

En me penchant davantage sur la mission Apollo 11, dont la réussite doit beaucoup à Margaret Hamilton, j’ai découvert une étonnante… mémoire! Et des femmes aux doigts de fée, les tisseuses de la mémoire corde de l’Apollo Guidance Computer (AGC).

Nous avons déjà rencontré, dans Des mots pour le dire (Partie 1), portrait de la pionnière du journalisme en informatique Marielle Stamm, et ailleurs sur la page Mémoires vives du Musée Bolo, les computers, qui calculaient fabuleusement, avant que les machines du même nom ne les remplacent, les tricotteuses des Cray, et les perforatrices d’IBM.

En cette journée internationale des droits des femmes 2024, laissons Margaret Hamilton, surnommée the Rope Mother, nous conduire jusqu’à la Lune, et nous présenter ces incroyables, et méconnues, tisseuses!

Mémoires vives s’adressant à un public francophone, toutes les références ont été traduites en français. Les textes et vidéos, dans leur langue d’origine sont répertoriés en fin d’article dans Sources et Ressources supplémentaires.


Software. Logiciel.

Margaret Hamilton rejoint le projet Apollo en 1964. « Le fait qu’il s’agisse d’Apollo, un programme lunaire, était très enthousiasmant. Je voulais y participer », confie la pionnière au journal The Boston Globe, en 1972. Elle est engagée au Instrumentation Laboratory du Massachusetts Institute of Technology (MIT) (futur Draper laboratory). Le Apollo Guidance Computer (AGC), fabriqué par Raytheon, y est conçu. Il sera « utilisé en temps réel par l’astronaute-pilote pour recueillir et fournir des informations de vol, et pour le contrôle automatique de toutes les fonctions de navigation du vaisseau spatial » (Codes Apollo 11). Embarqué, temps réel, format réduit, l’AGC est pionnier!

Margaret Hamilton, premier programmeur, première programmeuse, et première femme engagée sur le projet. Elle prendra dès 1965 la direction de la Software Engineering Division, chargée de développer le logiciel de vol embarqué pour le programme Apollo. La conquête de l’espace est le berceau de la distinction entre le matériel (hardware), « les éléments matériels d’un système informatique » et le logiciel (software), « 1) l’ensemble des programmes et des procédures nécessaires au fonctionnement d’un système informatique, 2) programme informatique », selon le dictionnaire Le Robert en ligne. Margaret Hamilton est la mère de cette distinction.

Des mots pour le dire! « Le développement de logiciels était loin d’être une profession établie. Le mot même était inconnu! » raconte Margaret Hamilton dans Software Pioneer Margaret Hamilton on Apollo 11. « Lorsque le programme Apollo a commencé, le responsable a demandé à sa femme: « What is software? Is it soft clothing? » Le mot logiciel n’était pas connu! »

« Sur le programme Apollo, nous avons réalisé que ce que nous faisions était différent de simplement écrire du code » souligne la pionnière. « Au fil du temps, nous avons appris de plus en plus à assembler le code d’un système complet, composé de nombreux éléments: du logiciel au logiciel (software), du logiciel au matériel (hardware) et du logiciel au matériel humain (human-ware), c’est-à-dire les astronautes! » (Margaret Hamilton, IEEE Computer Society).

« Même si le logiciel était le moteur du programme Apollo, il n’était toujours pas considéré comme une science, du moins pas par les ingénieurs en matériel ou en mécanique. Les programmeurs étaient moins bien considérés. » Qu’à cela ne tienne! « Pour lutter contre cela, Margaret a inventé le terme de « génie logiciel » (software engineering) » lit-on dans Margaret Hamilton Takes Software Engineering To The Moon And Beyond sur hackaday.com.

Software engineering. Génie logiciel. Une expression consciencieusement construite et défendue par son auteure: « Je me suis battue pour légitimer le logiciel afin qu’il soit respecté, ainsi que ceux qui le construisent, et j’ai donc commencé à utiliser le terme « génie logiciel » pour le distinguer du matériel et d’autres types d’ingénierie, tout en traitant chaque type d’ingénierie comme faisant partie du processus global d’ingénierie des systèmes. Lorsque j’ai commencé à utiliser cette expression, elle était considérée comme assez amusante. C’était une plaisanterie qui a duré longtemps. Ils aimaient se moquer de mes idées radicales. Le logiciel a fini par gagner le même respect que n’importe quelle autre discipline », racontait la pionnière au journal El Pais à Noël 2014 (IEEE Computer Society). La légitimité s’installe!

Des logiciels pour la Lune! « Lors de la mission Apollo 11, j’étais responsable du logiciel de bord qui nous a permis d’aller sur la Lune et d’en revenir à bord du module de commande et du LEM » (Software pioneer, 00:42), explique Margaret Hamilton dans les colonnes du journal The Guardian, cinquante ans après le premier le pas sur la Lune de Neil Armstrong; un pas de géant pour l’humanité, et pour le génie logiciel! « Il y avait deux ordinateurs de bord, un sur le module de commande, Columbia, et un sur le module lunaire, Eagle. Notre tâche consistait à développer le logiciel devant être exécuté sur chacun d’entre eux, ainsi que le logiciel système qu’ils partageaient ». Pour conquérir la Lune, Margaret Hamilton était à la tête d’une armée d’une centaine de programmeurs, se souvient-elle! « Au début, personne ne pensait que les logiciels étaient si importants. Mais ils ont commencé à réaliser à quel point ils en étaient tributaires. »

Une photo désormais légendaire. De la même taille, Margaret Hamilton à côté des listes empilées des logiciels de vol à bord du LEM et du module de commande de la mission Apollo 11, écrits en langage assembleur, qu’elle a développés et testés avec l’équipe du MIT dont elle était responsable (01/01/1969) | © Photo restaurée par Adam Cuerden (Wikipedia Margaret Hamilton)

« Le processus d’écriture du code pour la mission Apollo a commencé sur de grandes feuilles de papier. Un opérateur de perforation créait des trous dans des cartes de papier, et ainsi introduisait les codes dans ce que l’on appelait les cartes perforées (punch cards). Suit une feuille imprimée, connue sous le nom de « listings », qui montre les résultats des équations de calcul de guidage. » (The Object at Hand, p. 5) Les codes sources du module lunaire Apollo 11 (Luminary099) et du module de commande (Comanche055), sont désormais disponibles en open source sur GitHub grâce au travail de numérisation de Virtual AGC et du MIT Museum | © Domaine public, scan Comanche055 0001

Le code source d’Apollo 11, on le lit ci-dessus, précise que Margaret Hamilton porte le titre de « responsable programmation » (programming leader). De nos jours, ce titre se rapprocherait de « ingénieur en chef en génie logiciel » (lead software engineer)» (hackaday.com). Les langues s’enrichissent au gré des innovations, et des pratiques entrepreneuriales.

Computer, ordinateur, informatique, vous pouvez retrouver l’histoire d’autres mots pour le dire dans le portrait en deux parties de la pionnière du journalisme en informatique Marielle Stamm, sur la page Mémoires vives du Musée Bolo.


Une mère, une triple pionnière

Margaret Hamilton…

N°1 – Une pionnière du génie logiciel.

N°2 – Une pionnière manager, contribuant de manière significative à un programme unique: Apollo, et à une mission unique: Apollo 11, une femme capitaine d’une armada de software engineers.

N°3 – Une pionnière mère. A working mother. La mère d’une petite fille, Lauren, dont le Instrumentation Laboratory du MIT, devenait le soir et les week-ends, le terrain de jeu privilégié, et qui parfois, évidemment, s’inventait un destin d’astronaute: « Un jour, sa fille a décidé de « jouer à l’astronaute » et a appuyé sur un bouton du simulateur qui a fait planter le système. Margaret Hamilton a immédiatement compris qu’il s’agissait d’une erreur qu’un astronaute pouvait commettre, et elle a donc recommandé d’ajuster le logiciel pour y remédier, mais on lui a répondu: « Les astronautes sont formés pour ne jamais faire d’erreur. » Au cours du vol Apollo 8, en orbite autour de la lune, l’astronaute Jim Lovell a commis exactement la même erreur que sa jeune fille et, heureusement, l’équipe de Margaret Hamilton a pu corriger le problème en quelques heures. Mais pour l’ensemble des vols Apollo à venir, une protection fut intégrée au logiciel afin de s’assurer que cela ne se reproduise plus jamais », lit-on sous la plume d’Alice George dans le Smithsonian Magazine.

Logiciel. Matériel. Humain. Un système complet, pour des exploits inédits!


20/07/1969 – Two humans on the Moon. Alunissage réussi!

« Il n’y avait pas de seconde chance. Nous le savions »

« J’avais vécu plusieurs missions avant Apollo 11 et chacune était palpitante, mais cette mission-là était spéciale; nous n’avions jamais atterri sur la Lune auparavant », rappelle quarante ans après celle dont le logiciel a contribué à faire de ce défi un exploit. Il n’y avait pas de seconde chance (NASA). Mais une grande liberté. « Personne ne sachant exactement ce que l’ordinateur devait faire, les ingénieurs logiciels étaient libres d’écrire presque tout ce qu’ils voulaient, du moins au début. » « Il n’y avait pas de spécifications. Nous avons tout inventé. Je suis toujours étonné d’avoir été autorisé à programmer quelque chose qui n’avait pas été spécifié, et qui allait s’avéré être essentiel pour assurer le succès de l’ensemble du programme Apollo », s’étonne encore Alex Kosmala, développeur de logiciels de vol du programme Apollo entre 1963 et 1969 (Moon Machines, 20:00). Innover, une nécessité! « Trouver des solutions et de nouvelles idées était une aventure. Le dévouement et l’engagement étaient une évidence. Le respect mutuel était de mise. Parce que le logiciel était un mystère, une boîte noire, la direction générale nous a accordé une liberté et une confiance totales. Nous devions trouver un moyen et nous l’avons fait. Avec le recul, nous avons été les plus chanceux du monde; nous n’avions pas d’autre choix que d’être des pionniers; nous n’avions pas le temps d’être des débutants », se souvient Margaret Hamilton (MIT News).

La Lune en approche

L’objectif est si proche. L’Aigle descend. A son bord Neil Armstrong (1930- 2012) et Edwin «Buzz» Aldrin (1930). Le troisième mousquetaire, Michael Collins (1930-2021), pilote le module de commande Columbia demeuré en orbite lunaire.

Le module lunaire Eagle, en configuration d’atterrissage, photographié depuis le module de commande Columbia | © NASA domaine public (Wikipedia Apollo 11)

Le module de commande Columbia | © National Air and Space Museum Smithsonian domaine public | Creative Commons(CC0 1.0)

Environ trente-trois mille pieds. Une dizaine de kilomètres au-dessus du sol lunaire. Alors que sur la Terre, à 384’400 kilomètres de là, des millions de téléspectateurs et d’auditeurs retiennent leur souffle, dans l’immensité du cosmos, un voyant jaune s’allume sur le tableau de bord du cockpit du module lunaire Eagle (The New York Times).

Le radar d’alunissage est activé. Le radar de rendez-vous enclenché. En cas d’annulation de la mission, il doit permettre au module lunaire Eagle de se raccrocher sur la bonne trajectoire au module de commande Columbia. Bien que sur idle, plusieurs fois par seconde il interrompt l’ordinateur de guidage, dans cette phase d’alunissage qui représente la charge de travail la plus importante pour l’Apollo Guidance Computer (L’AGC, 38:00). Le premier ordinateur à utiliser des circuits intégrés, effectuant des traitements en temps réel et multitâche (jusqu’à 6 tâches exécutées en parallèle), est surchargé! Ses maigres ressources mémoire – 72ko de mémoire morte ROM contenant l’ensemble des programmes et 4ko de mémoire vive (RAM, effaçable) utilisée par les traitements – s’épuisent. Des alarmes s’affichent: 1201, une fois, 1202, quatre fois! (Code Apollo 11).

Le tableau de bord du module de commande Columbia, transféré de la NASA
au Smithsonian en 1971 et aujourd’hui exposé au National Air and Space Museum
(Washington, USA) | © Smithsonian Institution / Eric F. Long, CC0, via Wikimedia Commons

L’unité d’interface utilisateur pour l’affichage et le clavier (DSKY) de l’AGC | © NASA / Dennis Taylor domaine public( Wikipedia Apollo Guidance Computer)

Les alarmes de Margaret Hamilton

« Ce qui m’inquiétait le plus, c’était de savoir ce qui se passerait au cours de la mission principale si une urgence survenait et que nous devions en informer l’astronaute et, par conséquent, le contrôleur de la mission. J’ai donc réalisé que je pouvais trouver une solution à ce problème et faire en sorte que nos affichages logiciels interrompent les affichages de l’astronaute, qu’ils remplacent ce qui fonctionne par un affichage prioritaire pour lui faire savoir qu’il y a une urgence, et lui donner le choix de ce qu’il doit faire. » (Software pioneer, 00:54).

« Apollo 11 a été la première mission dans laquelle l’environnement logiciel asynchrone a fonctionné en même temps que les écrans prioritaires, permettant au logiciel d’interrompre les astronautes en cas de problème. En d’autres termes, c’était la première fois que le logiciel pouvait communiquer directement avec les astronautes. » (Margaret Hamilton)

« Program alarm. It’s a twelve o two! », communique Neil Armstrong à la Terre, moment critique que nous pouvons écouter cinquante-quatre ans plus tard dans Apollo 11: The Complete Descent (10:43). Extraordinaire technologie qui brave le temps! 1202. « Give us a reading on the 1202 Programm Alarm. » Qu’est-ce que cela signifie? Que faire? Silence.

Une main se lève, Jack Garman (1944-2016) possède le seul résumé consignant la signification des alarmes, et les actions à entreprendre. Une liste écrite au crayon gris d’une main appliquée, collée sur un carton et glissée sous le plexiglas sur le dessus de sa console. L’ordinateur est surchargé. « Executive overflows, c’est ainsi qu’on l’appelait. En d’autres termes, l’ordinateur n’a pas eu assez de temps pour faire son travail, il était donc surchargé et a déclenché cette alarme », explique dans le passionnant documentaire Moon Machines, The Navigation Computer (39:05), l’homme dont la méticulosité a sauvé la mission. Particularité du système: « Un ordinateur normal se serait arrêté, mais grâce au système d’exploitation révolutionnaire de l’atterrissage, l’ordinateur du module lunaire se débarrassait simplement des tâches non prioritaires et poursuivait les tâches importantes », met en exergue une voix off. Il fallait y penser, il fallait le réaliser, il fallait que cela fonctionne en mission, si loin de la Terre. Victoire totale pour Margaret Hamilton et son équipe!

L’antisèche salutaire préparée par Jack Garman avec les codes d’alarme et les actions à entreprendre (Collect Space)

« We’re Go! » « -> Continuing » est l’action à entreprendre, et est inscrit sur la liste manuscrite des « alarmes supposées ne jamais se produire », commente Margaret Hamilton (Software pioneer, 01:40).

En l’absence de menace imminente, l’Aigle est autorisé à poursuivre sa descente vers la Lune. Sur cet incident: Moon Machines, dès 37:00. Une conférence en français avec des descriptions et des explications techniques détaillées, L’AGC, dès 37:50.

« Houston, Tranquility Base here. The Eagle has landed! ». Peu après, ce 20/07/1969 à 20h17 TUC, une annonce historique. L’Aigle s’est posé sur la mer de la Tranquillité. Et on respire à nouveau sur Terre! Il ne restait plus que trente secondes de carburant pour la descente. Dans un peu plus de six heures plus tard pour la première fois, un humain foulera le sol lunaire. « That’s one small step for man. One giant leap for mankind » (Moonwalk, 3:30). Dans un peu moins d’un mois, la pionnière Margaret Hamilton aura 33 ans, seulement! Le logicel avant tout, objet de son exclusive attention. « Je ne me concentrais pas sur la mission en tant que telle », et puis soudainement, l’Histoire la rejoint: « Mon Dieu, regardez ce qui s’est passé. Nous l’avons fait. Ça a marché. C’était excitant. » (The Object at hand, p. 5)

Checklist error

Priorité: alunir! « Grâce au planificateur de priorités préemptives mis au point par Margaret et ses collègues, les processus impliqués dans l’atterrissage, avec une priorité plus élevée, ont interrompu les processus de priorité inférieure. Cela a permis de reprendre le contrôle total de la mission. L’erreur a été ensuite attribuée à une liste de contrôle incorrecte. » (Coded Apollo 11)

La checklist d’Edwin « Buzz » Aldrin était erronée.

Qu’en dit Margaret Hamilton? « Le logiciel de bord a découvert que le processeur, le CPU, approchait rapidement de la surcharge et qu’il n’y aurait pas assez de temps pour exécuter les fonctions d’atterrissage, à moins que des mesures d’urgence ne soient prises. Grâce au fait que le logiciel comportait des mécanismes globaux de détection et de récupération des erreurs du logiciel, les affichages nominaux ont été interrompus par des affichages prioritaires d’alarmes 1201 et 1202. Chaque fois que l’unité centrale (CPU) approchait de la surcharge, le logiciel effaçait toute sa file d’attente de processus et redémarrait ses fonctions, ne laissant s’exécuter que celles avec la priorité la plus élevée, jusqu’à ce que l’atterrissage soit terminé. La source de l’erreur a été découverte plus tard dans la checklist de l’astronaute. Il lui était demandé de placer l’interrupteur du radar de rendez-vous dans la mauvaise position, volant ainsi un temps précieux à l’unité centrale. Les mécanismes utilisés par le logiciel en cas d’urgence sont considérés par beaucoup comme ayant sauvé la mission Apollo 11 » (MIT News). Ce mode de fonctionnement ne constituait pas une erreur, mais bien une «protection par redémarrage». Toutes les données sur lesquelles, l’ACG travaille étant stockées, il pouvait donc être éteint et rallumé ou redémarrer à tout instant, poursuivant le travail là où il l’avait laissé. Ces spécificités innovantes, ingénieuses et fiables, ont sauvé la mission Apollo 11, assurément, et peut-être, ou vraisemblablement, la vie de Neil Armstrong et de Buzz Aldrin (Il y a 50 ans).

Astronautes vs ingénieurs.

« Cette alarme ne s’était jamais produite lors des simulations sur Terre pour la simple raison que lors de ces simulations seul le radar d’atterrissage était actif » (Alarme 1202). Alunissages simulés, pas de temps de CPU à partager avec le radar de rendez-vous! « Les ingénieurs du MIT n’avaient pas jugé utile d’incorporer l’utilisation du radar de rendez-vous durant l’alunissage, tandis que les astronautes avaient eu le raisonnement inverse. En effet, en cas d’alunissage avorté, il eut été vital pour eux d’être en mesure de récupérer le module de commande sur la bonne trajectoire! » (Il y a 50 ans)

L’équipage d’Apollo 11. De gauche à droite: Neil A. Armstrong, commandant; Michael Collins, pilote du module de commande Columbia;
et Edwin « Buzz » Aldrin, pilote du module lunaire Eagle | © NASA domaine public (Wikipedia Apollo 11)

Objectif Lune!

« I believe that this nation should commit itself to achieving the goal, before the decade is out, of landing a man on the Moon and returning him safely to the Earth. » Le pari fou exprimé au Congrès et à la nation par le Président Kennedy le 25 mai 1961, porte en lui les germes prometteurs d’avancées significatives dans une vaste palette de domaines, au nombre desquels, évidemment, l’informatique et l’électronique: les circuits intégrés (intégration), l’informatique embarquée, la miniaturisation, un « transportable » pour l’époque: l’AGC mesure 61x32x17 cm et pèse 32 kilos, alors que les ordinateurs de l’époque se mesure en mètres cubes, le génie logiciel, la programmation en temps réel. Mais aussi, les produits lyophilisés, et les couches (pour bébés) (L’AGC, Il y a 50 ans). L’héritage est immense!

« There was no choice but to be pioneers »

« Ils ne savaient pas que c’était impossible, alors ils l’ont fait. » Apollo 11 m’évoque cette formule attribuée à Mark Twain. Était-ce de l’audace ou de la témérité, ou un mélange des deux, de s’embarquer ainsi pour notre satellite lunaire? Ou un besoin universel et immémorial de repousser les limites de la connaissance, géographique aussi, ce besoin qui avait déjà mu Marco Polo (1254-1324), Christophe Colomb (1451-1506) ou Vasco De Gama (1460/1469-1524) loin de leurs terres natales européennes guidés par des appareils et des connaissances qui paraissent tellement dérisoires, vues d’aujourd’hui? Vraisemblablement, un mélange bigarré de raisons composait l’élan de ces explorateurs, de ces pionniers de l’espace. Christophe Colomb inspira Columbia, la Marianne états-unienne, qui donna son nom au module de contrôle de la mission Apollo 1, Columbia!

Difficile représentation!

A propos de l’AGC, de la possibilité pionnière (et salutaire!) de prioriser des tâches grâce au travail remarquable de Margaret Hamilton et de son équipe, j’ai lu cette comparaison qui enjambe le temps, et relie un exploit époustouflant et un objet de notre quotidien d’une affligeante banalité: « Et c’est ainsi qu’un ordinateur à peu près aussi puissant que le microcontrôleur d’un grille-pain actuel amena les hommes sur la Lune en toute sécurité, et six fois de plus par la suite… » (Il y a 50 ans)

Pour comparaison, les performances de l’AGC étaient comparables à celles de la première génération d’ordinateurs personnels (à succès) de la fin des années 1970 (Wikipeia Apollo Guidance Computer), à leur arrivée sur le marché, et qui intègrent des micro-processeurs, dont le premier à être commercialisé est l’Intel 4004 (1971), deux ans et quelques mois après le premier pas humain sur la Lune.

L’Apple II. 1977, microprocesseur MOS 6502 cadencé à 1 MHz, 4 Ko de mémoire vive (64 Ko max.), 8 Ko de mémoire morte, basic integer, calcul uniquement avec des nombres entiers. | © Musée Bolo – Sébastien Monachon

Le Tandy Radio Shack TRS-80. 1977, microprocesseur Zilog Z80, à 1,77 MHz, 4 Ko de mémoire vive (48 Ko max.), 4 Ko de mémoire morte. | © Musée Bolo – Sébastien Monachon

Le Commodore PET 2001. 1977, microprocesseur 6502 à 1 MHz, une RAM de 4 ou 8 Ko, 16 Ko ou 32 Ko, et une ROM de 16 Ko. | © Musée Bolo – dp

Des exemplaires de ces ordinateurs sont visibles au Musée Bolo, à l’occasion d’une visite libre ou guidée!

Et bien évidemment, les premiers Smaky, micro-ordinateurs made in Vaud (en vidéo) développés au Laboratoire des Calculatrices Digitales (LCD, EPFL) renommé ultérieurement Laboratoire de Micro-Informatique (LAMI, 1980), dirigé par le professeur Jean-Daniel Nicoud. Ils sont équipés d’un microprocesseur Intel 8080 à 2 MHz. Ils devancent, et complètent la liste ci-dessus. Le Smaky 1 (fonctionnel à Noël 1974), le Smaky 2 (1975, 4-8 Ko de RAM), le Smaky 3 demeure à l’état de projet, le Smaky 4 (1976, 4-8 Ko de RAM, qui pouvait être relié en réseau!) puis en cette fructueuse année de 1977, le Smaky 5 dénommé Scrib, doté de 10 Ko de ROM et 16 Ko de RAM, voit le jour. Un ordinateur portable (de 12 kg!) en avance sur son temps, développé par le LCD et Bobst Graphic (filiale de Bobst à Mex) en 1977, sur la base des développements des premiers Smaky. Fabriqué à mille exemplaires, cet ordinateur suisse était destiné aux journalistes, qui pouvaient transmettre les textes directement avec leur rédaction! 1977 toujours, le Smaky 6 (le premier modèle livré cette année-là répond à une commande du collège Calvin, à Genève) autour d’un microprocesseur différent, le Zilog Z80 à 1,77 MHz, 32-64 Ko de RAM (nettement supérieur à l’AGC!). Il sera commercialisé dès 1978 par la société Epsitec. Plusieurs générations de Smaky suivront, une aventure technique et humaine extraordinaire, à découvrir sur le site smaky.ch récemment rafraichi et augmenté, qui fait partie du magnifique projet du Musée Bolo 𝗝’❤️ 𝗺𝗼𝗻 𝗦𝗠𝗔𝗞𝗬 dont le but est le partage et la mise en valeur du patrimoine informatique suisse romand.

Smaky 6 du Collège Calvin à Genève | © Musée Bolo

Scrib | © Musée Bolo

Smaky 2 (1975) transportable dans la malette de Jean-Daniel Nicoud

Smaky 2 (1975) transportable dans la malette
de Jean-Daniel Nicoud | © Musée Bolo


De mémoire!

Cinquante-cinq ans et un saut de géant

Que dire, un bond! Un bond difficilement imaginable, et franchi au-dessus d’un abysse technologique séparent ces lignes, d’un jour de juillet 1969 sans doute gravé de manière unique dans la mémoire de Margaret Hamilton. Justement, la mémoire, informatique cette fois, parlons-en! Quelle soit vie ou morte, ses balbutiement et développements sont étonnants! Aujourd’hui, la capacité de mémoire vive, RAM acronyme de Random Access Memory, de nos ordinateurs se compte en gigaoctets (109). Rapide et modifiable, l’ordinateur y place les données en cours de traitement. On la dit vive, « car ses données sont perdues lorsque l’ordinateur n’est plus alimenté en électricité », lit-on dans Disparition Programmée (p. 167), le livre illustré de l’exposition sous forme d’enquête que vous pouvez découvrir de manière libre ou guidée au Musée Bolo. Je me suis promenée sur le web à la recherche d’une échelle chiffrée de la mémoire RAM que notre ordinateur devrait contenir pour exercer efficacement ces activités devenues usuelles. Résultat? « Le strict minimum pour faire de la bureautique et un peu de multimédia de manière confortable reste 8 Go sur un système d’exploitation. Le PC fonctionnera même avec 4Go, mais il faudra s’attendre à quelques baisses de régime. Dès qu’on va vouloir une machine un minimum performante, aussi bien pour du jeu que pour du multimédia plus lourd comme du traitement photo ou du montage vidéo, on va s’orienter plutôt sur 16 voire 32 Go de RAM (…) » lit-on sur mat.blog.

Des gigaoctets de mémoire vive à disposition, Margaret Hamilton n’aurait osé en rêver! L’AGC disposait de 4 Ko (103) de mémoire de travail, seulement! Soit 1 million de fois moins que les 4 Go de RAM suffisant pour « naviguer sur le Web, travailler avec les applications Office de base et retoucher des photos personnelles »! selon ces recommandations. Rédiger un simple courrier ou alunir, ce n’est pas tout à fait pareil, et pourtant, Margaret Hamilton et les pionniers de la Lune l’ont fait!

Nos ordinateurs actuels incorporent des mémoires en silicium (mémoires à semi-conducteurs). Leur fabrication résulte d’une époustouflante prouesse de miniaturisation, une autre manière d’atteindre la Lune! Nous avons découvert dans Une souris venue d’Amérique la mémoire à tambour magnétique du premier ordinateur électronique made in Switzerland: l’ERMETH (Elektronische Rechenmaschine der ETH) ou calculateur électronique de l’Ecole polytechnique fédérale de Zurich. La machine helvétique, au terme d’une épique construction, sera en fonction à l’ETHZ de 1956 à 1963. La mémoire à tambour magnétique (1932); cette mémoire répandue dans les ordinateurs de première génération, se distingue de celle de l’AGC, imaginez transporter un tambour dans l’espace! Apollo 11 embarquait la technologie de pointe de l’époque: la mémoire à tores de ferrite magnétiques (magnetic-core memory) (L’AGC, 19:20), « la forme dominante de mémoire vive des ordinateurs durant 20 ans (de 1955 à 1975) », précise l’encyclopédie en ligne Wikipédia, alors remplacées par des mémoires à circuit intégré à semi-conducteur (SAGE). En 1953, après les travaux de An Wang en 1948, Jay Forrester (1918-2016) met au point dans le cadre du projet Whirlwind, développé au MIT, cette mémoire révolutionnaire à tores de ferrite magnétiques (Histoire illustrée de l’informatique, p. 167), « élément clé de l’adoption généralisée des ordinateurs pour les applications industrielles car, contrairement aux ordinateurs dotés de mémoires à tubes de stockage (storage-tube memories), les ordinateurs dotés de mémoires à tores de ferrites magnétiques étaient fiables.» L’IBM 704 (1955) sera le premier ordinateur civil à utiliser des mémoires à tores de ferrite magnétiques (SAGE).

« Un module de mémoire à tores de ferrite magnétiques de 32 x 32 noyaux stockant 1024 bits (ou 128 octets) de données. Les petits anneaux noirs aux intersections des fils de la grille, organisés en quatre carrés, sont les tores de ferrite. » | © Konstantin Lanzet (Wikipedia Magnetic core memory)

Zoom. Les tores et les fils de lecture/écriture qui les traversent sont nettement visibles. La distance entre les tores est d’environ 1 mm | © Konstantin Lanzet (Wikipedia Mémoire à tores de ferrite)

Mémoire en tores de ferrite (États-Unis, 1960) visible au Musée Bolo | © Musée Bolo
Laissez-vous tenter par une visite guidée!

Quand je vois ces photos d’une mémoire en tores de ferrite magnétiques, une question jaillit: comment cela fonctionne? Comment est-il possible d’encoder des informations sur ce qui, au premier regard, ressemble à un bout de tissus métallique, aux chaînes et trames apparentes? Bluffant, cela a contribué à amener des humains sur la Lune!

Et, la mémoire à tores de ferrite magnétiques, comment cela fonctionne? « Chaque petit anneau, ou tore, contient un bit de donnée, 0 ou 1, selon son sens de magnétisation », lit-on dans Disparition programmée (p. 167). Mais encore? Il s’agit « globalement d’une matrice avec aux intersections des tores » (L’AGC, 19:20) qui  « peuvent être magnétisés dans deux directions différentes (sens horaire et antihoraire). Le bit enregistré dans le tore signifie 0 ou 1 selon le sens du champ magnétique. L’écriture du tore s’effectue en faisant passer un courant électrique Im dans le fil d’écriture (un seul fil est nécessaire pour l’écriture). Le courant doit être suffisamment élevé, pour que le champ dans le circuit magnétique dépasse l’intensité du champ coercitif et crée une magnétisation rémanente et saturée. Ainsi le signe de la rémanence correspond à la valeur du bit, « 0 » ou « 1 ». La lecture est effectuée en envoyant de nouveau un courant de lecture Im dans l’un des fils, qui permet de détecter la magnétisation actuelle du tore. Selon l’état du tore, ce courant va inverser le champ magnétique dans le tore ou pas. Ce changement du champ magnétique induit une tension Ul dans le second fil qui peut être mesurée. Cette lecture du contenu du tore est destructrice. Elle remet le contenu à zéro, ce qui nécessite de réécrire le contenu antérieur du tore pour rétablir sa valeur», nous renseigne l’article topique de l’encyclopédie en ligne Wikipédia. Et enfin, l’incontournable Histoire illustrée de l’informatique précise à propos du tore de ferrite, qu' »il s’agit d’un tore en matériau magnétique capable de garder la direction de l’aimantation, des fils électriques permettant de lire ou d’inverser cette aimant. Chaque bit d’information peut être stocké de manière permanente dans quelques millimètres carrés. L’enjeu économique de cette invention universitaire est donc considérable. (…). La fabrication est confiée à des ouvrières du textile, et le coût de fabrication dégringole quand elle est délocalisée dans le Sud-est asiatique » (pp. 130-131).

Un autre bond de géant

« A l’époque, les disques qui stockaient les programmes étaient fragiles et peu fiables » (Moon Machines, 22:00). Les technologies sont encore limitées, et pour la Lune, on voyage compact et léger! Alors, où et comment stocker les programmes de l’AGC? Parlons de mémoire morte (ROM, Read Only Memory), en lecture seule! La célèbre photo de Margaret Hamilton à côté de son programme lunaire, en version 440 x 457 pixels, occupe dans mon téléphone portable 72 Ko d’espace de stockage. Cette simple photo, comme j’en conserve des centaines dans mon smartphone, correspond à l’entier des 72 Ko de la mémoire corde (core rope memory) de l’AGC, sa mémoire de programmes (ROM)! Rope, corde en anglais. Des mots pour le dire, son apparence la désigne. Mon téléphone portable n’est pas encore usé jusqu’à la corde, mais a déjà bien des heures de vol. Les IPhone 15 Pro et IPhone 15 pro Max, derniers nés de l’emblématique marque à la pomme, disposent d’un espace de stockage pouvant aller jusqu’à 1 To, identique à celui du disque dur externe que je viens d’acquérir pour alléger mon smartphone, soit 1012 octets, soit 1000 milliards d’octets, soit 13’888’889 photos de Margaret Hamilton à côté de son programme lunaire.

Une core rope memory utilisée dans l’Apollo Guidance Computer (Modèle du MIT pour essais) | © Nova13 (Wikipedia Core rope memory)

La mémoire corde du Apollo Guidance Computer | © NASA
Domaine public (Wikipedia Apollo Guidance Computer)

La mémoire corde stockait les programmes qui ont amené l’humanité sur la Lune! Quelle surprenante technologie! Comment cela fonctionnait-il? Comment les programmes, de vol notamment, étaient-ils intégrés dans le substrat matériel? Y répondre est l’occasion de retrouver à nouveau la pionnière, sujet de ces lignes: Margaret Hamilton, surnommée the Rope Mother!


A vous Mesdames!

A la liste de ces femmes œuvrant dans l’ombre du développement de l’informatique comme computers, reines du calcul, dont l’éminente Katherine Johnson (1918-2020), la plus célèbre des computers a également joué un rôle déterminant dans le succès de la mission Apollo 11, les perforatrices d’IBM, les tricotteuses de Cray Research Inc. (l’une d’entre elle, anonyme, vous accueillera lors d’une prochaine visite au Musée Bolo), ainsi que les programmeuses de l’ENIAC, nous pouvons désormais ajouter les tisseuses de Raytheon Company, à Waltham, Massachusetts, dans la banlieue de Boston (USA).

Une corde de code. « Dans les années 1960, il existait peu de directives formelles sur la manière d’écrire, de documenter et de tester des logiciels complexes. Mais le logiciel Apollo fonctionnait, et était remarquablement exempt d’erreurs » (The Rope Mother). Admiration, le mot est encore trop faible pour exprimer ce que je ressens, face à cette prouesse, découverte en ce premier quart de vingt-et-unième siècle hyper numérisé! Surcharge. Abandon des programmes moins prioritaires. Redémarrage. Navigation. Guidage. Alunissage. Des programmes vitaux tissés, encodés dans une corde. Vertigineux! Composée de 0 et de 1, utilisant des tores de ferrites déjà polarisés (L’AGC, 22:30), les programmes tissé, encodés, dans la core rope memory repose sur une distinction physique, que nous explique Margaret Hamilton: « La corde est faite d’anneaux et de fils. Si le fil passe à travers le tore (core), il représente un 1. S’il passe autour du noyau, il s’agit d’un 0″ (Moon Machines, 22:55).

S’agissant d’une mémoire fixe, qui ne peut être réécrite, l’optimisation s’impose! « Comme on ne va que lire, et que les petits tores de ferrites pèsent un certain poids, on va tenter de les réutiliser. Chaque tore de ferrite peut être utilisé jusqu’à vingt-quatre fois. On peut faire passer un fil dans un tore de ferrite jusqu’à vingt-quatre fois pour économiser du poids, donc optimiser le code. On est sur un autre niveau d’optimisation que ce que l’on connait! », souligne Olivier Poncet dans L’AGC : retour sur l’ordinateur qui a amené l’’humanité sur la Lune (22:32).

Un processus ingénieux pour tisser une corde de fils de cuivre et de tores magnétiques qui incorporait des instructions logicielles, des programmes (MH Led). « Il est ironique d’appeler ces programmes des logiciels, car il était aussi difficile, voire plus difficile, de les modifier, que de remanier un circuit matériel » (The Rope Mother). Un processus de fabrication ingénieux, et extrêmement lent! « Un programme pouvait prendre plusieurs mois à tisser et s’il y avait une erreur, c’était un cauchemar à corriger » (Moon Machines, 23:20). Anticipation obligatoire, dernière minute prohibée. « Il fallait que le programme soit au point dix mois (!) avant la réalisation de la mémoire, avant chaque lancement. C’est effectivement un petit peu contraignant» (L’AGC, 22:45). Un petit peu!

Patience d’ange et doigts de fée! Les artisanes de cette mémoire corde haute-densité (et haute couture !) étaient surnommées les LOL. Non qu’elles avaient une propension particulière à la drôlerie. « Nous appelions cela la méthode LOL, la méthode de la Little Old Lady, de la petite vieille, pour tordre ces tores. Ce n’est pas très gentil… aujourd’hui, on ne pourrait pas dire cela », complète Dick Battin, directeur technique du Laboratoire d’instrumentation du MIT entre 1958-1973 (Moon Machines, 22:40). Leur travail était supervisé par des Rope Mothers attentives, souvent des hommes, mais la Rope Mother en chef était Margaret Hamilton » (That time).

Embauchées pour leur infinie dextérité, les artisanes de la mémoire corde la tissaient en suivant des instructions détaillées. « Les programmes étaient développés sur un grand ordinateur situé au laboratoire du MIT, puis traduits en code et poinçonnés sur une bande perforée. Celle-ci était ensuite introduite dans une machine qui positionnait les noyaux pour un enfilage correct » (The Rope Mother). Le génie logiciel. Un travail précis, chaque décision était documentée, une explication complète accompagnait chaque ligne de code, expliquant son action, et son influence sur le reste du programme (The Rope Mother). Une fois le programme informatique finalisé, il était envoyé pour tissage chez Raytheon par des employées aux talents de couturières, recrutées dans les usines textiles alentour de la Nouvelle-Angleterre. Des femmes qualifiées de chez Waltham Watch Company, entreprise qui participait à la fabrication des gyroscopes de haute précision utilisés dans les missions Apollo (De la Terre à la Lune), composaient également les cohortes des tisseuses de la mémoire corde, qui amena l’humanité sur la Lune.

Extraordinaire zoom, et explications de Madame Hamilton! 1, le fil passe à l’intérieur du tore, il passe autour, 0 | © Moon Machines (23:05)

« Au début de la production, deux techniciennes s’asseyaient l’une en face de l’autre et tissaient à la main une myriade de fil dans de petits noyaux, poussant une aiguille creuse qui contenait la longueur de fil nécessaire, d’un côté à l’autre. » (De la Terre à la Lune) | © Moon Machines (22:35). Environ six mètres de fils dans une fine et longue aiguille. Explications détaillées et images d’époque dans cette étonnante vidéo Computer for Apollo. Vous pourrez en apprendre davantage à propos de la fabrication de la mémoire à corde dès 20:45. A partir de 21:30, il vous sera possible d’observer le travail méticuleux de « câblage de l’adresse de câblage de la mémoire à corde » effectué par un duo de tisseuses, lors de cette première phase de fabrication de la core rope memory.

La fabrication de la mémoire à corde continue avec le câblage qui contient le programme de la mémoire fixe, travail effectué dans une seconde phase par une tisseuse à l’aide d’une machine. « La machine indexe un tore en particulier puis la fille (sic!) fait passer l’aiguille à travers l’ouverture et laisse l’aiguille passer à travers le bon tore. » La machine connaît le schéma de tissage. Une fois que le module est tissé, la phase de test électrique commence. Chaque élément doit être à sa place. « Le programme stocké sur une bande de papier est ensuite utilisé pour exercer le module. » Le module que l’on voit dans cette vidéo contient 512 tores, tissés sans nulle place laissée au hasard, dans 800 mètres de fil (Computer for Apollo, dès 23:25) | (c) MIT, 2011. Huit semaines de travail, pour un coût de quinze mille dollars (Software woven). On comprend aisément que la correction de toute erreur, de tout bug, la modification d’une ligne d’un programme stockée dans la mémoire à corde pouvait prendre des jours (CHM)!


Madame Hamilton, quels conseils donneriez-vous aux jeunes femmes qui souhaitent faire carrière dans le domaine de la programmation?

« Ne laissez pas la peur vous envahir et n’ayez pas peur de dire « je ne sais pas » ou « je ne comprends pas », aucune question n’est stupide. Et n’écoutez pas toujours les soi-disant experts! », répondait la pionnière du génie logiciel au journal The Guardian, cinquante ans après avoir amené l’Humanité sur la Lune.

Vraisemblablement, à la question posée plus largement, dispenserait-elle ce conseil à tout être humain, non aux seules femmes. Au-delà de la distinction hommes-femmes, la pionnière envisage une égalité des droits, une égalité d’accès, permettant à chacun d’exercer l’emploi qu’il désire, et de relever les défis qu’il souhaite (The Object at hand, p. 5). Une vision en écho ce 8 mars 2024, journée international des droits des femmes, à la première phrase de l’article 1 de la Déclaration universelle des droits humains: « Tous les êtres humains naissent libres et égaux en dignité et en droits. » Tous les êtres humains, chaque jour! Car chaque jour est le 8 mars, n’est-ce pas?!

En 2016, Margaret Hamilton reçoit du Président Barack Obama, la médaille de la Liberté, la plus haute distinction civile aux États-Unis.
© (Wikipedia Margaret Hamilton – scientifique)


Sources et ressources supplémentaires

Pour prolonger cette découverte au Musée Bolo

Une visite guidée du musée

Site web smaky.ch

Musée Bolo, projet 𝗝’❤️ 𝗺𝗼𝗻 𝗦𝗠𝗔𝗞𝗬

De l’histoire et des histoires en mots et en images sur la page Mémoires vives

Dans l’ordre d’apparition, et quelques ajouts

Margaret Hamilton (software engineer), Wikipedia

Margaret Hamilton (scientifique), Wikipedia

Apollo Guidance Computer, Wikipedia

Anne-Sylvie Weinmann, Marielle Stamm. Des mots pour le dire (parties 1 et 2), Mémoires vives (Musée Bolo) – 8 et 13/03/2022

Apollo program – site web du National Air and Space Museum | Smithsonian

Alan H. Sheehan, Putting « Eagle » on course, The Boston Globe – 01/11/1972

Raytheon, Wikipedia

Stéphane le calme, Les codes sources du module lunaire Apollo 11 (Luminary099) et du module de commande (Comanche055) sont disponibles en open source – 18/07/2019

Christie’s, Software Pioneer Margaret Hamilton on Apollo 11 – 2019 (vidéo)

Christie’s, Margaret Hamilton: the woman who wrote the software that put man on the Moon – 2019

Lori Cameron, Margaret Hamilton: first software engineer, IEEE Computer Society – 10/05/2018

Adam Fabio, Margaret Hamilton takes software engineering to the Moon and beyond, hackday.com – 10/04/2018

Zoë Corbyn, Interview de Margaret Hamilton: »They worried that the men might rebel. They didn’t », The Guardian – 13/07/2019

Beth Py-Libermann, The Object at Hand: Intriguing and Inspiring Stories from the Smithsonian Collections, Smithsonian Books, 2023

Virtual AGC et MIT Museum, The original Apollo 11 software source code, GitHub

Joseph Trettevi, The programming language that put men on the Moon!, dev.to – 16/03/2020

Alice George, Margaret Hamilton led the NASA software team that landed astronauts on the Moon, Smithsonian Magazine – 14/03/2019

Maia Weinstock, Margaret Hamilton’s Apollo Code. A brief history of the famous 1969 photo of the software that sent humans to the Moon, website de la NASA – 17/08/2016

Moon Machines. The Navigation Computer – 2008 (documentaire)

Margaret Hamilton. Recalling the « Giant Leap », MIT News – 17/07/2009

Apollo 11, Wikipedia (anglais)

Apollo 11 Command Module Columbia – site web du National Air and Space Museum | Smithsonian

Sam Roberts, Jack Garman, whose judgment call saved Moon landing, dies at 72, The New York Times – 24/09/2016

Romain Berthon, Olivier Poncet, L’AGC: retour sur l’ordinateur qui a amené l’humanité sur la Lune, DevFest Nantes – 2023 (conférence)

Olivier Poncet, L’AGC: retour sur l’ordinateur qui a amené l’humanité sur la Lune – site web (ressources diverses)

Site web du National Air and Space Museum | Smithsonian

W.David Woods, Apollo 11:the complete descent. Apollo Flight journal – 2019 (documentaire)

Nicholas P. Russo, Apollo Era hero Jonh « Jack » Garman dies, site web NASA – 29/09/2016

Jack Garman, NASA engineer who ‘saved’ Apollo 11 from alarms, dies at 72, collectSpace – 09/2016

NASA, Restored Apollo 11 Moonwalk – Original NASA EVA Mission video

Lucilla Tomassi, Margaret Hamilton: the woman that (sic.) coded Apollo 11, codemotion.com – 20/07/2023

Il y a 50 ans: l’ordinateur qui emmena l’Homme sur la Lune, Inneance – 26/07/2019

Alarme 1202, Le forum de la conquête spatiale – 12/03/2006

Apollo 11, Wikipedia (français)

Columbia (personification), Wikipedia

Anne-Sylvie Weinmann, Le microprocesseur Intel 4004, 50 ans déjà!, Mémoires vives (Musée Bolo) – 10/05/2021

Apple II, Wikipedia

TRS-80, Wikipedia

Musée Bolo, 6502 chip: the chip that changed the world! – 15/02/2022

Musée Bolo, La famille des Smaky, site web smaky.ch

Musée Bolo, La fête des ordinateurs Smakys, SMUG 2016 (vidéo)

Anne-Sylvie Weinmann, Une vie d’inventions. Jean-Daniel Nicoud, un des pères de la micro-informatique suisse, Mémoires vives (Musée Bolo) – 23/04/2021

Musée Bolo, Le Scrib de Bobst Graphic, site web smaky.ch

Une brève histoire d’EPSITEC, site web cresus.ch

Mémoire vive, techo-science.net

Marielle Stamm, Yves Bolognini, Disparition programmée. Le Musée Bolo mène l’enquête, Presse polytechniques et universitaires romandes, 2013 (le livre de l’exposition)

Thalack, Comprendre et choisir la mémoire vive sur PC portable (mais pas que), mat.blog – 03/06/2019

Grosbill, C’est quoi la RAM d’un ordinateur?, grosbill.com – 30/08/2022

Micron technology, Comment est fabriquée la RAM?, site web crucial

Anne-Sylvie Weinmann, Une souris venue d’Amérique, Mémoires vives (Musée Bolo) – 23/03/2023

Martin Gutknecht, The Pioneer Days of Scientific Computing in Switzerland, Association for Computing Machinery (ACM), 1987

Drum memory, Wikipedia

Mémoire à tores de ferrite magnétiques, Wikipedia

Magnetic core memory, Wikipedia

SAGE : Semi-automatic groung environment air defense system – site web du Lincoln Laboratory, MIT

Whirlwind: preparing the way for SAGE – site web du Computer History Museum (USA)

Whirlwind I, Wikipedia

Emmanuel Lazard, Pierre Mounier-Kuhn, Histoire illustrée de l’informatique, EDP Sciences, 3e édition, 2022

Mémoire morte, Wikipedia

Core rope memory, Wikipedia

iPhone, site web Apple

Paul Ceruzzi, The « Rope Mother » Margaret Hamilton, site web du National Air and Space Museum | Smithsonian – 11/03/2016

Anne-Sylvie Weinmann, Katherine Johnson. La plus célèbre des computers, Mémoires vives (Musée Bolo) – 24/02/2024

Anne-Sylvie Weinmann, L’ENIAC. Happy World Computer Day!, Mémoires vives (Musée Bolo) – 15/02/2024

Paul Cultrera, De la Terre à la Lune – Blog

MIT Science reporter, Computer for Apollo (1965) – 2011 (documentaire d’époque)

Ken Shirriff, Software woven into wire: core rope and the Apollo Guidance Computer, blog – 07/2019

Apollo Guidance Computer rope memory wiring – site web du Computer History Museum (USA)

NASA, July 20, 1969: One giant leap for mankind – 20/07/2019

Digital poetry, Apollo Rope Memory Modules (Part 2 – Construction) – 2016 (documentaire)

Kaushik Patowary, That time when computer memory was handowen by women, Amusing Planet – 04/02/2020

Lukas Viglietti, Apollo Confidentiel, De Boeck Supérieur SA, 2019

NASA, Apollo 11 (photos)