Процес розробки коду для місії Voyager?


29

"Вояджер-1" вийшов у міжзоряний простір у серпні 2012 року і є найвіддаленішим об'єктом, створеним людиною. Запущений незабаром після свого космічного корабля-близнюка - Voyager 2, в 1977 році Voyager 1 дослідив системи Джовіана і Сатурнія, відкривши нові місяці, активні вулкани та безліч даних про зовнішню Сонячну систему.

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

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

Отже, він був запущений у 1977 році. Через 35 років Voyager досяг міжзоряного простору. Скільки рядків коду існує і якою мовою він написаний? Який процес розробки стояв за цією місією (яка досі діє) ?.

Отже, який був план з кодом у цій місії, і якою мовою написана база коду?



10
На щастя, знайти такі речі в Інтернеті сьогодні досить просто. Читайте popularmechanics.com/space/a17991 / ... .
Роберт Харві

3
за останні 35 років програмування, мови програмування досі просунулися Так, але вони не дійшли до тих мов, які використовуються для Voyager та його інших :-)
Висока продуктивність Марк

Під кінцем посилання «Популярні механіки» сказано: «... з достатньою базою на мовах складання, щоб космічний апарат не рухався».
dbasnett

Дуже ймовірна мова складання, заснована на періоді часу, а також, ймовірно, що це було набагато більше сидіння ваших штанів, стріляйте з стегна, ніж досить болючі та дорогі процеси, які використовуються сьогодні.
old_timer

Відповіді:


19

(Редагувати: 7.12.2017, через рік я знайшов авторитетну відповідь) У статті про розробку програмного забезпечення для космічних місій NASA. https://www.nasa.gov/pdf/418878main_FSWC_Final_Report.pdf На сторінці 31 наступна таблиця наведена у графіку, що показує гідне пристосування до логарифмічного збільшення рядків коду: (Отже, моя оцінка 3K була правильною на гроші .)

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

Спочатку це було питання в пошуках остаточної відповіді, тому ми зробили таку оцінку:

Згідно з поданим дописом, існує код, доступний для Apollo 11 та різних інших речей NASA з відкритим джерелом, але джерело зондів, здається, невтішно відсутнє:

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

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

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

Для коду використовується лише "нижня частина" 4K банків пам'яті, яка використовується системою даних польотів. Це, мабуть, найскладніший з трьох комп’ютерів на Voyager, тому ми можемо отримати тут верхню межу. Отже, 2 к байт пам'яті для інструкцій з розміром 1 байт інструкції буде приблизно 2000 інструкцій по збірці. Або, можливо, 1000 рядків коду Фортран. Помножте на три для перепрограмування), і ви отримаєте приблизну верхню межу 3000 ліній складання в оригіналі. Не науково чи суворо, але найкраще, що я можу зрозуміти.

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

І завдяки відповідному запиту FOIA від Аллана Лассера ми дізнаємось, що договір JPL / Caltech для Voyager також перевищує повноваження FOIA, оскільки NASA вважає, що цей договір має деталі, які можуть скомпрометувати безпеку ІТ.


Якщо хтось має кращу статистику щодо байтів на інструкцію по збірці або інструкцій на рядок, будь ласка, додайте. Мені не вдалося знайти статтю про виразність, про яку я знаю, що я читав у минулому ...
BenPen

14

Ця стаття в Wired дає зрозуміти, що код був написаний у Fortran 5 і пізніше перенесений на Fortran 77, а деякі елементи тепер є у версії C:

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.