Apollo 11 : le code source de l'ordinateur de bord disponible sur GitHub

Apollo 11 : le code source de l’ordinateur de bord disponible sur GitHub

Déjà un bug identifié

Avatar de l'auteur
Sébastien Gavois

Publié dans

Internet

11/07/2016 2 minutes
56

Apollo 11 : le code source de l'ordinateur de bord disponible sur GitHub

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.

Écrit par Sébastien Gavois

Tiens, en parlant de ça :

Sommaire de l'article

Introduction

next n'a pas de brief le week-end

Le Brief ne travaille pas le week-end.
C'est dur, mais c'est comme ça.
Allez donc dans une forêt lointaine,
Éloignez-vous de ce clavier pour une fois !

Fermer

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 !



<img data-src=" /><img data-src=" /><img data-src=" /><img data-src=" /><img data-src=" />


Trois fautes dans l’article :




  1. « Chacun peur » ;

  2. « à avoir envoyée » ;

  3. « qui conçu et développé ».



    Faudrait vous relire un peu plus, la prochaine fois. <img data-src=" />


Faudrait penser à utiliser le bouton “Signalez une erreur” la prochaine fois&nbsp;<img data-src=" />


Il est où ?








Plasma a écrit :



Il est où ?







en haut, sur la bande avec le titre, il apparait des qu’on scrolle un peu. C’est le ! dans un triangle



C’est en assembleur, c’est ça ?


vient juste de regarder un fichier et paf le coup de vieux <img data-src=" /> de l’assembleur


J’aime bien le fichier sobrement intitulé “THE_LUNAR_LANDING.s” <img data-src=" />





&nbsp;


“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 ^^ .








_Quentin_ a écrit :



J’aime bien le fichier sobrement intitulé “THE_LUNAR_LANDING.s” <img data-src=" />





&nbsp;





Je préfère le&nbsp;BURN_BABY_BURN–MASTER_IGNITION_ROUTINE.s&nbsp;<img data-src=" />



Tien, des commentaires de sources que j’ai vue, ils travaillent en mètres. Ils ont du galéré un peut les Américains<img data-src=" />

<img data-src=" />


Dingue, on trouve même le code de l’easter egg (PINBALL_GAME*.s)

<img data-src=" />


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 <img data-src=" />


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&nbsp; cas on se marre bien dans la déclaration de bug sur github <img data-src=" />


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&nbsp;<img data-src=" />








levhieu a écrit :



Et quelqu’un a une idée du processeur ?

(les instructions ne me raccrochent à rien que je connaisse)







http://www.computerweekly.com/feature/Apollo-11-The-computers-that-put-man-on-th…



Ç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








levhieu a écrit :



Et quelqu’un a une idée du processeur ?

(les instructions ne me raccrochent à rien que je connaisse)





Je crois que pour le CPU on est sur du 16bits à 1Mhz.

Mais le plus fascinant, c’est le stockage des programmes. A l’époque on avait le choix entre les cartes perforées, et les bandes magnétiques. Les deux ont une fiabilité insuffisante pour un voyage habité dans l’espace, et ne pourraient pas supporter les vibrations extrêmes au décollage. Sans compter la place ultra-limitée à bord.



Du coup, la ROM a été tissée (Core rope memory) en binaire par des armées de femmes. En gros il y a des cordes doublées et des anneaux. Selon si l’anneau encercle les deux cordes ou une seule, ça signifie 1 ou 0.



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 <img data-src=" />


é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

<img data-src=" />


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 <img data-src=" />



&nbsp;Merci de m’avoir gentiment indiqué l’article.

&nbsp;








taralafifi a écrit :



C’est en assembleur, c’est ça ?





Ils connaissaient pas Java à l’époque. Heureusement.<img data-src=" />









levhieu a écrit :



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.





Oui, ça devait être de la taille d’une camionnette.<img data-src=" />



à 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.








Ricard a écrit :



Ils connaissaient pas Java à l’époque. Heureusement.<img data-src=" />







Malheureux, ne parle pas de Java, c’est déjà un truc de vieux.



Maintenant, ils ne connaissent plus que javascript.



Et dans le futur, ils feront tout en Scratch. <img data-src=" />



Le hard le confirme souvent.😈








Ami-Kuns a écrit :



Le hard le confirme souvent.😈





Vous êtes un connaisseur !



Ah non, maintenant c’est Typescript, comme ça même les dev Java ne sont pas dépaysés :-*








John Shaft a écrit :



Margaret Hamilon avec un peu de code version bois mort





Grillé par #23 :)&nbsp;



Ah damned, pas lu tous les comm’ <img data-src=" />


Merci pour ce lien. J’aurais une excuse à fournir lorsqu’une personnes viendra me voir avec un bug. <img data-src=" />


J’ai même expliqué à quoi ça servait pendant les 2 premières générations

<img data-src=" />


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. &nbsp;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.









<img data-src=" />