Почему астронавты используют Linux? Потому что в космосе нельзя открывать Windows. Но если без шуток, то вообще-то компьютеров, работающих на Linux, в космосе не так уж и много. Однако всё может измениться. В этой статье мы расскажем о том, как Linux помогает исследовать космос. Сначала расскажем о суперкомпьютерах NASA здесь на Земле, затем поведаем о лэптопах на МКС и орбите, продолжим вычислителями управления полётом на ракете-носителе и космическом корабле SpaceX. А закончим одноплатным компьютером от вертолёта, впервые осуществившего полёт на Марс. Мы расскажем, где, как и почему Linux применяют в астронавтике. Миграция Linux в космос случилась недавно, и значит область применения ОС пока ещё ограничена. В связи с этим мы выясним, почему её редко использовали раньше и почему она так популярна сейчас. А ещё порассуждаем над тем, какие перспективы у Linux там, где ещё не бывала ни одна ОС. Здесь мы расскажем о компьютерном оборудовании в космосе и, в общих чертах, о том, как оно повлияло на выбор ОС. Взять МКС, к примеру. Её запустили более 20 лет назад. В то время Linux была новичком, и никто всерьёз её не воспринимал. Большинство встроенных компьютеров не поддерживало дистрибутивов ОС. Обновлять же ПО и железо было рискованно и дорого. Но вот недавно организовали несколько космических экспедиций, и Linux снова осталась не у дел. Марсоход Perseverance совершил посадку на красную планету в феврале 2021 года и будет исследовать её очень и очень долго. Однако главный его бортовой компьютер работает на PowerPC 750 – чипе, выпущенном ещё в 1997 году. Точнее говоря, это разновидность 32-битного PowerPC 750 под названием RAD750. Всё это подводит нас к главной мысли: процессоры не слишком хорошо переносят полёты в космос. Из-за радиации они могут сбоить, а то и вовсе перестать работать. По этой причине процессоры в космических аппаратах обычно устойчивы к радиации. Стоят они недёшево.  Цена RAD750 – около 200 000 долл. А сколько ушло на их разработку, даже представить трудно. Производители выпускают такие специализированные чипы нечасто. У большинства процессоров никогда не было подобных модификаций. По этой причине железо на космических станциях старое, и, как следствие, Linux там редкость. Но всё меняется, и суперкомпьютер Spaceborne на МКС – тому пример. Некоторые события, широко освещаемые в СМИ, наводят на мысль, что все ноутбуки на МКС перевели на Linux ещё в 2013 году. В действительности же всё не так однозначно. Так считает Дэн Данкавидж, руководитель программы разработки бортового радиоэлектронного оборудования и программного обеспечения НАСА на МКС. “Понятно, что на станции имеется много вычислительной техники, – говорит он. – Большинство устройств служат в качестве авиационной электронной системы, вроде той, что на борту авиалайнера или военного самолета”. Хотя он и не признал это, такие критически важные системы не работают под управлением Linux. Однако, помимо них, есть и другие системы. “Некоторые лэптопы работают под управлением Linux, –  говорит он. –  Для экипажа они служат командным интерфейсом для бортовой радиоэлектроники. Работают они на кастомизированном ядре Linux, – объясняет Данкавидж”. “Другие лэптопы и устройства Интернета вещей образуют так называемую систему инструментальных компьютеров (SSC). Она похожа на то, что в бизнесе зовётся критической информационной инфраструктурой. SSC отвечает за всё: от отправки писем по электронной почте до узкоспециализированных экспериментальных интерфейсов и медицинского наблюдения за состоянием здоровьем экипажа. На ней же работают космические тренажёры”, –  говорит Данкавидж. “Большинство SSC-лэптопов – это клиенты Windows 10.  Устройства IoT работают под управлением Debian Linux. Остальные лэптопы используются для запуска отдельных экспериментальных приложений, с ними же работают международные партнеры. Одни работают на Windows, другие – на различных дистрибутивах Linux”, –  говорит он. На борту МКС также есть Honey, Queen и Bumble – авиароботы, которые вместе образуют систему под названием Astrobee. Они помогают астронавтам с их повседневными обязанностями, а те в свою очередь могут сосредоточиться на том, что способен делать только человек. Инженеры NASA говорят, что проектировали роботов для того, чтобы проводить инвентаризацию, документировать эксперименты астронавтов, которые те проводят со своими встроенными камерами. Они также могут работать вместе: например, перемещать груз по станции. В добавок система служит в качестве исследовательской платформы. Её можно оборудовать и запрограммировать так, чтобы проводить эксперименты в условиях невесомости. И вся эта робототехника работает на Linux. Точнее говоря, две трети компьютеров на базе ARM работают под управлением Ubuntu/ROS, треть – под управлением Android 7.1. До сих пор Linux упоминалась как ОС для лэптопов и авиароботов на земной орбите. Более мощный компьютер под управлением Linux появился на МКС в 2017-м году в ходе миссии протяжённостью 1 год.  Spaceborne Computer (так называлось устройство) был заявлен как суперкомпьютер. Разработан он был как альтернатива существующему в то время методу защиты процессоров от воздействия радиации. Предполагалось, что он создаст предпосылки для использования более современных и производительных процессоров. Они могут понадобиться для долгосрочных пилотируемых миссий, например, на Марс. Компьютер Spaceborne – серийно выпускаемый суперкомпьютер от Hewlett Packard Enterprise (HPE). Он включает в себя серверные системы HPE Apollo 40 с высокой скоростью обмена данными. Работает Spaceborne на Linux ОС. Согласно представителям HPE, Spaceborne содержит вычислительные узлы того же класса, что и Pleiades – топовый суперкомпьютер NASA. Вместо прежних, устойчивых к радиации процессоров, инженеры Spaceborne использовали программный комплекс. В условиях интенсивного излучения потребление электроэнергии и, как следствие, скорость выполнения операций ПК снижались. Однако, как было установлено, система продолжала работать. В ходе демонстрационного полёта Spaceborne выполнял более триллиона вычислений в секунду (один терафлоп). При этом даже перезагрузка не требовалась. До сих пор астронавты NASA не брали Linux на особо важные задания, но всё может измениться. И МКС может сыграть в этом важную роль. Space Shuttle, перед тем как его списали в 2011 году, доставлял астронавтов и полезные грузы на МКС с помощью ракеты Союз и ещё нескольких других средств выведения на орбиту. Но потом, в 2012 году, силы капитализма вступили в игру. Космос больше не был исключительно прерогативой космических агентств, находящихся в собственности у государства. Теперь на МКС отправляют свои ракеты компании SpaceX и Northrop Grumman. Космический корабль SpaceX Dragon и его ракета-носитель Falcon представляют особый интерес.    Там, где NASA идёт впереди, SpaceX догоняет, подумаете вы. Однако с операционными системами дела обстоят иначе. Так системы космического запуска на ракетоносителях NASA будут работать на проприетарной ОС от Boeing.  А у пилотируемого исследовательского аппарата Orion на борту находится ОС в режиме реального времени Integrity-178B от Green Hills Software. SpaceX же строго в лагере сторонников Linux. Однако это совсем не те дистрибутивы Linux, которые бы вы выбрали для своего ПК. Хотя SpaceX и не подтвердила это, считается, что в ракетоносителе Falcon 9 применяется урезанная версия Linux. Она работает на процессорах с архитектурой x86 и ПО для управления полётами, написанном на C++. Хотелось бы нам сказать, что компьютеры на борту космических кораблей Pioneer 10 и 11, ныне покинувших Солнечную систему, работают на ОС Linux, но это будет неправдой. Ведь первый зонд, Pioneer 10, был запущен всего четыре месяца после того, как первый в мире микропроцессор – 4-битный 4044 от Intel – поступил в продажу. Компьютеры на Pioneer 10 и 11 сделаны из нескольких логических микросхем и, скорее всего, не имеют ОС. И всё-таки Linux можно найти за пределами Земли, точнее говоря, в 278 млн км от неё – а это 6 месяцев полёта. NASA поручило Лаборатории реактивного движения (JPL) подготовку миссии на Марс. Тим Кэнэм, старший инженер по разработке бортового ПО в JPL, рассказывает, почему Linux находит всё большее применение в космосе. Во-первых, это положительный опыт. ”В паре случаев Linux  отлично себя зарекомендовала себя, – говорит он. – Я говорю про Ingenuity, первый вертолёт на Марсе, и систему камер EDL на марсоходе Perseverance. Обе системы считались демонстрационными и не были критически важными для работы устройств, однако Linux успешно справилась в обоих случаях”. Тот факт, что разработчики взяли Linux на борт Ingenuity, хотя ранее не делали этого из-за устаревшего железа, свидетельствует о позитивных переменах. Поскольку атмосфера на Марсе в сто раз разряженнее, чем наша, требования к конструкции летательного аппарата, который должен был полететь на красную планету, были довольно высоки. По этой же причине инженеры сильно увеличили вес роботов, так как снижение его до минимума могло привести к прекращению работы.  Чтобы отвечать этим требованиям, инженеры выбрали компьютер с процессором Qualcomm Snapdragon на базе ARM. Linux выбрали в качестве операционной системы, потому что ОС VxWorks, которая обычно использовалась для подобных сценариев, не поддерживалась чипом Snapdragon. Так почему же такие сценарии применения скорее исключение, чем правило? Помимо того, что вычислительное оборудование для полётов, как правило, наследует характеристики своих предшественников, что ещё мешает установить Linux в космические корабли? Кэнем считает, что тому есть несколько причин. Среди них – производительность в режиме реального времени. “У ПО для полётов обычно имеются очень малые сроки работы, в которые надо уложиться, чтобы обеспечить выживаемость космического корабля. Если же ОС не может гарантировать, что эти сроки будут соблюдены, её нельзя использовать”. Второй довод Кэнема может некоторых насторожить. “Справедливо или нет, но бытует мнение, что, поскольку Linux построена на открытом коде, узнать или объективно оценить качество кода, содержащегося в ядре, драйверах и других приложениях, довольно трудно”. “Но всё меняется, – говорит Кэнем. – Linux находит всё большее применение в различных областях. И, разумеется, у каждой организации имеются свои риски, связанные с использованием Linux. Что касается NASA, то Linux прекрасно подходит для обработки данных и функционирования лётного оборудования в штатных, некритических ситуациях”. Преимущество ОС в том, что за счёт её открытого кода можно ускорить разработку и приспособить уже имеющееся, созданное раннее сообществом ПО”. И пусть Linux пока не совершила прорыва в исследовании космоса, некоторые изменения имеют место быть. Подтверждение тому тот факт, что Ingenuity – первый роботизированный вертолёт, взлетевший над поверхностью другой планеты, чудо астрономической инженерии – работает на Linux.