Die Apollo-Missionen verfügten über eine Technologie, die nicht komplizierter war als ein Taschenrechner.
Von Link hier gibt es eine Information über Apollo Guidance Computer (AGC)
Der an Bord befindliche Apollo Guidance Computer (AGC) wies eine Größe von etwa 1 Kubikfuß mit 2 KByte 16-Bit-RAM und 36 KByte festverdrahtetem Kernseilspeicher mit Kupferdrähten auf, die durch winzige Magnetkerne gefädelt waren oder nicht. Die 16-Bit-Wörter waren im Allgemeinen 14 Datenbits (oder zwei Operationscodes), 1 Vorzeichenbit und 1 Paritätsbit. Die Zykluszeit betrug 11,7 Mikrosekunden. Die Programmierung erfolgte in Assemblersprache und in einer interpretativen Sprache, in umgekehrter polnischer Sprache.
Ich bin also auf einen Quellcode gestoßen, als ich nachforschte, was dort oben war, und habe großartige Kommentare bemerkt (z. B. 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
Die tatsächlichen Programme im Raumschiff waren im Kernseilspeicher gespeichert , einer alten Speichertechnologie, die durch (buchstäblich) Weben eines Gewebes / Seils hergestellt wurde, wobei die Bits physikalische Ringe aus Ferritmaterial waren. "Kern" -Speicher ist resistent gegen kosmische Strahlung. Der Zustand eines Kernbits ändert sich nicht, wenn es durch Strahlung im Weltraum bombardiert wird.
Die Virtual Apollo Guidance Computer (AGC) Software ist auch auf GITHUB!
Ein Teil der Dokumentation ist hier.
Ein weiteres Beispiel für Quellcode mit tollen Kommentaren.
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
Meine Frage lautet hier:
- Wie konnten die Teams so viel Code schreiben, damit er mit den damaligen Tools funktioniert?
Denn wenn Sie so viel Code kompilieren, der in Apollo 11 verwendet wurde, würde es Tage oder sogar Wochen dauern. Ich bezweifle ernsthaft, dass die Programmierer damals alles dem Zufall überlassen haben.
HOPE HOPE HOPE
bekommst es gleich richtig hin.Antworten:
Es gab einen schönen Dokumentarfilm über John 'Jack' Garman, der ein "vorrangig geplantes Multiprogramming-Betriebssystem" "erfinden" musste. Dies kann jedoch mit dem Landermodul zusammenhängen. Die Geschichte war, dass Sie bei der Landung auf dem Lander der Führung den Vorrang geben sollten, da andere Dinge, wie die Temperatur in der Kabine für die nächsten 15 Sekunden, keine Rolle spielten, wenn Sie abstürzten und sich verbrannten. Bei der ersten Aufnahme überlasteten sie den Computer und es traten Alarme auf, weil einige Unterprogramme nicht ausgeführt wurden. Es waren zu viele geladen, aber dank des Prioritätskonzepts, das Garman vorausgesehen und eingebaut hatte, weil er es für eine gute Idee hielt, beeinträchtigten die Routinen mit niedriger Priorität die Landeroutine mit höherer Priorität nicht.
Als ich mir damals die Dokumentation ansah, war ich beeindruckt, wie es war, den Code grundlegend umzugestalten, ohne das Management zu informieren, und fast entlassen zu werden, weil Sie zu spät dran waren, woran Sie eigentlich arbeiten sollten. In diesem Fall kam das Refactoring jedoch zum Vorschein, als der Grund für die Alarme untersucht wurde. (Und das Management war noch sauer! :-)
Einige Links:
Nein, ein „Checklistenfehler“ hat die erste Mondlandung nicht beinahe zum Erliegen gebracht
GESCHICHTEN VOM LUNAR MODULE GUIDANCE COMPUTER
Wie sie es gebaut haben: Die Software von Apollo 11
NASA Johnson Space Center Oral History-Projekt Herausgegebenes Oral History-Transkript
Kurze Geschichte des Apollo-Programms der NASA - Auszug: Fünf Minuten nach dem Abstieg und 1.800 m über der Mondoberfläche löste der Navigations- und Navigationscomputer LM den ersten von mehreren unerwarteten Programmalarmen "1202" und "1201" aus. Jack Garman, Computeringenieur am Mission Control Center in Houston, sagte dem Führungsoffizier Steve Bales, es sei sicher, den Abstieg fortzusetzen. Bei diesen Alarmen handelte es sich um Anzeichen für einen "Executive Overflow", was bedeutete, dass der Leitcomputer nicht alle seine Aufgaben in Echtzeit ausführen konnte und einige davon verschieben musste.
Rückblick auf den 'Giant Leap'- Auszug: Wir wussten, was das war und dass es nicht passieren sollte. Wir hatten jedoch ein System entwickelt, das sich bemühte, sich von Überlastungszuständen zu erholen. Also erinnere ich mich, wie Jack Garman [NASA-Computertechniker] rief: "Los, los!" Und weiter gingen sie. Dann hörten wir zu, wie Neil das LEM weiter flog und versuchte, einen guten Platz zum Aufsetzen zu finden. Unsere neue Sorge war der Treibstoffmangel. Aber schließlich hörten wir die Kontaktmeldung und dann "Der Adler ist gelandet."
Jack Garman Interview
EDIT: Vielleicht war dies der Dokumentarfilm: Apollo 11: The Untold Story (2006)
Darsteller: John R. Garman ... als er
selbst - Apollo 11 Computer Engineer (als Jack Garman)
(Unter anderen).
Update: Ein Hacker aus Südafrika hat gerade den ersten NASA-Computer im Weltraum gerettet
quelle
Wenn ich das richtig verstehe, war der Entwicklungsprozess Peer Review und Experimentieren.
Das Team bestand aus Leuten wie "Math Doctors" - extrem engagierten, intelligenten, leidenschaftlichen, detailorientierten Leuten, deren Leben ihrer Arbeit gewidmet war. Wenn ich also Peer Review sage, meine ich viele Peer Reviews über viele Monate (mehr als ein Jahr).
Diese Entwickler "führten die Simulationen in ihren Köpfen durch", "debuggten die Software auf Papier" und arbeiteten in Gruppen mit vielen Entwicklern, die immer wieder denselben Code betrachteten, bis sie überzeugt waren, dass er korrekt war. Es gab mehrere Teams - jedes arbeitete an einem Teil des Ganzen.
Mein Professor für Numerische Methoden an der Ohio State University (Frühjahr '96) schrieb den Code, der entschied, wann die Booster-Rakete gestartet werden sollte. Er beschrieb den Ausdruck als die Größe des Telefonbuchs (also vielleicht 2,5 bis 3,5 Zoll dickes Papier von 8,5 x 11 Zoll - die Schriftgröße beschrieb er nicht) des Fortran-Codes.
Wenn sie überzeugt waren, starteten sie eine unbemannte Rakete (Raketen haben technisch gesehen keine Gyroskope) mit einem Radio an Bord, das in regelmäßigen Abständen einen Piepton ausstrahlte. Sie hörten die Pieptöne bis zu dem Punkt, an dem sie erwarteten, dass das Radio den Mond treffen würde (gegen ihn prallen und sich selbst zerstören) und hörten auf zu piepen. Sie wussten, dass das Radio nach der berechneten Aufprallzeit noch lange piepsen würde, wenn sie es versäumten. Der Aufprall erfolgte 15 Sekunden nach der berechneten Zeit.
Diese zugegebenermaßen ungewöhnliche Geschichte ist meine Erinnerung an einen Arztbesuch. Er war sehr alt und es ist lange her. Dies ist meine beste Erinnerung.
quelle
Die AGC wird mit Verben und Substantiven gesteuert
Die Apollo-Befehlssoftware ist in keiner Syntax geschrieben, die Benutzer heute erkennen würden. Astronauten geben Befehle numerisch ein, wobei jede zweistellige Zahl ein Verb oder ein Substantiv darstellt. Das Verb beschrieb die auszuführende Aktion, und das Nomen spezifizierte die Daten, die von der Aktion des Verbs betroffen sein sollen.
Astronauten hassten das Verb- und Nomen-Setup
Ramón Alonso, einer der ursprünglichen AGC-Hardware-Entwickler, sagte, die Benutzeroberfläche sei erfunden worden, um die Besucher in ihrem Labor zu beeindrucken. Er sei jedoch auf den Flügen geblieben, als niemand eine bessere Benutzeroberfläche entwickelt habe. Kritiker sagten, es sei nicht "wissenschaftlich", und die ersten Astronauten - alles Elite-Jet-Piloten - bevorzugten Wählscheiben und Schalter, ähnlich wie bei einer Flugzeugsteuertafel.
Die Software, wie sie entworfen wurde, wurde vom MIT von Grund auf neu erstellt.
Sie können das Apollo Guidance Computer-Emulatorprogramm problemlos auf Ihren PC herunterladen und installieren. So sieht es unter Mac OS X aus.
quelle
Wie so ziemlich jedes andere Softwareprojekt wurde es unter aggressivem Termin- und Qualitätsdruck durchgeführt. Glücklicherweise steht hier ein großes Archiv von Material des Software-Projektmanagers Howard W. "Bill" Tindall, Jr. zur Verfügung .
Wenn Sie die Memos probieren, können Sie den normalen Konflikt zwischen Zeit, Merkmalen und Fehlern sehr gut nachvollziehen. Es ist erwähnenswert, dass die Entwicklung wie der Rest des Projekts über mehrere Jahre verlief .
Ich kann keine konkreten Verweise auf die Erstellung der Software finden, kann aber angesichts des Datums nur davon ausgehen, dass ein Großteil davon auf Stift und Papier erstellt wurde, wobei "Simulationen" manuell durchgeführt wurden. Anscheinend gab es ein System zum Laden von Programmen mit Lochkarten in die AGC, vermutlich für "schnelle" Tests vor Ort, ohne dass ein Seilspeicher hergestellt werden musste.
quelle