Voyager 1 достиг межзвездного пространства в августе 2012 года и является самым отдаленным созданным человеком объектом. Запущенный вскоре после своего двойного космического корабля, Voyager 2, в 1977 году, Voyager 1 исследовал системы Юпитера и Сатурна, открывая новые спутники, активные вулканы и множество данных о внешней солнечной системе.
Voyager 1 и 2 были разработаны, чтобы использовать в своих интересах редкое планетарное выравнивание, которое происходит только один раз в 176 лет и остается самым хорошо путешествующим космическим кораблем в истории. Оба космических корабля несут своего рода капсулу времени, называемую «Золотая пластинка», 12-дюймовый позолоченный медный диск, содержащий звуки и изображения, отобранные, чтобы представить историю нашего мира инопланетянам.
Я полагаю, что подавляющее большинство людей, которые создавали программное обеспечение для этих миссий, сейчас на пенсии, но за последние 35 лет программирование, языки программирования продвинулись до сих пор.
Итак, он запущен в 1977 году. Спустя 35 лет Voyager достиг межзвездного пространства. Сколько строк кода и на каком языке написано? Каков был процесс разработки этих миссий (которые все еще активны)?
Итак, каков был лучший план с кодом в этой миссии, и на каком языке написана кодовая база?
Ответы:
(Правка: 7.12.2017, год спустя я нашел авторитетный ответ) В статье о разработке программного обеспечения для космических миссий НАСА. https://www.nasa.gov/pdf/418878main_FSWC_Final_Report.pdf На странице 31 приведена следующая таблица на графике, демонстрирующая приличное соответствие логарифмическому увеличению строк кода: (Таким образом, моя оценка в 3 КБ была правильной на деньги .)
Первоначально это был вопрос в поисках окончательного ответа, поэтому мы сделали следующую оценку:
Согласно приведенному ниже сообщению, есть код, доступный для 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, поскольку НАСА считает, что в этом контракте есть детали, которые могут поставить под угрозу безопасность ИТ.
источник
Эта статья в Wired разъясняет, что код был написан на Fortran 5 и позже перенесен на Fortran 77, а некоторые элементы теперь находятся в версии C:
источник