Code-Entwicklungsprozess für die Voyager-Mission?

29

Die Voyager 1 erreichte im August 2012 den interstellaren Raum und ist das am weitesten entfernte von Menschen geschaffene Objekt, das es gibt. Voyager 1 wurde 1977 kurz nach seinem Zwillingsraumschiff Voyager 2 gestartet und erforschte die Systeme Jupiter und Saturn, um neue Monde, aktive Vulkane und eine Fülle von Daten über das äußere Sonnensystem zu entdecken.

Voyager 1 und Voyager 2 wurden entwickelt, um die Vorteile einer seltenen Planetenausrichtung zu nutzen, die nur einmal in 176 Jahren auftritt, und um das am weitesten gereiste Raumschiff in der Geschichte zu bleiben. Beide Raumschiffe tragen eine Art Zeitkapsel namens Golden Record, eine 12-Zoll vergoldete Kupferscheibe, die Töne und Bilder enthält, die ausgewählt wurden, um die Geschichte unserer Welt für Außerirdische darzustellen.

Ich gehe davon aus, dass die überwiegende Mehrheit der Leute, die Software für diese Missionen entwickelt haben, in den Ruhestand getreten ist. In den letzten 35 Jahren haben sich die Programmiersprachen jedoch weiterentwickelt.

Es startete 1977. Nach 35 Jahren erreichte die Voyager den interstellaren Raum. Wie viele Codezeilen gibt es und in welcher Sprache ist er geschrieben? Was war der Entwicklungsprozess hinter diesen (noch aktiven) Missionen?

Also, was war der größere Plan mit Code in dieser Mission und in welcher Sprache ist die Codebasis geschrieben?

Josip Ivic
quelle
10
Glücklicherweise ist es heutzutage recht einfach, solche Dinge im Internet zu finden. Lesen Sie popularmechanics.com/space/a17991/… .
Robert Harvey
3
In den letzten 35 Jahren sind die Programmiersprachen so weit fortgeschritten. Ja, aber sie sind nicht so weit gekommen, wie es für Voyager und die anderen Sprachen der Fall ist :-)
High Performance Mark
Gegen Ende des Links "Popular Mechanics" heißt es: "... mit einer ausreichenden Basis in Assemblersprachen, um das Raumschiff am Laufen zu halten."
Dbasnett
Sehr wahrscheinlich Assembler-Sprache basierend auf dem Zeitraum, und auch wahrscheinlich, dass es viel mehr Sitz Ihrer Hosen war, schießen aus der Hüfte, als die ziemlich schmerzhaften und teuren Prozesse, die heute verwendet werden.
old_timer

Antworten:

19

(Edit: 07.12.2017, ein Jahr später, fand ich eine maßgebliche Antwort) In einem Artikel über die Softwareentwicklung für NASA-Weltraummissionen. https://www.nasa.gov/pdf/418878main_FSWC_Final_Report.pdf Auf Seite 31 ist die folgende Tabelle in der Grafik enthalten, die eine angemessene Anpassung an eine logarithmische Erhöhung der Codezeilen zeigt: (Meine 3K-Schätzung stimmte also mit dem Geld überein .)

  • 1969 Mariner-6 (30)
  • 1975 Wikinger (5K)
  • 1977 Voyager (3K)
  • 1989 Galileo (8K)
  • 1990 Cassini (120 K)
  • 1997 Pathfinder (175 K)
  • 1999 DS1 (349 K)
  • 2003 SIRTF / Spitzer (554K)
  • MER 2004 (555 K)
  • MRO 2005 (545 K)

Dies war ursprünglich eine Frage auf der Suche nach einer endgültigen Antwort, daher haben wir die folgende Schätzung vorgenommen:

Laut dem folgenden Beitrag gibt es Code für Apollo 11 und verschiedene andere Open-Source-NASA-Dinge, aber die Sondenquelle scheint enttäuschend zu fehlen:

https://voat.co/v/programming/comments/306663

Ich habe gegoogelt und noch nichts aussagekräftigeres gefunden als die Tatsache, dass es größtenteils in F77 neu geschrieben wurde und uns möglicherweise Daten über den interstellaren Raum bis 2024 senden könnte, wenn alles perfekt läuft.

Dies ist spannend nahe: http://history.nasa.gov/computers/Ch6-2.html

Nur der "untere Teil" der 4K-Speicherbänke, der vom Flugdatensystem verwendet wird, dient als Code. Dies ist wahrscheinlich der komplexeste der drei Computer auf Voyager, sodass wir hier eine Obergrenze erreichen können. 2 KByte Speicher für Befehle mit einer Befehlsgröße von 1 Byte wären also ungefähr 2000 Assembler-Befehle. Oder vielleicht 1000 Zeilen Fortran Code. Multiplizieren Sie diese Werte für die Neuprogrammierung mit 3, und Sie erhalten eine ungefähre Obergrenze von 3000 Montagelinien im Original. Nicht wissenschaftlich oder streng, aber das Beste, was ich herausfinden kann.

Und als letzte Neuigkeit machte Allan Lasser ein Informationsfreiheitsgesetz für den Quellcode der Steuerungs- und Analysesoftware der Voyager Mission , das enthüllte, dass der Code (C) Caltech ist und außerhalb der Reichweite einer FOIA-Anfrage liegt könnte weitere Anstrengungen unternehmen, um diesen Quellcode zu erforschen.

Durch eine entsprechende FOIA-Anfrage von Allan Lasser erfahren wir, dass der JPL / Caltech-Vertrag für Voyager auch außerhalb der Zuständigkeit von FOIA liegt, da der Vertrag nach Ansicht der NASA Details enthält, die die IT-Sicherheit gefährden könnten.

BenPen
quelle
Wenn jemand eine bessere Statistik für Bytes pro Assembly-Anweisung oder Anweisungen pro Zeile hat, fügen Sie bitte hinzu. Ich konnte den Artikel über Ausdruckskraft nicht finden, von dem ich weiß, dass ich ihn in der Vergangenheit gelesen hatte ...
BenPen
14

Dieser Artikel in Wired verdeutlicht, dass der Code in Fortran 5 geschrieben und später in Fortran 77 portiert wurde. Einige Elemente befinden sich jetzt in einer Version von C:

Die ursprüngliche Steuerungs- und Analysesoftware der Raumschiffe wurde in Fortran 5 (später auf Fortran 77 portiert) geschrieben. Ein Teil der Software befindet sich immer noch in Fortran, obwohl andere Teile jetzt auf das etwas modernere C portiert wurden.

Brian Tompsett - 汤 汤
quelle