Содержание
NASA до сих пор поддерживает Voyager 1 и Voyager 2 на коде, написанном на ассемблере почти полвека назад. И проблема уже не в «древнем языке», а в том, что людей, которые проектировали и документировали систему, почти не осталось.
Об этом в начале 2024 года рассказала руководитель проекта Voyager в NASA Сьюзи Додд (Suzzy Dodd). Её формулировка звучит жёстко: «The people that built the spacecraft are not alive anymore» — «людей, которые построили аппарат, больше нет в живых».
Что именно работает на Voyager и почему тут важен ассемблер
Voyager запустили в 1977 году, и оба аппарата до сих пор на связи. Их бортовые компьютеры работают на ассемблере под кастомные процессоры General Electric, которые спроектировали ещё в начале 1970-х.
Иногда в пересказах всплывает «Voyager на Fortran», но это смешивает две разные части системы. Fortran связывают с наземными инструментами и старым софтом сопровождения миссии. А вот критичная «полётная» логика на борту завязана на низкоуровневый ассемблер и специфичную архитектуру железа.
Когда NASA искала инженера на замену в 2015 году, в требованиях фигурировали сразу две вещи:
- навыки работы с ассемблером
- глубокое понимание уникальной аппаратной архитектуры Voyager
Памяти меньше, чем у одной фотки на смартфоне
На каждом аппарате стоят три отдельные компьютерные системы. Их суммарная память — около 64-70 КБ на все три. Это меньше, чем весит один небольшой файл изображения на современном смартфоне.
Додд сравнивала работу с Voyager с «пилотированием Apple II». Смысл сравнения простой: команда живёт в мире, где каждый байт на счету, а любые изменения в коде похожи на операцию на открытом сердце.
Софт обновляли, но «память команды» исчезает быстрее железа
Ключевое обновление полётного ПО появилось ближе к началу межзвёздной части миссии. Это случилось после пролёта Voyager 2 мимо Нептуна в августе 1989 года, когда аппараты сделали более автономными.
Эта версия, дополненная командными последовательностями, которые команда загружает раз в несколько месяцев, и остаётся базой того, что сейчас работает на обоих зондаx.
Но за 49 лет непрерывной работы накопились пробелы, которые важнее любого языка программирования. Команда проекта сильно сократилась и постарела. Часть бумажной документации потеряли или она сохранилась фрагментами.
Последним инженером «оригинальной» команды Voyager оставался Ларри Зоттарелли (Larry Zottarelli). Он ушёл на пенсию в 2016 году в возрасте 80 лет. Остальные инженеры того поколения либо умерли, либо старше 90. В числе тех, кто уже давно в отставке, упоминают и траекторного инженера доктора Гэри Фландро (Dr. Gary Flandro).
Сейчас задержка связи уже огромная: сигнал от Voyager идёт до Земли больше 23 часов. К моменту, когда NASA получает очередную телеметрию, аппарат успевает улететь ещё примерно на 1,5 млн км дальше в межзвёздное пространство.
Додд в начале 2024 года сформулировала главный риск прямо: «The people that built the spacecraft are not alive anymore».
По материалам SpaceDaily.