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. SOFTWARE-ARCHÄOLOGIE
    Was wir von der
    Mondlandefähre
    lernen können!

    View full-size slide

  2. 2
    29.09.23 © 2023 viadee

    View full-size slide

  3. 3
    29.09.23 © 2023 viadee
    Bildquellen: Stiftung Haus der Geschichte; EB-Nr. OZS 001/1957/239 / Wikimedia Commons / NASA

    View full-size slide

  4. 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)

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  9. 9
    29.09.23 © 2023 viadee
    Bildquellen: Von NASA, gemeinfrei

    View full-size slide

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

    View full-size slide

  11. 11
    29.09.23 © 2023 viadee
    Bildquellen: James A. Hand, MIT‘s Role in Project Apollo (R-700), Volume 1, October 1971

    View full-size slide

  12. 12
    AGC HARDWARE
    29.09.23 © 2023 viadee
    55, 33, 15
    Abmessungen in cm (Länge, Breite, Höhe)

    View full-size slide

  13. 13
    AGC HARDWARE
    29.09.23 © 2023 viadee
    32
    Gewicht in kg

    View full-size slide

  14. 14
    AGC HARDWARE
    29.09.23 © 2023 viadee
    55
    Stromverbrauch in Watt

    View full-size slide

  15. 15
    AGC HARDWARE
    29.09.23 © 2023 viadee
    16
    Bit-Architektur
    1 Vorzeichen, 14 Stellen, 1 Paritätsbit

    View full-size slide

  16. 16
    AGC HARDWARE
    29.09.23 © 2023 viadee
    -16,383 bis 16,383
    Integer-Wertebereich
    Einerkomplement

    View full-size slide

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

    View full-size slide

  18. 18
    AGC HARDWARE
    29.09.23 © 2023 viadee
    2048
    words read/write memory (RAM)
    Entspricht 4 KiB

    View full-size slide

  19. 19
    AGC HARDWARE
    29.09.23 © 2023 viadee
    36.864
    words read-only-memory (ROM)
    Entspricht 72 KiB

    View full-size slide

  20. 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)

    View full-size slide

  21. 21
    AGC HARDWARE
    29.09.23 © 2023 viadee
    2
    Taktfrequenz in MHz

    View full-size slide

  22. 22
    AGC HARDWARE
    29.09.23 © 2023 viadee
    51.000 / 1.900
    Downlink data rate in bps (bit per second)
    zur Mission Control („Houston“)

    View full-size slide

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

    View full-size slide

  24. 24
    https://svtsim.com/moonjs/agc.html
    29.09.23 © 2023 viadee
    DSKY / AGC SIMULATOR

    View full-size slide

  25. 25
    29.09.23 © 2023 viadee
    Bildquellen: Von Brandrodungswanderfeldhackbau - Eigenes Werk, Gemeinfrei, https://commons.wikimedia.org/w/index.php?curid=3612656

    View full-size slide

  26. 26
    EXECUTIVE = ECHTZEITBETRIEBSSYSTEM
    29.09.23 © 2023 viadee
    7
    Prozesse nach Priorität gewichtet
    Kooperatives Multitasking mit NEWJOB

    View full-size slide

  27. 27
    EXECUTIVE = ECHTZEITBETRIEBSSYSTEM
    29.09.23 © 2023 viadee
    11
    Verschiedene Interrupts
    T3RUPT = TIME3 timer overflow
    KEYRUPT1 = Keystroke DSKY

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  30. 30
    29.09.23 © 2023 viadee
    https://apolloinrealtime.org/

    View full-size slide

  31. 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)

    View full-size slide

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

    View full-size slide

  33. 33
    ALARMS
    29.09.23 © 2023 viadee
    1202
    Executive Overflow – NO VAC AREAS
    Vector Accumulator (VAC) Area Exhaustion
    à Mehr als 5 Interpreter-Jobs

    View full-size slide

  34. 34
    29.09.23 © 2023 viadee
    Bildquellen: James A. Hand, MIT‘s Role in Project Apollo (R-700), Volume 1, October 1971

    View full-size slide

  35. 35
    29.09.23 © 2023 viadee
    Software
    Engineering

    View full-size slide

  36. 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)

    View full-size slide

  37. 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!“

    View full-size slide

  38. 38
    MISSION CONTROL (HOUSTON)
    29.09.23 © 2023 viadee
    Bildquellen: Space Center Houston (spacecenter.org)

    View full-size slide

  39. 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)

    View full-size slide

  40. 40
    29.09.23 © 2023 viadee

    View full-size slide

  41. 41
    29.09.23 © 2023 viadee

    View full-size slide

  42. 42
    METHODIK / PRINZIPIEN BLEIBEN
    29.09.23 © 2023 viadee
    Agile
    Planung
    Iterative Entwicklung
    Simulation
    Robust
    Fehlertolerant
    Vision
    Inspiration
    Konkurrenz
    belebt das
    Geschäft

    View full-size slide

  43. 43
    METHODIK / PRINZIPIEN BLEIBEN
    29.09.23 © 2023 viadee
    Abstraktion
    Virtualisierung

    View full-size slide

  44. 44
    29.09.23 © 2023 viadee
    Vielen Dank fürs Mitfliegen
    bei der Raketenhistorie J
    Tobias Voß
    [email protected]
    @tobiaslvoss
    tobiaslvoss

    View full-size slide