Les missions Apollo n’avaient pas la technologie plus compliquée qu’une calculatrice de poche.
De lien ici , il y a une information sur Apollo Guidance Computer (AGC)
L’ordinateur de bord Apollo (AGC) embarqué mesurait environ 1 pied cube avec 2K de RAM 16 bits et 36K de mémoire cœur-câble câblée avec des fils de cuivre enfilés ou non dans de minuscules noyaux magnétiques. Les mots de 16 bits comprenaient généralement 14 bits de données (ou deux codes d'opération), 1 bit de signe et 1 bit de parité. Le temps de cycle était de 11,7 microsecondes. La programmation était faite en langage d'assemblage et dans un langage d'interprétation, en polonais inversé.
Donc, je suis tombé sur un code source lorsque j'ai fait des recherches sur ce qui se trouvait là-bas et j'ai remarqué d'excellents commentaires (par exemple, TEMPORARY, I HOPE HOPE HOPE)
VRTSTART TS WCHVERT
# Page 801
CAF TWO # WCHPHASE = 2 ---> VERTICAL: P65,P66,P67
TS WCHPHOLD
TS WCHPHASE
TC BANKCALL # TEMPORARY, I HOPE HOPE HOPE
CADR STOPRATE # TEMPORARY, I HOPE HOPE HOPE
TC DOWNFLAG # PERMIT X-AXIS OVERRIDE
ADRES XOVINFLG
TC DOWNFLAG
ADRES REDFLAG
TCF VERTGUID
Les programmes réels de l’engin spatial étaient stockés dans la mémoire principale du câble , une technologie de mémoire ancienne réalisée par le tissage (littéral) d’un tissu / câble, où les bits étaient des anneaux physiques en ferrite. La mémoire "centrale" résiste aux rayons cosmiques. L'état d'un trépan ne changera pas lorsqu'il est bombardé par des radiations dans l'espace extra-atmosphérique.
Le logiciel AGC (Virtual Apollo Guidance Computer) est également sur GITHUB!
Une partie de la documentation est ici.
Un autre exemple de code source avec de bons commentaires.
033911,000064: 32,3017 06037 FLAGORGY TC INTPRET # DIONYSIAN FLAG WAVING
034090,000243: 32,3241 13247 BZF P63SPOT4 # BRANCH IF ANTENNA ALREADY IN POSITION 1
034091,000244:
034092,000245: 32,3242 33254 CAF CODE500 # ASTRONAUT: PLEASE CRANK THE
034093,000246: 32,3243 04616 TC BANKCALL # SILLY THING AROUND
034094,000247: 32,3244 20623 CADR GOPERF1
034095,000248: 32,3245 16001 TCF GOTOP00H # TERMINATE
034096,000249: 32,3246 13235 TCF P63SPOT3 # PROCEED SEE IF HE'S LYING
034101,000254: 32,3251 04635 TC POSTJUMP # OFF TO SEE THE WIZARD ...
034102,000255: 32,3252 74126 CADR BURNBABY
Ma question est la suivante:
- Comment les équipes qui ont écrit ce code ont-elles été capables de le rendre fonctionnel avec les outils de l'époque?
Parce que si vous compilez autant de code utilisé sur Apollo 11 ... cela prendrait des jours, voire des semaines. Je doute sérieusement que les programmeurs à l'époque aient laissé tout pour arriver par hasard.
HOPE HOPE HOPE
vous en sortez bien la première fois.Réponses:
J'essaie de poursuivre un documentaire charmant sur John 'Jack' Garman a dû "inventer" un "système d'exploitation multiprogrammé à priorités programmées". Cela a peut-être été lié au module d'atterrisseur. L’histoire était que, lors de l’atterrissage de l’atterrisseur, il était préférable d’accorder la priorité à l’orientation car d’autres facteurs, comme la température dans la cabine pendant les 15 prochaines secondes, importaient peu si vous tombiez sur un véhicule et brûliez. Sur le premier coup, ils ont surchargé l'ordinateur et des alarmes ont commencé à se déclencher car certaines sous-routines n'étaient pas exécutées. Il y avait trop de véhicules chargés, mais grâce au concept de priorité que Garman avait prévu et intégré parce qu'il pensait que c'était une bonne idée, les routines à faible priorité ne ralentissaient pas la routine d'atterrissage à priorité élevée.
En regardant le documentaire à l’époque, j’ai été frappé par le fait que c’était comme faire une refactorisation majeure du code sans le dire à la direction et presque me faire virer parce que vous étiez en retard sur ce sur quoi vous étiez censé travailler. Dans ce cas, toutefois, la refactorisation a été révélée lors de la recherche du motif des alarmes. (Et la direction était toujours énervée! :-)
Quelques liens:
Non, une "erreur de la liste de contrôle" n'a pas failli faire dérailler le premier atterrissage sur la lune
CONTES DE L'ORDINATEUR DE MODULES LUNAIRES
Comment ils l'ont construit: le logiciel d'Apollo 11
Projet d'histoire orale du centre spatial Johnson de la NASA
Bref historique du programme Apollo de la NASA Extrait: Cinq minutes après le début de la descente et à 1 800 m au-dessus de la surface de la Lune, l’ordinateur de navigation et de guidage LM a déclenché la première de plusieurs alarmes de programme inattendues "1202" et "1201". L'ingénieur informaticien du centre de contrôle de la mission à Houston, Jack Garman, a déclaré à l'agent d'orientation Steve Bales qu'il était prudent de poursuivre la descente. Ces alarmes indiquaient des "dépassements de capacité", ce qui signifiait que l'ordinateur de guidage ne pouvait pas accomplir toutes ses tâches en temps réel et devait en retarder certaines.
Rappelez-vous l' extrait du «bond de géant» : nous savions ce que c'était et cela ne devrait pas se produire. Mais nous avions conçu un système qui s'efforçait de récupérer des conditions de surcharge. Je me souviens donc avoir entendu Jack Garman [ingénieur informaticien de la NASA] crier: «Allez, va! Et ils sont allés. Ensuite, nous avons écouté Neil piloter le LEM et essayer de trouver un bon endroit pour le touché. Notre nouvelle inquiétude était le manque de carburant restant. Mais finalement, nous avons entendu la notification de contact et ensuite, "L'Aigle a atterri."
Entretien de Jack Garman
EDIT: Peut-être que c'était le documentaire: Apollo 11: The Untold Story (2006)
Casting: John R. Garman ...
Lui-meme - Apollo 11 Ingénieur informaticien (comme Jack Garman)
(Entre autres).
Mise à jour: un pirate informatique d'Afrique du Sud vient de sauver le premier ordinateur de la NASA dans l'espace
la source
Si je comprends bien, le processus de développement était une revue par les pairs et une expérimentation.
L'équipe était composée de personnes comme "Math Doctors" - des gens extrêmement dévoués, intelligents, passionnés, soucieux du détail, dont la vie était consacrée à leur travail. Ainsi, lorsque je parle d’évaluation par les pairs, j’entends beaucoup d’évaluations par les pairs au cours de nombreux mois (plus d’un an).
Ces développeurs "ont exécuté les simulations dans leur tête", "ont débogué le logiciel sur papier" et ont travaillé en groupes avec de nombreux développeurs examinant le même code encore et encore jusqu'à ce qu'ils soient convaincus qu'il était correct. Il y avait plusieurs équipes, chacune travaillant sur une partie du tout.
Mon professeur de méthodes numériques à l'Ohio State University (printemps 1996) a écrit le code qui a décidé de lancer une scène de la fusée de rappel. Il a décrit l'imprimé comme étant la taille de l'annuaire téléphonique (donc, peut-être de 2,5 à 3,5 pouces d'épaisseur de papier 8,5 x 11 pouces - il n'a pas décrit la taille de la police) de code Fortran.
Une fois convaincus, ils ont lancé un missile sans équipage (les fusées n’ont techniquement pas de gyroscope) avec une radio à bord émettant un bip sonore à intervalles réguliers. Ils ont écouté les bips jusqu'au point où ils s'attendaient à ce que la radio ait un impact sur la lune (s'écrase sur elle-même et se détruise) et arrête les bips. Ils savaient que s'ils manquaient, la radio continuerait à émettre des bips bien au-delà de l'heure calculée de l'impact. L'impact s'est produit 15 secondes après l'heure calculée.
Cette histoire admettablement anecdotique est ce que je me souviens d'une visite de bureau chez le médecin. Il était très vieux et c'était il y a longtemps. C'est mon meilleur souvenir.
la source
Le CAG est contrôlé avec des verbes et des noms
Le logiciel de commande Apollo n’est écrit dans aucune syntaxe que les utilisateurs reconnaissent aujourd’hui. Les astronautes saisissent les commandes numériquement, chaque nombre à deux chiffres représentant un verbe ou un nom. Le verbe décrivait l'action à exécuter et le nom spécifiait les données à affecter par l'action du verbe.
Les astronautes ont détesté la configuration du verbe et du nom
Ramón Alonso, l'un des développeurs de matériel d'origine de l'AGC, a déclaré que l'interface avait été inventée pour impressionner les visiteurs de leur laboratoire, mais qu'elle restait bloquée pendant les vols alors que personne ne développait une meilleure interface. Les critiques ont affirmé que ce n'était pas "scientifique" et que les premiers astronautes - tous des pilotes d'avion à réaction d'élite - ont préféré des cadrans et des commutateurs similaires à ceux d'un panneau de commande d'avion.
Le logiciel tel qu'il a été conçu a été construit à partir de rien par le MIT.
Vous pouvez télécharger et installer le programme d'émulateur Apollo Guidance Computer sur votre ordinateur personnel, sans problème. Voici à quoi cela ressemble sur Mac OS X.
la source
Comme à peu près tous les autres projets logiciels, les délais et la qualité demandés ont été sévères. Heureusement, une vaste archive de documents du gestionnaire de projet logiciel Howard W. «Bill» Tindall, Jr. est disponible ici .
Si vous échantillonnez les mémos, vous pouvez avoir une très bonne idée du conflit normal entre le temps, les fonctionnalités et les défauts. Il convient de noter que le développement a duré plusieurs années, comme le reste du projet.
Je ne trouve pas de références spécifiques à la manière dont le logiciel a été créé, mais compte tenu de la date, je ne peux que supposer que cela a été fait en grande partie sur papier et sur papier, avec des "simulations" effectuées manuellement. Il semble qu’il existait un système de chargement de programmes dans le CAG avec des cartes perforées, vraisemblablement pour des tests "rapides" sur le terrain sans qu'il soit nécessaire de fabriquer une mémoire de câble.
la source