Disponible depuis quelques années déjà, le code source de l'ordinateur de bord de la mission Apollo 11 est désormais sur GitHub. Chacun peut donc l'explorer, remonter des bugs et proposer des suggestions... ce qui n'a évidemment pas tardé.
Apollo 11 est une mission spatiale très particulière : c'est la première à avoir envoyé des hommes sur la Lune (c'est aussi la cinquième habitée du programme Apollo). Le 20 juillet 1969, Neil Armstrong et Buzz Aldrin ont ainsi foulé notre satellite naturel pour la première fois dans l'histoire de l'humanité. Presque 47 ans plus tard, Chris Garry a publié sur GitHub le code source de l'ordinateur de bord de la fusée. Pour rappel, Google en avait déjà publié une partie à l'occasion du 40e anniversaire.
À l'époque, c'est le MIT qui a conçu et développé le logiciel embarqué pour cette mission d'exploration spatiale. L'équipe était alors dirigée par l'informaticienne Margaret Hamilton, une des pionnières dans son domaine. Pour en savoir plus sur celle qui a permis d'envoyer des humains sur la Lune, sachez que Wired lui a récemment consacré un article complet.
Quoi qu'il en soit, tout le monde peut donc s'amuser à décortiquer et analyser le code source du module de commande de l'ordinateur de bord (AGC) de la capsule ainsi que celui du module lunaire. Si la mission était un succès sur toute la ligne (malgré quelques peurs au moment de l'alunissage), certains ont d'ores et déjà remonté un « bug », en expliquant la manière de le reproduire. Bien évidemment, cela passe d'abord par la construction d'une fusée et son lancement dans l'espace.
Pour rappel, plusieurs milliers de photos du programme Apollo avaient été mises en ligne l'année dernière. Elles proviennent de sources diverses comme la NASA, le Centre spatial Lyndon B. Johnson et le Lunar & Planetary Institute.
Commentaires (56)
La Corée du nord est sur la brèche :)
Excellente initiative. Nous allons pouvoir voir les merveilles que l’on faisait avec la technologie de l’époque !
" />
" />
" />
" />
" />
Trois fautes dans l’article :
Faudrait vous relire un peu plus, la prochaine fois.
Faudrait penser à utiliser le bouton “Signalez une erreur” la prochaine fois
" />
Il est où ?
C’est en assembleur, c’est ça ?
vient juste de regarder un fichier et paf le coup de vieux
" /> de l’assembleur
J’aime bien le fichier sobrement intitulé “THE_LUNAR_LANDING.s”
" />
“certains ont d’ores et déjà remonté un « bug », en expliquant la manière de le reproduire. Bien évidemment, cela passe d’abord par la construction d’une fusée et son lancement dans l’espace. ”
C’est surtout que le bug en question fait référence a Apollo 13 ^^ .
Tien, des commentaires de sources que j’ai vue, ils travaillent en mètres. Ils ont du galéré un peut les Américains
" />
" />
Dingue, on trouve même le code de l’easter egg (PINBALL_GAME*.s)
" />
je rappelle qu’un incident a eu lieu a cause de ça déjà :p
Mais sinon la Nasa travaille quasiment à 100% en mètres.
ha ils vont loin dans le fake, non seulement ils n’ont rien envoyé sur la lune mais ils font un faux code source
" />
Et quelqu’un a une idée du processeur ?
(les instructions ne me raccrochent à rien que je connaisse)
ils ont même mis des bugs pour faire plus vrai, les sournois !
Il y a au moins l’échec de Mars Climate Orbiter :
“Il semble que la perte de Mars Climate Orbiter doit simplement être mise sur le compte d’un problème d’unité dans l’expression d’une force de poussée. Les ingénieurs de Lockheed Martin Astronautics (Denver dans le Colorado), la firme qui a conçu et fabriqué la sonde martienne, avaient apparemment gardé la mauvaise habitude de travailler avec les unités du système anglo-saxons. De leur côté, les ingénieurs du Jet Propulsion Laboratory (Pasadena en Californie) travaillaient depuis des années dans le système métrique, reconnu au niveau international comme étant le système de référence. Il semble que lors du transfert des données entre le centre de Lockheed et celui du JPL, personne ne se soit rendu compte qu’il fallait convertir les données, chacun étant persuadé que l’un utilisait les mêmes unités que l’autre ! Les données qui proviennent de Lockheed sont pourtant soumises à des procédures particulièrement sévères de vérification, mais celles ci sont restées parfaitement inopérantes. L’erreur était apparemment trop grossière pour être détecté, et elle est passée comme un poisson dans l’eau à travers les barrières du système de vérification.” (source : nirgal.net)
Oui je me pose la même question.
Génial sinon !
Edit : une piste :http://www.ibiblio.org/apollo/yaYUL.html
En tout cas on se marre bien dans la déclaration de bug sur github
" />
Merci pour la piste, en suivant un peu on trouve de la lecture
" />
Ce que j’y voit dans les premières pages me fait penser que c’est un CPU maison comme on faisait à l’époque.
Ce qui est impressionnant, c’est l’environnement logiciel mis en place la dessus
Ça aurait été par mal de coller cette célèbre photo de Margaret Hamilton
https://upload.wikimedia.org/wikipedia/commons/2/2e/Margaret_Hamilton.gif
Processeur fabriqué par Fairchild semiconductor disposant d’un quarantaine d’instructions.
A cette époque Fairchild comportait parmi ses employés des gens comme Gordon Moore ou Robert Noyce…
Les commentaires dans le bug report, trop bons
" />
époque bénie ou on gardait les dumps et listings papier et on les revendait avec le carton pour se payer une bouffe en fin de mois
" />
Plus tard on les a utilisés pour protéger le sol pendant les travaux de peinture à la maison!
Les dumps traces et autres listings dématérialisés ont tué les bonne bouffes et les travaux de peinture
Merci à tous ceux qui ont partagé leur connaissance sur le CPU
Pour le tissage des mémoires à tores, c’était des femmes qui le faisait en raison de la taille des mains.
Par contre, elles s’y flinguaient les yeux quasi à coup sûr.
Même pour la RAM les mémoires à tores sont restées en usage dans le domaine spatial bien plus longtemps que sur terre, en raison de leur grande résistance aux rayons cosmiques.
t’as un truc sur wikipedia sur l’AGC
https://en.wikipedia.org/wiki/Apollo_Guidance_Computer
Yep, on trouve à peu de chose près la même chose sur ce genre de truc de megalo (c’est russe évidemment) https://www.youtube.com/watch?v=A-UXWh4Rj_E
Et voilà, j’avais oublié de chercher sur Wikipedia
" />
Merci de m’avoir gentiment indiqué l’article.
à noter que ce processeur est constitué de milliers de puces logiques simples (à l’époque on ne savait mettre que quelques transistors par puce), le tout relié par un immonde et immense plat de spaghetti de câbles.
The Apollo flight computer was the first to use integrated circuits (ICs). While the Block I version used 4,100 ICs, each containing a single three-input NOR gate, the later Block II version (used in the crewed flights) used 2,800 ICs, each with dual three-input NOR gates”
merci, je télécharge le programme et je mets à jour mes vaisseaux de KSP.
Le hard le confirme souvent.😈
Ah non, maintenant c’est Typescript, comme ça même les dev Java ne sont pas dépaysés :-*
Margaret Hamilon avec un peu de code version bois mort
Ah damned, pas lu tous les comm’
" />
Merci pour ce lien. J’aurais une excuse à fournir lorsqu’une personnes viendra me voir avec un bug.
" />
J’ai même expliqué à quoi ça servait pendant les 2 premières générations
" />
Une petite photo des femmes travaillant chez Raytheon et câblant les programmes d’Apollo.
L’AGC avait 46 ko de ROM et 2 Ko de RAM.
Je me demande a quoi ressemble un bout de code de hubble (^.^)
Java et Javascript sont nés (pour le “grand” public) la même année : en 1995.
Les 2 sont des trucs de vieux alors ?
Cependant Java arrive en tête dans pratiquement tous les classements qu’on trouve sur le Web.
Ils seront superproductifs à tout faire à la souris n’empêche. Et cela permet d’économiser les écrans tactiles et les claviers c’est bien ça.
pas du x86 en tout cas.
ouaih c’est space.
En aero on cause en miles, inch etc … jamais en mètre …
Je trouve quand même assez formidable qu’un logiciel de 1969 ait été en mesure de conduire l’humain sur la Lune. Alors que de nos jours, 50 ans plus tard, on se tâte toujours pour essayer de dessiner une ébauche de vaisseau capable de mener l’homme sur Mars.
Je me doute bien qu’il y a des contraintes supplémentaires liées à la gravité martienne et à la durée du voyage, (et notamment la décalcification des os entraînée par une apesanteur trop longue), mais j’ai l’impression que ça n’explique pas tout.
Faut croire que la fin de la concurrence soviétique a considérablement limité l’intérêt d’une telle mission. Je pense que c’est davantage une question de volonté que d’obstacles difficiles à surmonter, même si ces derniers existent. Après tout, voyager sur la Lune semblait impossible dans les années 50, et les USA y sont parvenus seulement 10 ans après.
Bah il faut des mesures précises au départ sinon à l’arrivé tu as des gros soucis.
Tout en haut, le point d’exclamation dans un triangle (n’apparait que lorsque tu fais défiler le site vers le bas).
La présence du bug que la NASA à caché depuis des décennies est la preuve que nous ne sommes jamais allé sur la Lune.
" />