Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Software-Archäologie - Was wir von der Mondlandefähre lernen können!

Tobias Voß
September 28, 2023

Software-Archäologie - Was wir von der Mondlandefähre lernen können!

Die Mondlandung ist gut 50 Jahre her und die Menschheit plant erneut große Raumfahrtprogramme. Bei der ersten Mondlandung hat die IT eine wesentliche Rolle gespielt und es wurden wichtige Fundamente des Software Engineering geschaffen. Der Begriff selbst wurde von Margaret Hamilton während der Entwicklung des Apollo Guidance Computer (AGC), des Steuermoduls der Mondlandefähre, geprägt.

Ich möchte etwas Software-Archäologie betreiben und mit einem Rückblick auf die bahnbrechenden Erfindungen des AGC einen Kontrastpunkt zum Technologie-Hype setzen. Für eines der ersten eingebetteten Systeme wurden Prioritätsscheduling, Multitasking und ein Echtzeitbetriebssystem entwickelt. Eine der ersten virtuellen Maschinen stellte mathematische Funktionen bereit und abstrahierte von der Hardware. Ein wesentlicher Erfolgsfaktor war die Robustheit der Software, die sich durch eine gute Fehlerbehandlung auszeichnete und vor Bedienungsfehlern abgesichert wurde, nachdem Hamiltons Tochter beim Herumspielen mit dem AGC einen Absturz verursacht hatte. Diese Eigenschaft kam Minuten vor der Landung zum Tragen und bewahrte die Mission vor dem Abbruch. Werfen wir einen Blick zurück in die Zukunft!

Tobias Voß

September 28, 2023
Tweet

More Decks by Tobias Voß

Other Decks in Programming

Transcript

  1. 3 29.09.23 © 2023 viadee Bildquellen: Stiftung Haus der Geschichte;

    EB-Nr. OZS 001/1957/239 / Wikimedia Commons / NASA
  2. 4 29.09.23 © 2023 viadee „We choose to go to

    the Moon...We choose to go to the Moon in this decade and do the other things, not because they are easy, but because they are hard.“ (John F. Kennedy, 12.09.1962, Address at Rice University on the Nation's Space Effort) „I believe that this nation should commit itself to achieving the goal, before this decade is out, of landing a man on the Moon and returning him safely to the Earth.“ (John F. Kennedy, 25.05.1961, Special Message to the Congress on Urgent National Needs)
  3. 5 29.09.23 © 2023 viadee Bildquellen: Von NASA - This

    is a cropped and rotated version of : http://nix.larc.nasa.gov/info?id=S62-04976&orgid=8File:Mercury_capsule_with_escape_system_-_artist_concept_-_original.jpg, Gemeinfrei, https://commons.wikimedia.org/w/index.php?curid=90873932 Epic 1 (Mercury, 1958-63) Einen Menschen in einen Orbit um die Erde zu bringen.
  4. 6 29.09.23 © 2023 viadee Bildquellen: Von NASA - Great

    Images in NASA Description, Gemeinfrei, https://commons.wikimedia.org/w/index.php?curid=6482593 Epic 2 (Gemini, 1961-66) Kopplungsmanöver und Weltraumspaziergänge als Vorbereitung für Apollo.
  5. 7 29.09.23 © 2023 viadee Bildquellen: By NASA - http://www.hq.nasa.gov/alsj/a11/AS11-40-5903HR.jpg,

    http://www.archive.org/details/AS11-40-5903 (TIFF image), NASA Image and Video Library, Public Domain, https://commons.wikimedia.org/w/index.php?curid=3847764 Epic 3 (Apollo, 1961-72) Mondlandung (und sichere Rückkehr)
  6. 8 CSM = COMMAND SERVICE MODULE LM = LUNAR MODULE

    29.09.23 © 2023 viadee Bildquellen: By NASA - http://www.hq.nasa.gov/office/pao/History/alsj/a15/as15-88-11963.jpg, Public Domain, https://commons.wikimedia.org/w/index.php?curid=243484 By Apollo 16 astronauts - NASA photo AS16-116-18580, cropped, Public Domain, https://commons.wikimedia.org/w/index.php?curid=6057549
  7. 10 AGC = APOLLO GUIDANCE COMPUTER 29.09.23 © 2023 viadee

    Bildquellen: Von Der ursprünglich hochladende Benutzer war Grabert in der Wikipedia auf Deutsch - Übertragen aus de.wikipedia nach Commons durch henristosch., Gemeinfrei, https://commons.wikimedia.org/w/index.php?curid=3984038
  8. 11 29.09.23 © 2023 viadee Bildquellen: James A. Hand, MIT‘s

    Role in Project Apollo (R-700), Volume 1, October 1971
  9. 12 AGC HARDWARE 29.09.23 © 2023 viadee 55, 33, 15

    Abmessungen in cm (Länge, Breite, Höhe)
  10. 15 AGC HARDWARE 29.09.23 © 2023 viadee 16 Bit-Architektur 1

    Vorzeichen, 14 Stellen, 1 Paritätsbit
  11. 16 AGC HARDWARE 29.09.23 © 2023 viadee -16,383 bis 16,383

    Integer-Wertebereich Einerkomplement
  12. 17 AGC HARDWARE 29.09.23 © 2023 viadee 9 Dezimalstellen numerische

    Präzision Realisiert mit Doppelwort (28 bit) Genauigkeit von 1 Fuß (=30,48 cm) bei Navigation
  13. 20 AGC HARDWARE 29.09.23 © 2023 viadee 12 Länge der

    Speicheradressen (bei 3 bit Opcode) Reicht nur für 4096 Worte Memory banking (virtuelle Adressierung)
  14. 22 AGC HARDWARE 29.09.23 © 2023 viadee 51.000 / 1.900

    Downlink data rate in bps (bit per second) zur Mission Control („Houston“)
  15. 23 DSKY 29.09.23 © 2023 viadee Bildquellen: Von Oona Räisänen

    & NASA - Self-made in Inkscape; based on the Apollo Operations Handbook (File:DSKYS interface.jpg, by NASA) and a NASA photo from http://www.nasa.gov/centers/dryden/about/Organizations/Technology/Facts/TF-2001-02-DFRC_prt.htm, Gemeinfrei, https://commons.wikimedia.org/w/index.php?curid=8991950
  16. 25 29.09.23 © 2023 viadee Bildquellen: Von Brandrodungswanderfeldhackbau - Eigenes

    Werk, Gemeinfrei, https://commons.wikimedia.org/w/index.php?curid=3612656
  17. 26 EXECUTIVE = ECHTZEITBETRIEBSSYSTEM 29.09.23 © 2023 viadee 7 Prozesse

    nach Priorität gewichtet Kooperatives Multitasking mit NEWJOB
  18. 27 EXECUTIVE = ECHTZEITBETRIEBSSYSTEM 29.09.23 © 2023 viadee 11 Verschiedene

    Interrupts T3RUPT = TIME3 timer overflow KEYRUPT1 = Keystroke DSKY
  19. 28 EXECUTIVE = ECHTZEITBETRIEBSSYSTEM 29.09.23 © 2023 viadee 100 Tastenanschläge

    für den state vector Telemetry Uplink von Bodenstation RPA = uplink data entspricht DSKY input
  20. 29 INTERPRETER 29.09.23 © 2023 viadee Bildquellen: By Impawards, Fair

    use, https://en.wikipedia.org/w/index.php?curid=1659383 Virtual machine Vektor-/Matrix-Datentypen Trigonometrische / Wurzel-Funktionen Index-Register / Stack-Pointer Einfache Adressierung ohne Banks Gemischter Code mit Executive-Assembly
  21. 31 29.09.23 © 2023 viadee „I want you to study

    and write down every possible program alarm whether they can happen or not.“ Gene Kranz (Flight Director Mission Control) to Jack Garman (Support for Flight Controllers)
  22. 32 ALARMS 29.09.23 © 2023 viadee 1201 Executive Overflow –

    NO CORE SETS à Exhaustion of „Core Sets“, d.h. der Menge der wartenden Prozesse im Scheduler
  23. 33 ALARMS 29.09.23 © 2023 viadee 1202 Executive Overflow –

    NO VAC AREAS Vector Accumulator (VAC) Area Exhaustion à Mehr als 5 Interpreter-Jobs
  24. 34 29.09.23 © 2023 viadee Bildquellen: James A. Hand, MIT‘s

    Role in Project Apollo (R-700), Volume 1, October 1971
  25. 36 29.09.23 © 2023 viadee „The computer (or rather the

    software in it) was smart enough to recognize that it was being asked to perform more tasks than it should be performing. It then sent out an alarm, which meant to the astronaut, 'I'm overloaded with more tasks than I should be doing at this time and I'm going to keep only the more important tasks'; i.e., the ones needed for landing ...“ (Letter from Margaret H. Hamilton, Director of Apollo Flight Computer Programming MIT Draper Laboratory, Cambridge, Massachusetts, titled "Computer Got Loaded", published in Datamation, March 1, 1971)
  26. 37 DSKY 29.09.23 © 2023 viadee Bildquellen: Von Oona Räisänen

    & NASA - Self-made in Inkscape; based on the Apollo Operations Handbook (File:DSKYS interface.jpg, by NASA) and a NASA photo from http://www.nasa.gov/centers/dryden/about/Organizations/Technology/Facts/TF-2001-02-DFRC_prt.htm, Gemeinfrei, https://commons.wikimedia.org/w/index.php?curid=8991950 „Menschliche Fehler beim Programmieren müssen immer einkalkuliert werden!“
  27. 39 DIGITAL AUTOPILOT 29.09.23 © 2023 viadee Bildquellen: „Armstrong and

    Aldrin during Apollo 11 landing rehearsal“, Project Apollo Archive, Public domain, via Wikimedia Commons „At MET 102:43:08 (650 feet), after deciding that he could not stop short of the crater, Armstrong flipped the autopilot mode switch from AUTO to ATT HOLD to take manual control of the LM's attitude. He maneuvered to zero pitch to maintain horizontal velocity and skim over the rocky area.“ (http://klabs.org/history/apollo_11_alarms/eyle s_2004/eyles_2004.htm)
  28. 42 METHODIK / PRINZIPIEN BLEIBEN 29.09.23 © 2023 viadee Agile

    Planung Iterative Entwicklung Simulation Robust Fehlertolerant Vision Inspiration Konkurrenz belebt das Geschäft
  29. 44 29.09.23 © 2023 viadee Vielen Dank fürs Mitfliegen bei

    der Raketenhistorie J Tobias Voß [email protected] @tobiaslvoss tobiaslvoss