Proces tworzenia kodu dla misji Voyager?

29

Voyager 1 dotarł do przestrzeni międzygwiezdnej w sierpniu 2012 r. I jest najbardziej odległym z istniejących obiektów stworzonych przez człowieka. Wystrzelony wkrótce po swoim bliźniaczym statku kosmicznym, Voyager 2, w 1977 r., Voyager 1 badał układy Jowisza i Saturna, odkrywając nowe księżyce, aktywne wulkany i bogactwo danych o zewnętrznym Układzie Słonecznym.

Voyager 1 i 2 zostały zaprojektowane tak, aby wykorzystać rzadkie ustawienie planetarne, które występuje tylko raz na 176 lat i pozostaje najczęściej podróżowanym statkiem kosmicznym w historii. Oba statki kosmiczne posiadają rodzaj kapsuły czasu zwanej Golden Record, 12-calowym pozłacanym miedzianym dyskiem zawierającym dźwięki i obrazy wybrane do przedstawienia historii naszego świata istotom pozaziemskim.

Zakładam, że zdecydowana większość ludzi tworzących oprogramowanie do tych misji jest obecnie na emeryturze, ale w ciągu ostatnich 35 lat programowania, języki programowania były zaawansowane.

Tak więc wystartował w 1977 roku. Po 35 latach Voyager osiągnął przestrzeń międzygwiezdną. Ile jest wierszy kodu i w jakim języku jest napisany? Jaki był proces rozwoju tych misji (które są nadal aktywne) ?.

Więc jaki był większy plan z kodem w tej misji i w jakim języku napisana jest baza kodu?

Josip Ivic
źródło
10
Na szczęście w Internecie można obecnie łatwo znaleźć takie rzeczy. Przeczytaj popularmechanics.com/space/a17991/… .
Robert Harvey,
3
w ciągu ostatnich 35 lat programowania, języki programowania były do ​​tej pory zaawansowane Tak, ale nie dotarły tak daleko jak języki używane dla Voyagera i jego podobnych :-)
High Performance Mark
Pod koniec linku Popular Mechanics napisano: „… z wystarczającą bazą w językach asemblera, aby utrzymać statek kosmiczny w ruchu”.
dbasnett,
Bardzo prawdopodobne, że język asemblera opiera się na czasie, a także, że było to o wiele więcej miejsca na spodnie, strzelaj z biodra, niż dość bolesne i kosztowne procesy stosowane dzisiaj.
old_timer

Odpowiedzi:

19

(Edycja: 12.7.2017, rok później znalazłem autorytatywną odpowiedź) W artykule na temat rozwoju oprogramowania dla misji kosmicznych NASA. https ://www. .)

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

To było pierwotnie pytanie w poszukiwaniu ostatecznej odpowiedzi, dlatego dokonaliśmy następującego oszacowania:

Zgodnie z poniższym postem dostępny jest kod dla Apollo 11 i różnych innych otwartych źródeł NASA, ale źródło sond wydaje się rozczarowująco brakować:

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

Znalazłem google i nie znalazłem nic bardziej rozstrzygającego poza faktami, że w większości został on ponownie napisany w F77 i potencjalnie mógłby wysłać nam dane w przestrzeni międzygwiezdnej aż do 2024 roku, jeśli wszystko pójdzie idealnie.

To kusząco blisko: http://history.nasa.gov/computers/Ch6-2.html

Tylko „dolna część” banków pamięci 4K wykorzystywanych przez system danych lotu jest przeznaczona na kod. Jest to prawdopodobnie najbardziej złożony z trzech komputerów na Voyagerze, więc możemy uzyskać stąd górną granicę. Zatem 2 000 bajtów pamięci dla instrukcji o rozmiarze instrukcji 1 bajtowej to około 2000 instrukcji montażu. A może 1000 linii kodu Fortran. Pomnóż przez trzy w celu przeprogramowania), a otrzymasz szorstki górny limit 3000 linii montażu w oryginale. Nie naukowe lub rygorystyczne, ale najlepsze, co mogę wymyślić.

I jako ostatnia wiadomość, Allan Lasser wydał Ustawę o wolności informacji dla kodu źródłowego oprogramowania sterującego i analizującego misję Voyager, ujawniając, że kod to (C) Caltech i poza zasięgiem jakiegokolwiek żądania FOIA, fakt, że może skierować dalsze wysiłki na badanie tego kodu źródłowego.

A dzięki powiązanemu żądaniu FOIA złożonemu przez Allana Lassera dowiadujemy się, że umowa JPL / Caltech dla Voyagera również wykracza poza możliwości FOIA, ponieważ NASA uważa, że ​​kontrakt zawiera szczegóły, które mogłyby zagrozić bezpieczeństwu IT.

BenPen
źródło
Jeśli ktoś ma lepsze statystyki dotyczące bajtów na instrukcję montażu lub instrukcji na linię, dodaj. Nie mogłem znaleźć artykułu o ekspresji, który wiem, że czytałem w przeszłości ...
BenPen
14

Ten artykuł w Wired wyjaśnia, że ​​kod został napisany w Fortran 5, a później przeniesiony do Fortran 77, a niektóre elementy są teraz w wersji C:

Oryginalne oprogramowanie sterujące i analizujące statki kosmiczne zostało zapisane w Fortran 5 (później przeniesione do Fortran 77). Część oprogramowania nadal znajduje się w Fortranie, ale inne elementy zostały teraz przeniesione do nieco bardziej nowoczesnego C.

Brian Tompsett - 汤 莱恩
źródło