Proses pengembangan kode untuk misi Voyager?

29

Voyager 1 mencapai ruang antarbintang pada Agustus 2012 dan merupakan objek buatan manusia paling jauh yang ada. Diluncurkan tidak lama setelah wahana kembarnya, Voyager 2, pada tahun 1977, Voyager 1 menjelajahi sistem Jovian dan Saturnian menemukan bulan baru, gunung berapi aktif, dan banyak data tentang tata surya luar.

Voyager 1 dan 2 dirancang untuk mengambil keuntungan dari penyelarasan planet yang langka yang terjadi hanya sekali dalam 176 tahun dan tetap menjadi pesawat ruang angkasa yang paling baik bepergian dalam sejarah. Kedua pesawat ruang angkasa membawa semacam kapsul waktu yang disebut Golden Record, cakram tembaga berlapis emas 12 inci yang berisi suara dan gambar yang dipilih untuk menggambarkan kisah dunia kita ke makhluk luar angkasa.

Saya berasumsi bahwa sebagian besar orang yang membangun perangkat lunak untuk misi ini sekarang sudah pensiun, tetapi dalam 35 tahun terakhir pemrograman, bahasa pemrograman maju sejauh ini.

Jadi, itu diluncurkan pada tahun 1977. Setelah 35 tahun, Voyager mencapai ruang antarbintang. Berapa banyak baris kode yang ada dan dalam bahasa apa itu ditulis? Apa proses pengembangan di balik misi ini (yang masih aktif)?

Jadi, apa rencana lebih besar dengan kode dalam misi ini, dan dalam bahasa apa basis kode ditulis?

Josip Ivic
sumber
10
Untungnya, cukup mudah untuk menemukan hal-hal seperti ini di Internet saat ini. Baca popularmechanics.com/space/a17991/… .
Robert Harvey
3
dalam pemrograman 35 tahun terakhir, bahasa pemrograman maju sejauh ini Ya, tetapi mereka belum mencapai sejauh bahasa yang digunakan untuk Voyager dan sejenisnya :-)
High Performance Mark
Menjelang akhir tautan Popular Mechanics itu tertulis, "... dengan cukup dasar dalam bahasa rakitan untuk membuat pesawat ruang angkasa berjalan."
dbasnett
Sangat mungkin bahasa rakitan berdasarkan periode waktu, dan juga kemungkinan lebih banyak tempat duduk di celana Anda, menembak dari pinggul, daripada proses yang cukup menyakitkan dan mahal yang digunakan saat ini.
old_timer

Jawaban:

19

(Sunting: 12/7/2017, setahun kemudian, saya menemukan jawaban resmi) Dalam sebuah artikel tentang pengembangan perangkat lunak untuk misi luar angkasa NASA. https://www.nasa.gov/pdf/418878main_FSWC_Final_Report.pdf Pada halaman 31, tabel berikut ini berada dalam grafik yang menunjukkan kecocokan yang layak dengan peningkatan logaritmik dalam garis kode: (Jadi, perkiraan 3K saya tepat berdasarkan uang .)

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

Ini awalnya pertanyaan mencari jawaban akhir, jadi kami membuat taksiran berikut:

Menurut posting di bawah ini, ada kode yang tersedia untuk Apollo 11 dan berbagai hal lain yang bersumber dari NASA, tetapi sumber probe tampaknya hilang secara mengecewakan:

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

Saya telah mencari di Google dan tidak menemukan sesuatu yang lebih konklusif di luar fakta bahwa itu telah ditulis ulang di F77 untuk sebagian besar dan berpotensi mengirimkan data ruang angkasa antar kita ke tahun 2024 jika semuanya berjalan dengan sempurna.

Ini sangat menggoda: http://history.nasa.gov/computers/Ch6-2.html

Hanya "bagian bawah" dari bank memori 4K yang digunakan oleh sistem data penerbangan untuk kode. Ini mungkin yang paling kompleks dari tiga komputer di Voyager sehingga kita bisa mendapatkan batas atas dari sini. Jadi, memori 2k byte untuk instruksi dengan ukuran instruksi 1 byte akan menjadi sekitar 2.000 instruksi perakitan. Atau, mungkin 1000 baris Kode Fortran. Kalikan dengan tiga untuk pemrograman ulang), dan Anda mendapatkan batas atas kasar dari 3000 Lini perakitan di aslinya. Bukan ilmiah atau keras, tetapi yang terbaik yang bisa saya pikirkan.

Dan sebagai berita terbaru, Allan Lasser membuat Undang-Undang Kebebasan Informasi untuk kode sumber ke perangkat lunak kontrol dan analisis Misi Voyager yang mengungkapkan bahwa kode tersebut adalah (C) Caltech, dan di luar jangkauan permintaan FOIA, fakta bahwa dapat mengarahkan upaya lebih lanjut untuk meneliti kode sumber itu.

Dan melalui permintaan FOIA terkait oleh Allan Lasser kita mengetahui bahwa kontrak JPL / Caltech untuk Voyager juga di luar kekuatan FOIA karena kontrak tersebut dianggap oleh NASA untuk memiliki rincian yang cenderung akan membahayakan keamanan TI.

BenPen
sumber
Jika ada orang yang memiliki statistik lebih baik untuk byte per instruksi perakitan atau instruksi per baris, silakan tambahkan. Saya tidak dapat menemukan artikel tentang ekspresif yang saya tahu pernah saya baca di masa lalu ...
BenPen
14

Artikel di Wired ini memperjelas bahwa kode ditulis dalam Fortran 5 dan kemudian diangkut ke Fortran 77 dan beberapa elemen sekarang dalam versi C:

Perangkat lunak kendali dan analisis asli wahana antariksa itu ditulis dalam Fortran 5 (kemudian diangkut ke Fortran 77). Beberapa perangkat lunak masih dalam Fortran, meskipun bagian lain sekarang telah porting ke C. agak lebih modern

Brian Tompsett - 汤 莱恩
sumber