Verwendet das Voyager-Team einen Wrapper (Fortran(77?) zu Python), um aktuelle Befehle zu übertragen?

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

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

FORTRAN NACH PYTHON

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.

Es sollte möglich sein: Die Frage ist, warum würden Sie es tun? F77 ist eine einfach zu lernende und zu bearbeitende Sprache (solange die ursprünglichen Autoren des Codes keine Dinge wie zugewiesene und berechnete GOTOs aus früheren FORTRANs verwendet haben), meiner Meinung nach viel einfacher als Python.
Ich bin sicherlich kein Experte darin, aber ich bin Software-Ingenieur. Ich würde vermuten, dass die Notwendigkeit, ein Fortran-Modul aus Python-Code aufzurufen, am Boden und nicht im Weltraum erforderlich wäre. Ich bezweifle, dass das Raumschiff Python ausführt. Warum? Vielleicht, um Unit-Tests des Fortran-Codes zu ermöglichen, wobei alle Goodies, die mit Python geliefert werden, zur Verfügung stehen. Oder es könnte Routinen in Fortran geben, um Raumfahrzeugdaten zu verarbeiten, und es ist am einfachsten, diese unverändert zu verwenden, aber dann die verfügbaren Python-Bibliotheken für die Verarbeitung zu nutzen. Nur eine Vermutung, TBH, aber ...
Wer behauptet weniger als 64 kB? Wikipedia scheint mehr zu behaupten : 32 kwords bei 16 bis 18 Bits pro Wort.

Antworten (3)

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.

Sicherlich ein Aspekt, aber auch die Frage nach Geräteeinsparung und Anpassung im Hinblick auf sparsamen Umgang mit Ressourcen, muss man auch moderne Wege gehen ? Passen Sie die Entwicklung an? Und welche Prozesse und Möglichkeiten gibt es?
Andere Punkte, die für eine native Programmierung in Fortran sprechen, wären/könnten sein: Performance (ist ein in Fortran konvertierter Python-Code genauso performant wie nativ geschriebenes Fortran) und Inspizierbarkeit (wie gut lässt sich Python in Fortran übersetzen? Wären die Leute in der Lage, Fortran vollständig zu inspizieren? Code, der sich aus der Konvertierung ergibt?)
@DohnJoe Ich glaube nicht, dass jemand vorschlagen würde, zu diesem Zweck Python-Code in Fortran zu transkompilieren . (Das ist heute zweifellos auch möglich , aber dynamische Sprachen wie Python sind dafür ein ziemlich schlechter Ausgangspunkt, besonders wenn Sie harte Leistungsgarantien wollen.) So wie ich die Frage verstanden habe, ging es nur darum, einen Wrapper von (standard, interpretiert ) Python um die bestehenden Fortran-Routinen herum, um das Skripting auf oberster Ebene zu vereinfachen, ohne etwas am leistungskritischen Low-Level-Code zu ändern. Das ist ein Ansatz, der in vielen Anwendungen sehr sinnvoll ist.
„Die Flugsoftware wurde im Grunde komplett neu geschrieben“ – das muss ein ziemlich erschreckender Einsatz gewesen sein! Niemand will der Typ sein, der die Voyager-Sonde gemauert hat...

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.

Kommentare sind nicht für längere Diskussionen gedacht; diese Konversation wurde in den Chat verschoben .

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.