Processo di sviluppo del codice per la missione Voyager?


29

Il Voyager 1 ha raggiunto lo spazio interstellare nell'agosto 2012 ed è l'oggetto umano più distante esistente. Lanciato poco dopo il suo veicolo spaziale gemello, Voyager 2, nel 1977, Voyager 1 esplorò i sistemi gioviano e saturniano scoprendo nuove lune, vulcani attivi e una vasta gamma di dati sul sistema solare esterno.

Voyager 1 e 2 sono stati progettati per sfruttare un raro allineamento planetario che si verifica solo una volta in 176 anni e rimangono le navicelle spaziali più percorse della storia. Entrambi i veicoli spaziali portano una sorta di capsula del tempo chiamata Golden Record, un disco di rame placcato in oro da 12 pollici contenente suoni e immagini selezionati per ritrarre la storia del nostro mondo agli extraterrestri.

Presumo che la stragrande maggioranza delle persone che stavano costruendo software per queste missioni siano ora in pensione, ma negli ultimi 35 anni la programmazione, i linguaggi di programmazione sono avanzati finora.

Così, è stato lanciato nel 1977. Dopo 35 anni, Voyager ha raggiunto lo spazio interstellare. Quante righe di codice ci sono e in quale lingua è scritta? Qual è stato il processo di sviluppo alla base di queste missioni (che sono ancora attive)?

Quindi, qual era il piano maggiore con il codice in questa missione e in quale lingua è scritta la base di codice?



10
Fortunatamente, al giorno d'oggi è abbastanza facile trovare cose come questa su Internet. Leggi popularmechanics.com/space/a17991/… .
Robert Harvey,

3
negli ultimi 35 anni di programmazione, i linguaggi di programmazione sono avanzati finora Sì, ma non sono arrivati ​​ai linguaggi usati per Voyager e simili :-)
High Performance Mark

Verso la fine del collegamento Popular Mechanics dice "... con una base sufficiente nei linguaggi di assemblaggio per far funzionare l'astronave".
dbasnett,

Molto probabilmente un linguaggio di assemblaggio basato sul periodo di tempo, e anche probabile che fosse molto più sede dei pantaloni, sparare dall'anca, rispetto ai processi piuttosto dolorosi e costosi utilizzati oggi.
old_timer

Risposte:


19

(Modifica: 12/7/2017, un anno dopo, ho trovato una risposta autorevole) In un articolo sullo sviluppo di software per le missioni spaziali della NASA. https://www.nasa.gov/pdf/418878main_FSWC_Final_Report.pdf A pagina 31, la seguente tabella è nel grafico che mostra una misura decente per un aumento logaritmico nelle righe di codice: (Quindi, la mia stima 3K era giusta per i soldi .)

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

Questa era originariamente una domanda alla ricerca di una risposta finale, quindi abbiamo fatto la seguente stima:

Secondo il post qui sotto, c'è un codice disponibile per Apollo 11 e varie altre cose della NASA di provenienza aperta, ma la fonte delle sonde sembra mancare deludentemente:

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

Ho cercato su Google e non ho trovato nulla di più conclusivo, al di là dei fatti, che è stato riscritto in F77 per la maggior parte e potenzialmente potrebbe inviarci dati sullo spazio interstellare fino al 2024 se tutto andasse perfettamente.

Questo è incredibilmente vicino: http://history.nasa.gov/computers/Ch6-2.html

Solo la "parte inferiore" dei banchi di memoria 4K utilizzati dal sistema di dati di volo è per codice. Questo è probabilmente il più complesso dei tre computer su Voyager, quindi possiamo ottenere un limite superiore da qui. Quindi, 2k byte di memoria per istruzioni con una dimensione di istruzione di 1 byte sarebbero circa 2000 istruzioni di assemblaggio. O forse 1000 righe di codice Fortran. Moltiplica per tre per riprogrammare) e otterrai un limite superiore approssimativo di 3000 linee di assemblaggio nell'originale. Non scientifico o rigoroso, ma il meglio che riesco a capire.

E come ultime ultime notizie, Allan Lasser ha fatto un Freedom of Information Act per il codice sorgente per il software di controllo e analisi della missione Voyager rivelando che il codice è (C) Caltech, e al di là della portata di qualsiasi richiesta FOIA, un fatto che potrebbe indirizzare ulteriori sforzi per ricercare quel codice sorgente.

E attraverso una relativa richiesta FOIA di Allan Lasser apprendiamo che il contratto JPL / Caltech per Voyager è anche al di là del potere di FOIA poiché il contratto è ritenuto dalla NASA con dettagli che tenderebbero a compromettere la sicurezza IT.


Se qualcuno ha statistiche migliori per byte per istruzioni di assemblaggio o istruzioni per riga, si prega di aggiungere. Non sono riuscito a trovare l'articolo sull'espressività che so di aver letto in passato ...
BenPen,

14

Questo articolo su Wired chiarisce che il codice è stato scritto in Fortran 5 e successivamente portato su Fortran 77 e alcuni elementi sono ora in una versione di C:

Il software originale di controllo e analisi dei veicoli spaziali è stato scritto in Fortran 5 (successivamente portato su Fortran 77). Alcuni software sono ancora a Fortran, anche se altri pezzi sono stati ora trasferiti nel C. un po 'più moderno

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.