Ракета Илона Маска Falcon 9, с помощью которой корабль Crew Dragon доставил астронавтов НАСА на Международную космическую станцию, работает на жидком кислороде, ракетном керосине, Linux и C/C++.
Космическое ПО
30 мая Crew Dragon вошел в историю как первый частный космический корабль, совершивший полет к МКС с астронавтами на борту. Он может доставлять астронавтов на Международную космическую станцию R03;R03;полностью автономно и использует для этого Linux и язык C/C++.
Разработчики SpaceX объяснили, как работает программирование для проекта Falcon 9: «Команда Flight Software насчитывает 35 человек. Мы работаем над всем, от крупномасштабных веб-приложений до крошечных встроенных вычислительных платформ. Мы создаем технические стеки на C#, MVC4, EF, MS SQL через REST для Javascript, Knockout, Handlebars, LESS, C++, Embedded Linux, Python, LabVIEW, которые вместе позволяют нам создавать, запускать и отслеживать системы в космосе».
Команда разработчиков SpaceX
ОС Falcon 9 представляет собой Linux, который работает на 3 двухъядерных процессорах x86. ПО для полета написано на C/C++.
Астронавты также используют HP ZBook 15 под управлением Debian Linux, Scientific Linux и Windows 10.
Перед полетом SpaceX тестирует свое программное и аппаратное обеспечение полета на симуляторе. Там они могут проводить летные симуляции без риска для ракеты. Интерфейс сенсорной панели управления корабля Dragon написан на базе Chromium и JavaScript. Для аварийных случаев предусмотрены физические кнопки управления, дублирующие сенсорную панель.
Старый проц лучше новых двух
Процессоры космических кораблей далеко не самые новые. На переход от чертежей к реальным испытаниям таких систем часто уходят годы. Например, в программном обеспечении Международной космической станции (МКС) используются процессоры Intel 80386SX с тактовой частотой 20 МГц 1988 года выпуска. Неизвестно какие чипы использует Falcon 9, но они точно старше тех, что применяются в современных компьютерах.
Процессоры, которые работают в космосе, должны быть защищены от радиации. Иначе они могут выйти из строя под воздействием ионизирующего излучения и космических лучей. Эти процессоры проходят годы проектной работы, а затем больше 5 лет испытаний, прежде чем будут сертифицированы. Например, NASA ожидает, что его процессор общего назначения следующего поколения ARM A53, который используется в Raspberry Pi 3, будет готов к 2021 году.
SpaceX использует систему Actor-Judge для обеспечения безопасности посредством избыточности. В этой системе каждый раз, когда принимается решение, оно сравнивается с результатами других ядер. Для этого и нужны три отдельных процессора. Если есть какие-либо разногласия, решение отбрасывается и процесс возобновляется. Только когда каждый процессор дает один и тот же ответ, команда отправляется на микроконтроллеры PowerPC.
Эти контроллеры управляют ракетными двигателями и получают три команды от каждого из процессоров x86. Если все три строки команд идентичны, то микроконтроллер выполняет команду, но если одна из трех команд неверна, контроллер выполняет последнюю ранее правильную инструкцию. Если что-то пойдет не так, Falcon 9 игнорирует команды пропускающего чипа.
Смысл этой тройной избыточности состоит в том, чтобы обеспечить отказоустойчивость системы без необходимости платить за дорогостоящие микросхемы. Современные самолеты используют аналогичный подход в своих системах управления.
Linux в космосе
Интерфейс на сенсорных панелях управления Crew Dragon
Ракетная компания Илона Маска на прошлой неделе запустила в космос еще 60 спутников Starlink на повторно используемой ракете Falcon 9. И все они тоже работают на Linux, в результате чего общее число спутников под управлением Linux отправленных Starlink достигло 30 тысяч. «В Starlink сейчас находится более 30 000 узлов Linux и более 6000 микроконтроллеров в космосе», – пишет Мэтт Монсон, директор SpaceX по программному обеспечению Starlink.
Компьютеры Starlink работают с патчем PREEMPT_RT, который разработан инженером Red Hat Стивеном Ростедтом в рамках инициативы по превращению Linux в операционную систему реального времени. Джош Салкин, руководитель разработки программного обеспечения для Crew Dragon отметил, что SpaceX не использует сторонние дистрибутивы Linux и что у него есть несколько драйверов для взаимодействия с оборудованием, которое образует распределенную компьютерную систему.
Между интерфейсом, который использовали в своем полете астронавты НАСА Бенкен и Херли, и спутниками Starlink происходила перекрестная разработка: «Технология дисплеев экипажа, особенно карты и оповещения, легла в основу пользовательского интерфейса для первых двух спутников Starlink (Tintin)».
Tintin A и B были первыми двумя спутниками Starlink, выведенными на орбиту на при помощи ракеты Falcon 9 в феврале 2018 года.
По мере того, как спутниковая широкополосная служба Starlink в ближайшие месяцы переходит от тестирования к эксплуатации, безопасность станет критической проблемой для SpaceX. «Мы разработали систему для использования сквозного шифрования данных наших пользователей, чтобы сделать проникновение на спутник или шлюз менее полезным для злоумышленника, который хочет перехватить связь», – пишут инженеры проекта.
Хотя индустрия технологий использует машинное обучение (ML) для автоматизации практически всего, она не достигла космических кораблей SpaceX Dragon и Falcon. «Dragon и Falcon не используют технологии ML, но это не значит, что подобного не будет в будущем SpaceX», – пишет ведущий разработчик программного обеспечения для Demo-2 Джон Дитрик.