Ich gehe davon aus, dass die überwiegende Mehrheit der Leute, die die Software für diese Missionen erstellt haben, jetzt im Ruhestand sind (die "Weltraum-Pensionäre" der Voyager-Mission).
Hier ist eine sehr gute Zusammenfassung des aktuellen Software-Teams der Voyager-Missionen
Hier ist eine weitere kurze Erwähnung der genauen Programmiersprache, die verwendet wurde
Aber in den letzten 40 Jahren fortschreitender Entwicklung haben sich Programmiersprachen stark weiterentwickelt. Früher hatte das Voyager-Team über 200 Mitarbeiter, jetzt sind es 8 (hier ist ein sehr guter Audio-Artikel über das Voyager-Team, hier ist eine Zusammenfassung ).
Immerhin wurden die beiden Sonden mit Fortran und Assembler programmiert. In den Raumsonden selbst verrichten die uralten Prozessoren von General Electric ihre Arbeit. Sie müssen mit 64 Kilobyte Speicher auskommen ( dieses Interview erklärt, dass sie 64 kB groß sind, nicht weniger, wie manche behaupten).
Interessanterweise gibt es einen Fortran-Wrapper in Python ( mehr Infos ). Wird diese oder eine ähnliche Lösung vom Voyager-Team verwendet?
Es wäre sicher eine Möglichkeit, die Alterungsquelle entsprechend anzupassen. Ob das Voyager-Team Fortran 77 oder C oder Wrapper für beide verwendet, konnte ich noch nicht erkennen. Da sind die Informationen einfach noch zu schwammig.
Im Jahr 2015 ging der letzte ursprüngliche Voyager-Ingenieur, der noch an dem Projekt beteiligt war , in den Ruhestand. Die NASA gab an, dass sein Nachfolger FORTRAN kennen müsste.
Die Software wurde nach dem Start regelmäßig aktualisiert:
Die letzte echte Softwareüberholung fand 1990 statt, nach der Neptun-Begegnung 1989 und zu Beginn der interstellaren Mission. „Die Flugsoftware wurde im Grunde komplett neu geschrieben, um ein Raumschiff zu haben, das nahezu autonom ist und weiterhin Daten an uns zurücksendet, selbst wenn wir die Kommunikation mit ihm verlieren.“
Die Konfiguration des Raumfahrzeugs ändert sich regelmäßig: Instrumente werden abgeschaltet, um den Energiebedarf zu reduzieren, und beide Raumfahrzeuge haben von der Verwendung ihrer Triebwerke zur Lageregelung auf ihre Flugbahnkorrektur-Manövertriebwerke umgeschaltet . Ich weiß nicht, ob diese Änderungen neuen Code beinhalten oder ob sie nur durch das Hochladen von Konfigurationsdateien erfolgen. Ich vermute, dass Codeänderungen beteiligt sind (aufgrund des geringen verfügbaren Speichers).
Neue Programmiersprachen würden neue Risiken mit sich bringen und umfangreiche Tests erfordern. Es wäre billiger, Fortran weiter zu verwenden, als eine neue Build-Umgebung zu erstellen.
Die Voyager-Raumschiffe werden nicht mehr umprogrammiert, daher ist die Sprache, in der sie programmiert sind, weitgehend irrelevant.
Der Uplink beträgt nur 16 Bit/Sekunde, gerade genug, um (einfache) Befehle zu senden. Wie diese Befehle erzeugt werden, ist für das Raumfahrzeug irrelevant. Jede Sprache, die eine Folge von Bits erzeugen kann, reicht theoretisch aus.
Dieses pdf-Dokument beschreibt auf S. 11 ziemlich detailliert, wie Befehle an das Voyager-Raumschiff ausgegeben werden, indem diskrete Befehle gesendet werden. Es beschreibt jedoch auch, wie Befehle an Subsysteme weitergeleitet werden können, und es ist mir nicht ganz klar, ob solche Subsysteme neu programmiert werden können. Jedenfalls auf S. 18 heißt es, dass das Kernprogramm auf dem CCS (Computer Command Subsystem) während der Mission nicht verändert wird.
Davon abgesehen: Fortran wird immer noch aktiv genutzt und weiterentwickelt (der neueste Standard ist von 2018), daher ist es definitiv nicht unmöglich, eine Fortran-Quellenbasis auch nach 40 Jahren zu unterhalten, daher ist es nicht schwer vorstellbar, dass sie einfach dieselbe Bodenstationssoftware verwenden wie damals.
Ich habe nicht an Voyager gearbeitet, kann Ihnen aber sagen, dass Weltraummissionen dazu neigen, die ursprüngliche Bodenhardware, Software, Sprache und Bauumgebung beizubehalten, sowohl aus Kontinuitäts-/Sicherheits- als auch aus Budgetgründen. Möglicherweise gibt es wenig oder keine Finanzierung, um die Mission fortzusetzen; es kann sogar zu direkten Freiwilligen kommen. Es ist erstaunlich und traurig für mich, wie sehr wir auf diese Dynamik angewiesen sind, um langfristig Verantwortung zu übernehmen, und die Menschen, die dies tun, sind wahre Helden.
Eine Person, der ich gerne ein Lob aussprechen kann, weil es bereits öffentlich bekannt ist, ist Larry Kellogg, der sich bemühte, mit Pioneer 10 in Kontakt zu bleiben – ich traf ihn bei der NASA Ames in Ende der 90er und war erstaunt, als ich realisierte, was er erreichen konnte: http://lkellogg.vttoth.com/LarryRussellKellogg/
Im Fall von Voyager würden alle verbleibenden Mittel oder anderen Ressourcen, die dazukommen, am besten dafür verwendet werden, genau dasselbe zu tun. Wenn jemand unbedingt daran arbeiten will, wird er sich die Zeit nehmen, die Eigenheiten des Raumfahrzeugs zu lernen – Sprache ist normalerweise nicht der entscheidende Faktor.
jamesqf
Steve
Rohr