Процесс разработки кода для миссии Voyager?

29

Voyager 1 достиг межзвездного пространства в августе 2012 года и является самым отдаленным созданным человеком объектом. Запущенный вскоре после своего двойного космического корабля, Voyager 2, в 1977 году, Voyager 1 исследовал системы Юпитера и Сатурна, открывая новые спутники, активные вулканы и множество данных о внешней солнечной системе.

Voyager 1 и 2 были разработаны, чтобы использовать в своих интересах редкое планетарное выравнивание, которое происходит только один раз в 176 лет и остается самым хорошо путешествующим космическим кораблем в истории. Оба космических корабля несут своего рода капсулу времени, называемую «Золотая пластинка», 12-дюймовый позолоченный медный диск, содержащий звуки и изображения, отобранные, чтобы представить историю нашего мира инопланетянам.

Я полагаю, что подавляющее большинство людей, которые создавали программное обеспечение для этих миссий, сейчас на пенсии, но за последние 35 лет программирование, языки программирования продвинулись до сих пор.

Итак, он запущен в 1977 году. Спустя 35 лет Voyager достиг межзвездного пространства. Сколько строк кода и на каком языке написано? Каков был процесс разработки этих миссий (которые все еще активны)?

Итак, каков был лучший план с кодом в этой миссии, и на каком языке написана кодовая база?

Иосип Ивич
источник
10
К счастью, в Интернете сейчас довольно легко найти подобные вещи. Читайте Popularmechanics.com/space/a17991/… .
Роберт Харви
3
За последние 35 лет программирования языки программирования продвинулись до сих пор. Да, но они не настолько далеко, как языки, используемые для Voyager и тому подобное :-)
High Performance Mark
Ближе к концу ссылки «Популярная механика» написано: «… с достаточным основанием на языках ассемблера, чтобы космический корабль мог работать».
dbasnett
Очень вероятно, что язык ассемблера основан на периоде времени, а также вероятно, что это было намного больше места ваших штанов, стреляющих из бедра, чем довольно болезненные и дорогие процессы, используемые сегодня.
old_timer

Ответы:

19

(Правка: 7.12.2017, год спустя я нашел авторитетный ответ) В статье о разработке программного обеспечения для космических миссий НАСА. https://www.nasa.gov/pdf/418878main_FSWC_Final_Report.pdf На странице 31 приведена следующая таблица на графике, демонстрирующая приличное соответствие логарифмическому увеличению строк кода: (Таким образом, моя оценка в 3 КБ была правильной на деньги .)

  • 1969 Маринер-6 (30)
  • 1975 Викинг (5K)
  • 1977 Voyager (3K)
  • 1989 Галилео (8K)
  • Кассини 1990 (120K)
  • Pathfinder 1997 (175K)
  • DS1 1999 (349K)
  • 2003 SIRTF / Spitzer (554K)
  • 2004 MER (555K)
  • 2005 MRO (545 тыс.)

Первоначально это был вопрос в поисках окончательного ответа, поэтому мы сделали следующую оценку:

Согласно приведенному ниже сообщению, есть код, доступный для Apollo 11 и различных других вещей НАСА с открытым исходным кодом, но источник зондов, к сожалению, отсутствует:

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

Я гуглил и не нашел ничего более убедительного, за исключением фактов, что по большей части он был переписан в F77 и потенциально может послать нам данные о межзвездном пространстве вплоть до 2024 года, если все пойдет хорошо.

Это мучительно близко: http://history.nasa.gov/computers/Ch6-2.html

Только «нижняя часть» 4К банков памяти, используемая системой полетных данных, предназначена для кода. Это, вероятно, самый сложный из трех компьютеров в Voyager, поэтому мы можем получить верхний предел отсюда. Таким образом, 2 килобайта памяти для инструкций с размером инструкций в 1 байт были бы примерно 2000 инструкциями по сборке. Или, может быть, 1000 строк кода Фортрана. Умножьте на три для перепрограммирования), и вы получите приблизительный верхний предел 3000 строк сборки в оригинале. Не научный или строгий, но лучшее, что я могу понять.

И, как последние новости, Аллан Лассер издал Закон о свободе информации для исходного кода для программного обеспечения для контроля и анализа Миссии Voyager, раскрывающий, что этот код (C) Caltech, и вне досягаемости любого запроса FOIA, факт, что может направить дальнейшие усилия на исследование этого исходного кода.

И из-за соответствующего запроса FOIA Аллана Лассера мы узнаем, что контракт JPL / Caltech для Voyager также выходит за рамки FOIA, поскольку НАСА считает, что в этом контракте есть детали, которые могут поставить под угрозу безопасность ИТ.

BenPen
источник
Если у кого-то есть лучшая статистика для байтов на инструкцию по сборке или инструкции на строку, пожалуйста, добавьте. Мне не удалось найти статью о выразительности, которую я знаю, которую я читал в прошлом ...
BenPen
14

Эта статья в Wired разъясняет, что код был написан на Fortran 5 и позже перенесен на Fortran 77, а некоторые элементы теперь находятся в версии C:

Оригинальное программное обеспечение для контроля и анализа космических кораблей было написано на Фортране 5 (позже портирован на Фортран 77). Часть программного обеспечения все еще находится на Фортране, хотя другие части теперь перенесены на несколько более современный C.

Брайан Томпсетт - 汤 莱恩
источник