Connexion
Abonnez-vous

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

Déjà un bug identifié

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

Le 11 juillet 2016 à 07h05

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 (54)

Vous devez être abonné pour pouvoir commenter.

Abonnez-vous
votre avatar

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=" />

votre avatar







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…


votre avatar

Ç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

votre avatar







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.


votre avatar

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…

votre avatar

Les commentaires dans le bug report, trop bons <img data-src=" />

votre avatar

é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=" />

votre avatar

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.

votre avatar

t’as un truc sur wikipedia sur l’AGC

en.wikipedia.org Wikipedia

votre avatar

Yep, on trouve à peu de chose près la même chose sur ce genre de truc de megalo (c’est russe évidemment) youtube.com YouTube

votre avatar

Et voilà, j’avais oublié de chercher sur Wikipedia <img data-src=" />



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

&nbsp;

votre avatar







taralafifi a écrit :



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





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


votre avatar







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=" />


votre avatar

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


votre avatar

merci, je télécharge le programme et je mets à jour mes vaisseaux de KSP.

votre avatar

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.

votre avatar

Bah il faut des mesures précises au départ sinon à l’arrivé tu as des gros soucis.

votre avatar

Tout en haut, le point d’exclamation dans un triangle (n’apparait que lorsque tu fais défiler le site vers le bas).

votre avatar

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=" />

votre avatar







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=" />


votre avatar

Le hard le confirme souvent.😈

votre avatar







Ami-Kuns a écrit :



Le hard le confirme souvent.😈





Vous êtes un connaisseur !


votre avatar

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

votre avatar
votre avatar







John Shaft a écrit :



Margaret Hamilon avec un peu de code version bois mort





Grillé par #23 :)&nbsp;


votre avatar

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

votre avatar

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

votre avatar

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

<img data-src=" />

votre avatar

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.

votre avatar

Je me demande a quoi ressemble un bout de code de hubble (^.^)

votre avatar

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.

votre avatar

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.

votre avatar

pas du x86 en tout cas.

votre avatar

ouaih c’est space.

En aero on cause en miles, inch etc … jamais en mètre …

votre avatar

Il est où ?

votre avatar







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


votre avatar

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

votre avatar

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

votre avatar

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





&nbsp;

votre avatar

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

votre avatar







_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=" />


votre avatar

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=" />

votre avatar

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

<img data-src=" />

votre avatar

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.

votre avatar

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=" />

votre avatar

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

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

votre avatar

ils ont même mis des bugs pour faire plus vrai, les sournois !

votre avatar

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)

votre avatar

Oui je me pose la même question.



Génial sinon !



Edit : une piste :http://www.ibiblio.org/apollo/yaYUL.html

votre avatar

En tout&nbsp; cas on se marre bien dans la déclaration de bug sur github <img data-src=" />

votre avatar

La Corée du nord est sur la brèche :)

votre avatar

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=" />

votre avatar

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=" />

votre avatar

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

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

Fermer