News

50 Jahre Mondlandung: Code der Apollo 11 auf GitHub

One small step for (a) man. (Foto: Digital Images Studio / Shutterstock)

Der Code der Computersteuerungen für die Apollo-11-Mondlandemission steht auf GitHub zur Verfügung und erfreut Softwareentwickler weltweit.

Burn, Baby, Burn. AGC-Namenskonventionen amüsieren

Anlässlich des fünfzigsten Jahrestages der Mondlandung erhält der auf GitHub verfügbare Source-Code des Apollo-11-Computers verstärkt Aufmerksamkeit. Auf Reddit tauschen sich Entwickler aktuell in humorvoller Weise miteinander aus. Dabei stehen die lustigen und bisweilen schrägen Kommentare, die das Entwicklerteam um die mittlerweile 82-jährige Margaret Hamilton in den Code eingebaut hatte, besonders im Fokus.

So gaben die Entwickler etwa der Start-Routine den Namen BURN_BABY_BURN—MASTER_IGNITION_ROUTINE. An anderen Stellen des Codes finden sich verballhornte Shakespeare-Zitate oder Belege dafür, dass temporäre Funktionen (TEMPORARY, I HOPE HOPE HOPE) letztlich doch im endgültigen Code geblieben sind.

Das Kommando-Modul Columbia der Apollo 11. (Foto: Tom Durr/Shutterstock)

Apollo 11: Code schon seit 2003 transkribiert

Schon 2016 machte der ehemalige Nasa-Mitarbeiter Chris Garry der Entwicklergemeinde eine Freude und stellte den kompletten Source-Code des Apollo 11 Guidance Computers (AGC) bei GitHub online. Seit 2003 konnten Entwickler bereits Zugriff auf den Code erhalten, mussten dazu aber Kontakt zur Nasa aufnehmen. Mit der Verfügbarkeit auf GitHub wurde der Steuerungscode ganz unkompliziert der breiten Öffentlichkeit zugänglich gemacht.

Die Arbeiten am AGC gelten als Beginn des „Software-Engineering“ als Begriff. Die damals 32 Jahre alte MIT-Mitarbeiterin Margaret Hamilton prägte die Bezeichnung, um zu verdeutlichen, dass das Entwickeln von Software nicht weniger bedeutend als das Entwickeln eines Raketenantriebs ist. In den Sechzigern des vergangenen Jahrhunderts wurden Softwareentwickler noch nicht sonderlich ernst genommen.

Einfache Steuerung mit komplizierter Speicherung

Die Steuerung des AGC basierte auf einfachen Verben und Substantiven, die die Astronauten über spezielle Tastaturen auch mit schweren Handschuhen noch sicher eintippen konnten. Das erinnert entfernt an Überlegungen, die auch heutige UX-Designer anstellen.

Die Tastatur der Apollo 11 im Nachbau. (Foto: S&T Geotronics/Kickstarter)

Gespeichert war die Software seinerzeit in einem System, das als Core Rope Memory, zu deutsch „Fädelspeicher“, bezeichnet wurde. Hierbei handelte es sich um eine rein physikalische Methode der Speicherung.

Der Code, geschrieben in der damals gebräuchlichen Sprache Assembly, wurde mit Drähten zu einem lesbaren System vernäht. Dazu musste der Code in seine Nullen und Einsen zerlegt werden. Sollte der Computer eine Eins auslesen, wurde der Draht durch einen Ferritkern gefädelt, sollte er Null bedeuten, ging er am Kern vorbei. Um die insgesamt 73 Kilobyte an Daten aufzufädeln, war monatelange manuelle Arbeit mit Spezialmaschinen erforderlich.

Konzepte aus dem AGC noch heute in Gebrauch

Da es bei der Steuerungssoftware für die Apollo 11 im Zweifel um Leben oder Tod ging, erdachten die Entwickler Konzepte, die auch heute noch zu den Best Practices der Programmierung gehören. So führten sie etwa das Konzept der Priorisierung ein. Damit konnten weniger wichtige Prozesse zum Vorteil wichtigerer Prozesse einfach abgebrochen werden, um Rechenkapazitäten freizumachen.

t3n meint:

Die Mondlandung der Apollo 11 ist ein faszinierendes Kapitel in der Geschichte der menschlichen Innovationskraft. Das bezieht sich nicht nur auf die für damalige Verhältnisse spektakuläre Software, sondern betrifft jeden Aspekt dieses Projekts. Es lohnt sich, einmal die Geschichten aus der damaligen Zeit zu lesen. Mir blieb dabei vor Staunen so manches Mal der Mund offen stehen.

Dieter Petereit

Zum Weiterlesen: Zum 50. Jubiläum der Mondlandung: Computer der Apollo-Rakete landet auf Kickstarter

Bitte beachte unsere Community-Richtlinien

Wir freuen uns über kontroverse Diskussionen, die gerne auch mal hitzig geführt werden dürfen. Beleidigende, grob anstößige, rassistische und strafrechtlich relevante Äußerungen und Beiträge tolerieren wir nicht. Bitte achte darauf, dass du keine Texte veröffentlichst, für die du keine ausdrückliche Erlaubnis des Urhebers hast. Ebenfalls nicht erlaubt ist der Missbrauch der Webangebote unter t3n.de als Werbeplattform. Die Nennung von Produktnamen, Herstellern, Dienstleistern und Websites ist nur dann zulässig, wenn damit nicht vorrangig der Zweck der Werbung verfolgt wird. Wir behalten uns vor, Beiträge, die diese Regeln verletzen, zu löschen und Accounts zeitweilig oder auf Dauer zu sperren.

Trotz all dieser notwendigen Regeln: Diskutiere kontrovers, sage anderen deine Meinung, trage mit weiterführenden Informationen zum Wissensaustausch bei, aber bleibe dabei fair und respektiere die Meinung anderer. Wir wünschen Dir viel Spaß mit den Webangeboten von t3n und freuen uns auf spannende Beiträge.

Dein t3n-Team

Ein Kommentar
Thomas Schmidt

Spannendes Kapitel der Menschheit, ich würde mir den Code gerne ansehen, geht das auch in Notepad++ ?

Antworten

Melde dich mit deinem t3n Account an oder fülle die unteren Felder aus.

Bitte schalte deinen Adblocker für t3n.de aus!

Hey du! Schön, dass du hier bist. 😊

Bitte schalte deinen Adblocker für t3n.de aus, um diesen Artikel zu lesen.

Wir sind ein unabhängiger Publisher mit einem Team bestehend aus 65 fantastischen Menschen, aber ohne riesigen Konzern im Rücken. Banner und ähnliche Werbemittel sind für unsere Finanzierung sehr wichtig.

Danke für deine Unterstützung.

Digitales High Five,
Stephan Dörner (Chefredakteur t3n.de) & das gesamte t3n-Team

Anleitung zur Deaktivierung