Cloud4Y продолжает рассказывать про то, какие операционные системы реального времени используются в космических аппаратах, какие у них есть особенности и недостатки. Это вторая, заключительная часть истории. Первая часть была тут.
ЕКА и RTEMS
Последние лет десять особых изменений в космических операционных системах не наблюдалось. В НАСА были более-менее довольны работой проприетарной программы VxWork даже в самых сложных миссиях. Но у Европейского космического агентства была своя рабочая лошадка. ЕКА вложило значительные средства в разработку RTEMS с открытым исходным кодом. По мнению европейских учёных, их операционная столь же эффективна, но при этом выгоднее, так как не требует лицензионных отчислений.
Изначально RTEMS создавали отнюдь не для полетов на европейских космических аппаратах. Он предназначался для запуска американских ракет. История этой ОСРВ началась с исследования, проведённого в Центре исследований и разработок ракетного командования армии США еще в 1988 году. Военные пришли к выводу, что использование проприетарных операционных систем реального времени вызывает ряд проблем. В частности, код не принадлежал правительству, поэтому оно не могло его изменять. Более того, в исследовании утверждалось, что ответственность за программные сбои выглядела неясной, а ОСРВ той эпохи были слишком медленными для ракетных систем. По всем этим причинам армия решила создать собственную RTOS под названием Real-Time Executive for Missile Systems. Задача заключалась в том, чтобы сделать ОСРВ, достаточно быструю для управления ракетами, принадлежащую правительству, простую в использовании на процессорах разных семейств и не требующую лицензий.
По мере работы над RTEMS военные США начали понимать, что его возможные применения выходят далеко за рамки ракетных стрельб. Потому систему стали называть Real-Time Executive for Military Systems. А с 4 мая 1995 года, когда RTEMS была выпущена с открытым исходным кодом и перестала принадлежать военным, она превратилась в Real-Time Executive for Multiprocessor Systems.
ЕКА полюбило эту систему по двум основным причинам. Во-первых, RTEMS была разработана с нуля, чтобы её можно было легко переносить на новые семейства процессоров. Таким образом, заставить его работать на радиационно-стойких чипах SPARC LEON, разработанных в Европе для космических миссий ЕКА, можно было без особых затруднений. Во-вторых, систему можно было легко настраивать. Основываясь на тех же принципах работы, что и VxWorks, RTEMS предоставил программистам больше свободы, так как практически все элементы системы можно было изменять. Европейцы могли совершенно свободно возиться с кодом.
Планирование — это одна из областей, в которой RTEMS отличается от VxWorks. В VxWorks разработчики застопорились с упреждающим планировщиком на основе приоритета для задач с разными приоритетами и циклическим перебором, когда несколько задач имеют одинаковый приоритет. Это неизменно. WindRiver ставит вопрос ребром: берите или отказывайтесь. RTEMS предлагает совершенно иной подход
Да, у RTEMS есть планировщик на основе приоритетов с 256 уровнями приоритета, как и в VxWorks. Также доступен метод циклического планирования. Оба используются в качестве планировщиков по умолчанию для однопроцессорных платформ. Но в RTEMS есть возможность отказаться от какой-либо опции и использовать один из множества других механизмов планирования. Например, воспользоваться Simple Priority Scheduler, более компактной версией планировщиков по умолчанию, которая может работать в условиях ограниченной памяти. Тот же самый планировщик с малым объёмом памяти доступен в варианте, предназначенном для симметричных многопроцессорных систем с несколькими процессорами, работающими параллельно.
Как вариант, можно использовать Earliest Deadline First Scheduler — это алгоритм планирования по ближайшему сроку завершения, который, как видно по названию, определяет приоритеты задач с самыми ранними сроками завершения задачи. А если вас не устраивает какой-либо из существующих вариантов, можно выбросить их и написать свой алгоритм планирования — RTEMS будет работать и с ним.
Остановившись на этой ОСРВ, Европейское космическое агентство потратило много времени и сил, доводя её до уровня критичности «B», второго по величине уровня надёжности ПО, используемого агентством. ЕКА присваивает статус «B» ПО, отказ которого может вызвать «критические» последствия. Для этого тестировщики из ЕКА проверили каждую строчку кода, каждую точку принятия решений в RTEMS. Единственная более высокая критичность, уровень «А», присваивается ПО, отказ которого влечёт катастрофические последствия. К сожалению, в документах ЕКА не уточняется, что именно подразумевается под терминами «критический» или «катастрофический». Но вы легко можете представить, что МКС упала на Брюссель — пожалуй, это и есть «катастрофический» уровень.
В последний раз VxWorks использовался ЕКА при запуске спутника Sentinel 1 в 2014 году. Все последующие европейские космические миссии, включая Solar Orbiter, осуществлялись с помощью RTEMS.
ОСРВ в космических миссиях
VxWorks и RTEMS используются уже достаточно давно. И они удивительно хороши в своем деле. В электронном письме, посвященном операционным системам реального времени в 2004 году, Грегори Менке, инженер-программист НАСА, написал, что с точки зрения производительности RTEMS и VxWorks настолько близки, что их практически невозможно различить. Как и следовало ожидать, ЕКА время от времени использовало VxWorks, а НАСА не раз использовало RTEMS. Две основные лётные операционные системы даже работали параллельно на одном космическом корабле, управляя разными приборами.
Но это не значит, что кроме этих двух систем никто ничего не придумывал и не использовал. Новые претенденты на роль космических операционных систем появлялись из самых неожиданных мест. Вроде поста на форуме, посвящённом биткоинам. Ещё в 2013 году разработчик Bitcoin Core Джефф Гарзик предложил свою идею на форуме Bitcoin Talk: а что если объединить космос с технологией блокчейна?
«Я размышлял над тем, как сделать сеть биткоинов еще более устойчивой, — говорит Гарзик. — «И у меня был опыт работы в космической отрасли — мой отец водил меня на запуски космических челноков, когда он работал на ракетном полигоне Уайт-Сэндс».
Гарзик увидел два возможных пути. Первый заключался в аренде пропускной полосы на существующем спутнике и использовании её для трансляции данных блокчейна. Но с точки зрения блокчейн-сообщества имелось чересчур много отдельных точек отказа, то есть существовал значительный риск отключения. Второй предполагал запуск на орбиту Земли наноспутников, которые можно было бы соединить через межспутниковую связь, способную хранить и транслировать данные блокчейна.
«Я назвал это SpaceChain», — говорит Гарзик. «SpaceChain был разработан как самовосстанавливающаяся сеть из нескольких спутников, которая могла обходить отказы оборудования и космических кораблей. Мы искали своего рода модель облачных вычислений, дешёвую и имеющую столь же много плюсов. К тому же, позволяющую компенсировать сбои с помощью программного обеспечения».
Идея Гарзика быстро превратилась в фонд SpaceChain, который занялся разработкой ОС SpaceChain, способной работать на всех этих спутниках.
Краудфандинговые космические аппараты
ОС SpaceChain создана с помощью двух ключевых компонентов. Во-первых, это типичная ОСРВ на основе ядра Sylix с открытым исходным кодом. По словам Гарзика, ОС Sylix широко используется в Китае во многих военных и космических приложениях. В некотором смысле это делает его похожим на RTEMS. Вы помните, что сейчас это аббревиатура расшифровывается как Real Time Executive для многопроцессорных систем, но буква «M» раньше означала «Ракета» (Missile). У Sylix такая же предыстория. Единственное отличие — это страна происхождения.
«Она была, без всякого каламбура, действительно закалённой в боях», — говорит Гарзик, добавляя, что «система надёжна, протестирована и способна поддерживать космические процессоры. И она компактная, что упрощает обслуживание и снижает риск возникновения ошибок. Ядро Linux содержит около пяти миллионов строк кода. Sylix в пять раз меньше».
Второй ключевой компонент для SpaceChain OS — это реализованная технология блокчейна для запуска сети спутников. То есть несколько компаний, учреждений или даже частных лиц могут внести свой вклад в финансирование спутника, работающего под управлением ОС SpaceChain. В то время как часть Sylix отвечает за управление космическим аппаратом, компонент блокчейна предназначен для совместного использования ресурсов космического корабля между несколькими заинтересованными сторонами.
«Это работает следующим образом: чтобы добавить свой узел в сеть SpaceChain, сначала вам нужно пройти процедуру квалификации в организации SpaceChain, и только после этого вы будете добавлены в белый список», - объясняет Гарзик. «Тогда вы можете либо заплатить SpaceChain за создание своего спутника, либо сделать это самостоятельно на основе технических характеристик оборудования с открытым исходным кодом, общедоступных стандартов и общедоступных протоколов». Позднее организации необходимо запустить спутник самостоятельно или поручить запуск SpaceChain. А после того, как космический аппарат будет успешно выведен на орбиту, владельцу придётся заплатить регистрационный сбор, чтобы получить смарт-контракт блокчейна, который позволяет новому узлу выполнять процедуру аутентификации с другими спутниками в сети.
Это может показаться грандиозным или даже фантастическим, но идея Гарзика медленно, но верно развивается. SpaceChain разместила в космосе несколько биткойн-узлов: в 2018 году с помощью ракеты CZ-4B Y34 и в 2019 году на SpaceX Проект получился настолько впечатляющим, что в него вложились несколько крупных компаний. В том числе и Европейское космическое агентство.
Ответ старой гвардии
Разработка новых космических операционных систем — безусловно, захватывающая идея. Но люди, которые сами летали в космос или работали в этой сфере, по-прежнему относятся к SpaceChain скептически.
«Операционная система SpaceChain не заменит RTEMS, если она не предоставляет никаких новых функциональных возможностей, которые нам действительно нужны, и которых нет у RTEMS», —говорит один из представителей ЕКА. — «Мы не балуемся с новым космическим программным обеспечением, просто потому что это весело. У нас всегда есть веские причины для использования новинок. Например, имеющееся у нас ПО не решает наши проблемы, либо оно вызывает какие-то проблемы или что-то в этом роде».
В агентстве считают, что любой новый программный продукт, который ЕКА будет внедрять на своих космических аппаратах, должен пройти длительный период испытаний и сертификации. Вот почему люди в ЕКА, НАСА и других космических агентствах обычно стараются как можно больше активнее использовать то, что у них уже есть, поскольку это сокращает общий процесс разработки.
К тому же, старые космические операционные системы медленно, но верно продолжают своё развитие. В последнем выпуске VxWorks 7 Wind River представила несколько новых функций, направленных в основном на упрощение и ускорение процесса разработки. Вся система стала в высшей степени модульной, и разработчики получили возможность протестировать несколько версий критически важных компонентов (вроде файловой системы), и увидеть, что способно решить их проблемы. То есть не нужно ждать следующего обновления всей системы, как, например, в случае с macOS. Компания также добавила поддержку расширенных графических интерфейсов пользователя, так что теперь VxWorks может использовать сенсорные экраны и другие удобные дисплеи, которые, вероятно, появятся на космических кораблях будущего.
Тем не менее, даже скептики признают, что идея SpaceChain о спутниках, доступных для нескольких пользователей одновременно, весьма заманчива. У традиционных космических систем нет многопользовательской функциональности, и это существенный недостаток. Однако та же ЕКА пытается решить эту проблему путем разделения полётного программного обеспечения. Агентство экспериментирует с элементами ИМА (интегрированной модульной авионики), которая позволяет нескольким самолетам работать в распределённой сети с поддержкой различных приложений. Эта система используется в реактивных истребителях 4-го поколения.
В целом, возможности современных космических операционных систем постепенно растут, поскольку даже заядлые ретрограды начинают осваивать новые функции, глядя на шустрых новичков. ЕКА — отличный этому пример. В настоящее время агентство разрабатывает различные программные продукты, которые позволили бы реализовать упоминавшуюся выше многопользовательскую архитектуру на космических кораблях. Как признают учёные, им было бы интересно взглянуть на SpaceChain OS и посмотреть, как они решают эту проблему. Но пока у них есть ИМА, которая теоретически способна обеспечить создание многопользовательского режима в космических аппаратах. Получится ли, покажет время.
Что ещё интересного есть в блоге Cloud4Y
→ Найдено давно утерянное руководство к самому старому компьютеру в мире
→ Пограничный патруль США планирует 75 лет хранить данные из гаджетов путешественников
→ ИИ снова победил пилота F-16 в воздушном бою
→ Рассказываем про государственные защищенные сервисы и сети
→ Внутри центра обработки данных Bell Labs, 1960-е
Подписывайтесь на наш Telegram-канал, чтобы не пропустить очередную статью. Пишем не чаще двух раз в неделю и только по делу