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?
Antworten:
(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 .)
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.
quelle
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:
quelle