Несколько слов о новой бортовой операционной системе реального времени (ОСРВ) предназначенной для использования на воздушных судах МС-21 и Суперджет.
JetOS - перспективная бортовая операционная система реального времени (ОСРВ), разработка которой в настоящее время ведется в рамках научно-исследовательской работы ГосНИИАС. ОСРВ разрабатывается в соответствии с DO-178C и ARINC 653, учтена возможность работы с OpenGL SC.
По материалам сайта "Техносфера" и информации от Государственного научно-исследовательского института авиационных систем (Труды Института системного программирования им. В.П. Иванникова РАН, том 29, вып. 3, 2017 г., стр. 171-178, авт. Ю.А. Солоделов и Н.К. Горелиц).
JetОС должна заменить такие операционные системы зарубежного происхождения, как VxWorks 653, PikeOS, MACS2, LynxOS-178.
Минпромторг России поддерживает ведущуюся в нашей стране с 2016 года разработку отечественной операционной системы реального времени (ОСРВ) с рабочим названием JetOS. Государственный научно-исследовательский институт авиационных систем (ГосНИИАС) планирует использовать ее на новейших пассажирских самолетах МС-21 и серийных «Суперджетах».
Использование специализированных операционных систем зарубежного происхождения, таких как VxWorks 653, PikeOS, MACS2, LynxOS-178, на самолетах, которые используют в России, это не только технологическая зависимость, но и реальная угроза национальной безопасности нашей страны. После обострения отношений между РФ и рядом стран Запада российские разработки наконец-то оказались в центре внимания отраслевых ведомств и стали ускоренно развиваться. Так первые версии JetOS уже обкатывают на платформах отечественных разработчиков. Государственную сертификацию новой российской ОСРВ планируют пройти до конца 2019 года.
На протяжении длительного времени как в отечественной программе ИМА, так и на разрабатываемых воздушных судах применялись зарубежные ОСРВ (например, VxWorks 653 или Thales MACS2). Однако имеется прецедент, при котором один из разработчиков ОСРВ в одностороннем порядке прекратил сотрудничество с рядом отечественных компаний, что осложнило проводимые работы и поставило вопрос о замене зарубежного продукта на отечественный аналог [4] (здесь и далее приведены ссылки на источники, перечень которых приведен в конце текста - прим. ред.).
Главное отличие данного проекта от аналогов в наземной сфере – повышенные требования к качеству работы. Также требуется написать не только саму ОС, но и программное обеспечение для многочисленных периферийных устройств.
Как говорят специалисты, ключевыми характеристиками современных ОСРВ для гражданской авиации являются: соответствие актуальной версии стандарта ARINC 653 (регламентирует временное и пространственное разделение ресурсов авиационной ЭВМ в соответствии с принципами интегрированной модульной авионики), сертифицируемость по DO-178C [в русскоязычной редакции – КТ-178C] (для применения в гражданской авионике), поддержка работы на многоядерных процессорах и возможность портирования между различными аппаратными платформами.
Необходимо пояснить такую постановку задачи как «создание сертификационного пакета». По действующим в настоящее время международным регламентам сертификации подлежит не ПО, а система (комплектующее изделие), в состав которого упомянутое ПО входит [5]. Поэтому говорить о сертификации ПО в отрыве от разрабатываемого воздушного судна или комплектующего изделия было бы некорректно.
Поскольку данная работа ведется независимо от создания ВС или КИ, ее целью должна являться подготовка всех необходимых материалов (т.е. сертификационного пакета) для последующего включения их в процесс разработки и сертификации комплектующего изделия.
В состав сертификационного пакета входят, помимо прочего, следующие материалы:
- планы и стандарты, по которым разрабатывается ПО (КТ-178 С, гл.11.1 -11.8) [3],
- требования к разрабатываемому ПО (КТ-178 С, гл. 11.9) [3],
- проект ПО(КТ-178 С, гл. 11.10) [3],
- исходный код самого ПО и тестов (КТ-178С, гл. 11.11, 11.13) [3],
- широчайший спектр результатов верификации (КТ-178С, гл. 11.14) [3]
– от результатов инспекции планов, стандартов, требований и т.п. до результатов прогона тестов, анализа трассируемости между данными жизненного цикла и т.д.
Полный перечень данных жизненного цикла приведен в КТ-178C, гл. 11 [3].
Как прототип, так и основной код ОСРВ разрабатывается на языке C. Это обусловлено простотой его синтаксиса сравнительно с более поздними разработками (например, C++) и широкой распространенностью (компиляторы языка C существуют для подавляющего большинства аппаратных платформ в мире).
В соответствии с КТ-178 С процесс кодирования регламентируется стандартом на кодирование, разработанным в рамках данного проекта и входящим в сертификационный пакет. Стандарт на кодирование в значительной степени базируется на документе MISRA C и синтаксисе языка С99. Стоит отметить, что при создании бортового ПО крайне большое значение уделяется верификации исходного (а зачастую и исполняемого) кода, а широкие синтаксические возможности и развитые парадигмы программирования более современных языков очень усложняют верификацию кода или делают ее вовсе невозможной. Так, в настоящее время применение объектно-ориентированных языков при разработке бортового ПО допускается лишь с существенными ограничениями (см. [7]).
Одним из важных требований к системному бортовому ПО является возможность работы с графической библиотекой OpenGL (как правило, разновидности Safety Critical – OpenGL SC). OpenGL SC является подмножеством стандарта OpenGL для применения в составе критических систем. В настоящее время OpenGL SC представлен версиями 1.0.1 и 2.0.
Бортовые функциональные приложения используют сервисы OpenGL для отображения как двухмерных изображений (мнемокадры, таблицы и пр.), так и трехмерных – например, при моделировании рельефа местности.
Говоря про создание ОСРВ для авионики, нельзя не упомянуть про стандарт ARINC 653 [6]. Данный стандарт, определяющий программный интерфейс и режимы работы бортового функционального ПО, на протяжении ряда лет является общепринятым во всем мире. При разработке JetOS заложена реализация ARINC 653 наиболее актуальной версии (2015 года), причем не только основных, но и дополнительных сервисов.
Создание ОСРВ как полноценного продукта подразумевает также разработку целого спектра инструментов – в первую очередь, интегрированной среды разработки функционального ПО, а также компонентов ОСРВ, необходимых для отладки, мониторинга и трассировки разрабатываемых приложений.
Программный продукт может соответствовать требованиям КТ-178C только для определенных аппаратных платформ; при переходе на новую аппаратуру должна проводиться повторная верификация всей портируемой кодовой базы, а весь новый исходный код должен быть разработан в соответствии с процессами КТ-178C. Поэтому в рамках данной НИР была выбрана так называемая основная платформа, для которой будут собираться верификационные данные; ей стал вычислительный модуль МУПД2G на базе процессора P3041 (PowerPC), разработанный компанией НКБ ВС в рамках отечественной программы ИМА, проводившейся под руководством ГосНИИАС. Помимо МУПД2G имеющийся код ОСРВ портирован на платформу на базе P1010 (PowerPC), а также на i.MX6 (на базе архитектуры ARM).
Необходимо отметить также, что вышеупомянутый процессор P3041 является четырехъядерным.
В настоящее время успешно проведено прототипирование на широком спектре компонентов - как системного, так и прикладного уровня (включая графический менеджер, сетевой стек, файловую систему и библиотеку OpenGL).
В рамках прототипирования была разработана базовая версия требований высокого уровня и проекта ПО, которая сейчас активно развивается и перерабатывается; параллельно ведутся работы по рефакторингу кодовой базы и созданию инфраструктуры тестирования.
Опыт применения бортовых ОСРВ в мире показывает, что продукт, соответствующий DO-178C может быть сертифицирован и для применения в других отраслях промышленности, что достигается за счет заложенных в стандарте ограничений и жестких требований [10]. Поэтому вопрос адаптации JetOS для индустриальной техники, космоса, транспорта, медицины также является актуальным и активно прорабатывается; при этом основной задачей НИР остается создание работоспособной высокопроизводительной ОСРВ с сертификационным пакетом, который впоследствии можно будет использовать при создании КБО для гражданских самолетов.
Более подробно по ссылке на труды ИСП РАН.
Пора создавать раздел "операционные системы России", как мне кажется.
10 октября 2017 года: Существующие операционные системы для интернета вещей Tizen и SailFish построены на ядре Linux. Гендиректор «Базальт СПО» Алексей Смирнов считает, что российская ОС также будет построена на базе UNIX-систем, а разработка проекта должна осуществляться за счёт частных компаний.
Комментарии
Странно, почему за основу взят вычислительный модуль МУПД2G на базе процессора P3041 (PowerPC), а не на базе Эльбруса или Байкала? Когда Запад покажет фигу на поставку PowerPC, придется срочно переделывать все под наши процессоры. Или разработчики не в курсе, что Россия уже свои процессоры производит?
Делается видимо под то, что есть. На Эльбрусе видимо пока нет авионики.
Эльбрус не подходит. Тут больше подойдет что-то типа МультиКлет
микропроцессоры серии Эльбрус (по крайне мере до версии 8С) просто НЕ предназначены для применения в жЕстких условиях авиации.
Я вообще не уверен, что архитектура Эльбруса хорошо подходит для задач реального времени. Ведь тут упор на мощу и производительность, а не быстроту и предсказуемость времени реакции.
Вообще никак не связано и не противоречит.
Под Эльбрус тоже будет. Но не сразу.
PowerPC - открытая архитектура. IBM её уже довольно давно открыла. Можно спокойно делать свои процесоры.
А мне сначала прочиталось "бытовая операционная система"
Самый интересный вопрос - какой предполагается API для приложений. Надеюсь, хотя бы POSIX? От этого зависит, насколько легко будет портировать под новую ОС существующие приложения и библиотеки. А следовательно, и популярность новой ОС.
Угу, популярнее некуда. В количестве 100 экземпляров в год. Это же ось реального времени для бортовой электроники, а не домашняя или серверная операционка. Там этих библиотек раз два и обчёлся.
Не для микроконтроллеров же. Сейчас тенденция объединять устройства в сеть, а сами проекты всё усложняются и усложняются. Грань между серверными и встроенными системами все тоньше.
Та же LynxOS имеет интерфейс POSIX.
Лично я предпочел бы именно POSIX-образный интерфейс для любого более-менее сложного проекта.
Про дыры в дизайне POSIX см. UNIX Haters Handbook. Особенно это касается шелла, исправить можно только несовместимым изменением стандарта.
Ты бы - вряд ли что-то предпочёл. Скоро на небесную ось налетишь с таким уровнем обсуждения темы. Ушибёшься.
ARINC653 гарантированно, это стандарт де-факто в гражданской авиации. И, скорее всего, POSIX.
Так это линукс или все таки что то самобытное?
Самобытное. Но хочется верить, что для программ и пользователя это будет выглядеть похоже на тот же Linux. Проще будет программировать под эту ось.
программировать ты можешь на любом говне, какое тебе только в голову придет.
но вот только потом, защищать это говно по КТ-178 ты заколебешся и бросишь на полпути.
защищать это говно по КТ-178 ты заколебешся и бросишь на полпути.
При использовании ARINC653 защищать проще, чем при использовании POSIX?
Не линукс.
Это не линукс. Но код от BSD наверняка будет использоваться для реализации POSIX.
Нет, упоминания Posix нет.
=) А он будет (скорее всего). Если, конечно, ГосНИИАС не пилит там что-то совсем конкретно новое с нуля. Новое по сравнению с тем, что они уже пилили.
ПДФ-ка
Судя по всему разрабатываются аналогичный но абсолютно независимый от посторонних сырцов код.
Поддерживаю, а то задолбался закладки сохранять с новостями про отечественное железо.
Красавцы! Просто красавцы!
Своё ОСРВ - это круто! Это очень серьёзный шаг, уже хотя бы потому, что для ОСРВ нужны серьёзные компетенции и их не так много. Как раз купил сегодня вечером бутылочку сухого каберне "Южный Берег Крыма". Пусть наши разработчики и дальше разрабатывают - поднимаю за них стакан вина.
А вы думаете, Су-57 летает на чужой ОСРВ?
Немножко англовики, на русском отчего-то мало данных. Тут вопрос в сертификации.