Операционные системы реального времени для авионики: обзор
Благодаря развитию вычислительной техники в последнее время стало возможным возложить на один модуль задачи, выполняемые ранее несколькими процессорными модулями, при этом улучшив массогабаритные характеристики системы управления и снизив ее стоимость. Такая тенденция в авиационной технике привела к появлению концепции интегрированной модульной авионики - ИМА (Integrated Modular Avionics,IMA).
Проблема интеграции функций управления в единый модуль состоит в том, что необходимо разделять ставшие теперь общими ресурсы (процессорное время, память, каналы обмена) между различными задачами, при этом обеспечивая такой же уровень надежности и независимости функций, как и был ранее. Ключевую роль в решении данной проблемы играет операционная система реального времени.
В настоящее время на мировом рынке присутствует несколько коммерческих ОСРВ для ответственных применений (табл. 1). В данной статье приведен обзор ОСРВ, доступных на российском рынке, на основе информации из открытых источников и личного опыта авторов.
Далее, если нет других оговорок, для краткости будут использоваться следующие названия ОС: LynxOS вместо LynxOS-178; VxWorks вместо VxWork 653; QNX вместо QNX Neutrino.
Документы, регламентирующие требования к ОСРВ
Стандарт DO-178 (Software Consideration in Airborne Systems and Equipment Certification) определяет требования к процессу разработки программного обеспечения и тщательности его проверки в зависимости от его уровня критичности. Уровень критичности ПО определяется на основе анализа серьезности последствий отказа в ПО. Всего предусмотрено пять уровней критичности ПО (от A до E).
MILS (Multiple Independent Levels of Secutiry) представляет собой специальный подход к проектированию ОС, препятствующий распространению ошибок прикладного программного обеспечения во время выполнения, а также упрощающий верификацию программ за счет модульности ПО. Все приложения помещаются в так называемые разделы (partitions). Разделы имеют выделенные ресурсы (область памяти, процессорное время в течение каждого цикла системы, доступ к каналам обмена и пр). Доступ к выделенным ресурсам гарантируется ОС, работающей в режиме супервизора. Таким образом, на одном процессорном модуле под управлением одной ОС может работать прикладное ПО разного уровня критичности — если сбой произойдет в менее критичном (и, соответственно, менее проверенном) ПО, это никак не повлияет на работу других разделов, так как попытки «узурпировать» чужие ресурсы будут пресечены операционной системой. Идеи MILS перекликаются с идеями ИМА и DO-178B.
Стандарт ARINC-653 (Avionics Application Software Standard Interface) специфицирует интерфейс прикладного программного обеспечения APEX, поддерживающий концепцию разделов в духе MILS. Данный интерфейс включает функции управления разделами, процессами, разделением времени, коммуникациями между разделами и внутри раздела, мониторинг состояния системы. Надо отметить, что стандарт ARINC-653 описывает общепризнанный подход к реализации идей MILS для ИМА, хотя могут быть и другие реализации. Авиационная ОСРВ, соответствующая ARINC-653, имеет преимущества, так как данный стандарт хорошо известен и понятен международным сертифицирующим органам, поэтому на систему, построенную по этому стандарту, проще получить сертификат соответствия DO-178B.
Стандарт Reusable Software Components. В соответствии с DO-178B программное обеспечение той или иной системы авиационного применения проходит процедуру сертификации полностью, даже если оно использует модули (компоненты), которые уже были сертифицированы ранее в составе другой системы. Одной из последних инициатив FAA (Федеральное агентство по сертификации гражданской авиации, США) является определение критериев возможности многократного использования ПО без повторной сертификации. Компоненты, которые можно повторно не сертифицировать, называются RSC (Reusable Software Components). Чтобы получить сертификат на RSC, нужно затратить больше усилий, но затем RSC дает серьезную экономию.
Российские документы, определяющие требования к ПО (и в том числе к ОСРВ):
Сравнение ОС РВ проводилось по 13 параметрам, которые учитывают технические критерии, удобство разработки и экономические параметры.
Временные параметры ОС
Одним из основных требований к ОС РВ является минимальное время задержки обработки того или иного события. На практике это означает, что должны быть малы следующие параметры:
К сожалению, объективно сравнить указанные параметры различных ОС РВ не просто, потому что данные параметры зависят не только от качества ОС, но и от возможностей используемой аппаратной платформы. В идеале, все сравниваемые ОС должны быть установлены на одну и ту же аппаратную платформу, после чего должны быть сделаны соответствующие измерения. Но даже эти измерения не дадут объективного результата, потому что различные ОС могут быть в большей или меньшей степени адаптированы к конкретной аппаратуре.
Для сравнения временных параметров в данной статье использованы фрагментированные данные, найденные в Сети, которые зачастую получены при тестировании ОС на различном оборудовании, при этом не всегда понятен состав и характер тестов.
Достаточно объективными данными можно считать результаты, полученные экспертами журнала Dedicated System, проводившими тестирование и практическое сравнение QNX RTOS 6.1, VxWorks AE 1.1 и Windows CE.NET на x86 платформе. Хотя на сегодняшний момент эти данные устарели, авторам данной статьи не удалось найти более свежего материала. В табл. 2 приведены выборочные данные о сравнении производительности QNX Neutrino 6.1, VxWorks AE 1.1. В отчете Dedicated Systems предпочтение с точки зрения быстродействия было отдано QNX, причем отношение баллов было установлено как 9:5 (QNX:VxWorks), потому как в процессе тестирования в VxWorks были обнаружены две ошибки, за исправлением которых пришлось обращаться в службу поддержки.
В табл. 3 приведены данные о характеристиках LynxOS. Состав использовавшихся тестов не указан. В качестве данных о характеристиках LynxOS интересна четвертая колонка (тестирование на x86-платформе). По сравнению с VxWorks и QNX, ОС РВ LynxOS показывает огромную задержку при реакции на прерывание (более чем в 5 раз). Время переключение контекста (имеется в виду время переключения между двумя потоками в одном процессе) одинаковое с QNX и меньше примерно в 1,5 раза, чем у VxWorks.
Стабильность временных параметров
Помимо временных характеристик для ОС РВ важна также стабильность этих характеристик. Именно этот критерий во многом определяет «жесткость» ОС РВ, т.е. предсказуемость времени обработки данных, момента выдачи результатов и т.д.
Исходя из данных журнала Dedicated System, QNX опережает по этому критерию VxWorks как по разбросу характеристик в серии однотипных тестов (отношение максимума времени к среднему значению существенно меньше), так и с ростом нагрузки (время переключения потока при увеличении числа потоков 2...128 ед. у QNX выросло только в 1,65 раза, тогда как у VxWorks — в 2,24 раза).
По данным, полученным в компании РТСофт, известно, что LynxOS имеет приблизительно те же характеристики, что VxWorks.
Управление доступом к ресурсам
Оценим качество разграничения доступа, предлагаемое той или иной ОС РВ, к критическим ресурсам вычислительной системы, таким как память и процессорное время.
Первый вопрос, на который нужно найти ответ — поддерживает ли ОС модель процессов. Процесс — это логический объект, который владеет одним или несколькими потоками, ассоциированными с ними ресурсами и контекстом — содержимым регистров и счетчиков в каждый отдельный момент времени.
Задача процессов состоит:
Сегментирование также обеспечивает разделение адресных пространств (в этом смысле возможности сегментирования и процессов дублируют друг друга). Кроме того, сегментирование обеспечивает каждому сегменту, содержащему один или несколько процессов (или потоков, если ОС не поддерживает модель процессов), гарантированный бюджет времени. Таким образом, если высокоприоритетный поток зациклится и нарушит работу своего сегмента, все остальные сегменты будут получать процессорное время в соответствии с установками, определенными на стадии проектирования, и продолжать нормально функционировать.
LynxOS и QNX поддерживают как модель процессов, так и сегментирование.
ОС VxWorks имеет механизм сегментирования, но не поддерживает процессную модель. В целом, это допустимо, так как сегментирование обеспечивает разделение адресных пространств. Но отсутствие процессов несет некоторые неудобства. Обычно деление на сегменты выполняется исходя из целевого предназначения ПО и его критичности. Например, некоторый сегмент может содержать ПО управления пилотажно-навигационным комплексом, имеющее высокий уровень критичности. Но данное ПО также представляет собой достаточно сложный комплекс, который логично было бы разделить на независимые (по памяти) модули. ОС VxWorks такую возможность не предоставляет, то есть сегмент будет состоять из потоков с общей памятью, что усложняет организацию параллельной разработки и, в конечном счете, снижает надежность ПО.
Поддержка мультипроцессорных и распределенных систем
Стоимость многопроцессорных модулей в последнее время существенно снизилась, и потому они стали все чаще применяться во встроенных системах. Разумеется, ОС РВ должна обеспечивать поддержку таких плат.
Другое перспективное направление в построении САУ — это распределенные системы, где модули разнесены в пространстве, а коммуникация между ними происходит через некоторую сетевую среду. Опять же применяемая ОС РВ должна иметь удобные и надежные средства для организации взаимодействия модулей: поддержка различных сетевых протоколов, средства обеспечения сетевой прозрачности.
ОС РВ QNX предлагает поддержку многопроцессорных плат. Для VxWorks такая поддержка пока только анонсирована. Авиационной версии LynxOS с поддержкой многопроцессорных плат пока тоже не существует.
В отношении поддержки сетевых протоколов нужно отметить, что ОС РВ LynxOS, VxWorks и QNX обладают примерно равными (и широкими) возможностями. Дополнительным плюсом ОС РВ QNX является ее специальная архитектура сетевой подсистемы, обеспечивающая сетевую «прозрачность» прикладных программ: любой процесс может вызвать другой процесс на удаленном модуле так же, как и процесс на локальном модуле.
Поддержка файловых систем
Возможность хранения информации в виде файлов является удобной и традиционной. И наоборот, отсутствие такой возможности создает трудности при хранении редко изменяемых данных и создании распределенных систем.
В табл. 4 показана поддержка файловых систем каждой из рассматриваемых ОС.
QNX обладает наиболее широкой поддержкой файловых систем. Кроме того, ее файловая система на флэш является отказоустойчивой.
Качество документации
Качество документации ОС РВ LynxOS, VxWorks, QNX достаточно высокое. Однако есть и нарекания по поводу документации:
Тем не менее, компании работают над качеством материала. Документация на текущую версию QNX (6.3.2) существенно расширена, налицо переработка некоторых частей.
Качество технической поддержки
По качеству официальной технической поддержки несомненный лидер — это LynxOS. Компания LynuxWorks обещает дать ответ на любой технический вопрос в течение 4 часов с момента опубликования запроса. LynxOS распространяется на территории России компанией РТСофт, имеющей большой штат сотрудников, способных оказать квалифицированную помощь. Недостатком LynxOS является то, что ОС пока что не очень распространена в России, соответственно, нет сформировавшегося сообщества пользователей, и даже нет русскоязычного форума.
Компания QSS (производитель QNX) также предлагает хорошее качество технической поддержки, но быстрота ответа не гарантируется. В отличие от LynxOS ОС РВ QNX имеет хорошо организованное сообщество пользователей как за рубежом, так и в России. Ответы на большинство вопросов можно найти на этих форумах. QNX в нашей стране распространяется компанией «СВД Встраиваемые Системы», сотрудники которой способны оказать грамотную техподдержку и выполнить работы по адаптации ОС на специфичные процессорные платы. Кроме того, компания имеет прямые контакты с QSS и может получить консультации по сложным вопросам у разработчика ОС РВ QNX.
Компания WindRiver, разработчик VxWorks, традиционно придерживается закрытой технической политики, то есть информацию о принципах работы ОС получить достаточно тяжело. Русскоязычного форума у данной ОС также нет. ОС РВ VxWorks у нас в стране распространяется компанией «АВД Системс», которая в основном занимается продажами готовых программно-аппаратных решений зарубежного производства.
Открытость исходных кодов
Открытая ОС РВ имеет по крайней мере три преимущества:
С сентября 2007 года компания QSS открыла исходные коды ядра QNX (включая пакет сегментирования Adaptive Partitioning, пакет высокой готовности High Availability). Немногим позже были открыты исходные коды сетевой подсистемы. В настоящее время на официальном сайте доступна для скачивания бета-версия 6.4.0.
Надо отметить, что на сегодняшний день не все модули QNX открыты (например, нет кодов для графической и файловой систем), и лицензия налагает ограничение на использование «исходников»: только для некоммерческого применения. Тем не менее, пользователь QNX получает указанные выше преимущества бесплатно.
Исходные коды LynxOS и VxWorks доступны в продаже. Цена на такой продукт договорная.
Инструментальные средства
Наличие хороших инструментальных средств во многом определяет качество и скорость разработки прикладных программ под ту или иную ОС. Надо отметить, что LynxOS, VxWorks и QNX в настоящее время предоставляют хорошего качества инструментальные средства, которые включают интегрированную среду разработки (ИСР) и отладки прикладного ПО, средства профилирования программ (для обнаружения «узких мест» по производительности, памяти и пр.). Эргономика ИСР для данных ОС РВ в целом не уступает развитым средствам разработки для обычных ОС (например, MS Windows).
Переносимость прикладного ПО
Переносимость прикладного ПО обеспечивает возможность его использования под другие ОС (в том числе, не ОС РВ). Переносимость дает определенную независимость разработчику прикладного ПО от ОС РВ: в случае необходимости можно с невысокими издержками перейти на другую ОС.
Возможность написания переносимого ПО определяется в текущий момент соответствием стандарту POSIX. Все рассматриваемые ОС РВ поддерживают стандарт POSIX 1003.1. Преимущество есть у LynxOS — данная ОС обладает бинарной совместимостью с ОС Linux. То есть приложения Linux могут быть запущены под LynxOS без перекомпилирования. И, наоборот, приложения LynxOS могут быть запущены в Linux (версии 2.4.x c библиотекой языка Си glibs версии 2.2.2).
Остальные ОС РВ для запуска Linux-приложений требуют их перекомпиляции. В этом случае зачастую процесс переноса даже POSIX-совместимых приложений может стать достаточно трудоемким из-за разницы в реализации библиотек и компиляторов.
Поддержка процессорных архитектур
Отечественные разработчики систем управления для авиации в сегодняшний период перехода от внутрифирменных ОС к коммерческим зачастую оказываются в ситуации, когда нужно подобрать и адаптировать ОСРВ к уже существующей процессорной плате. В этом случае одним из ключевых аргументов при выборе ОС является поддержка архитектуры процессора, используемого на плате.
Соответствие авиационным стандартам
В зарубежной практике ПО для систем авионики должно иметь сертификат соответствия стандарту DO-178B. Если ПО разных уровней критичности выполняется на одном процессорном модуле, то применяемая ОСРВ должна поддерживать концепцию разделов. (Иначе доказать нераспространение ошибки практически невозможно). Как уже говорилось, лучше, если интерфейс программирования ОСРВ соответствует стандарту ARINC-653, так как стандарт хорошо известен зарубежным сертификационным органам.
LynxOS в части соответствия стандартам является лидером. Она поддерживает ARINC-653, существует достаточно примеров систем, сертифицированных по DO-178B, построенных на ее основе. Ключевым моментом является то, что компания LynuxWorks предлагает набор RSC (правда, авторам статьи ничего не известно о цене).
VxWorks соответствует стандарту ARINC-653, и системы, построенные на ее основе, могут быть сертифицированы по DO-178B (существует большое число примеров).
QNX не соответствует ARINC-653, и пока не существует систем на их основе, сертифицированных по DO-178B.
Надо отметить, что QNX-системы принципиально могут использоваться для построения ИМА, потому что QNX поддерживает свой метод обеспечения концепции разделов, который является весьма хорошей альтернативой ARINC-653 и, кроме того, позволяет экономить процессорное время.
В части аналогичных российских стандартов для военной авиации (ГОСТ Р ИСО/МЭК 51904-2002) нет еще ни одного примера сертифицированной системы, хотя принципиально на основе любой из рассматриваемых ОС можно такую систему разработать. Для ОС РВ QNX в настоящее время ведется работа по подготовке основных модулей ОС к сертификации.
Развитость системы подготовки специалистов
Быстрота и качество обучения персонала, работающего с ОС РВ и различными инструментариями по разработке и отладке ПО напрямую связано со скоростью разработки ПО и его качеством. Ведущие компании в области встроенного и системного ПО, такие как WindRiver, LynuxWorks, QSS, проводят широкомасштабную программу курсов и тренингов по изучению использования продуктов компании, в том числе и ОС РВ.
Результаты сравнения
ОСРВ QNX Neutrino является наиболее совершенной ОС с технической точки зрения, располагает хорошим набором инструментальных средств, имеет относительно невысокую цену. Микроядерная архитектура обеспечивает высокую надежность и модульность разрабатываемых систем. Дополнительным плюсом является открытость исходных кодов. Но есть и «ложка дегтя»: в настоящее время QNX практически нигде не используется в авиации, и по этому параметру данная ОС проигрывает конкурентам (LynxOS и VxWorks). Дополнительный минус QNX: несоответствие стандарту ARINC-653.
Надо отметить, что принципиально QNX Neutrino имеет все необходимые механизмы для работы в системах авионики. Кроме того, надежность и высокая готовность систем на базе QNX доказана в других отраслях, в которых цена ошибки даже выше, чем в авиации (управление ядерным реактором).
Работа по подготовке к сертификации QNX Neutrino по требованиям отечественных авиационных стандартов в настоящее время ведется компанией SWD Software.
ОСРВ LynxOS-178, напротив, имеет все необходимые сертификаты за рубежом, хотя по многим другим критериям выглядит менее предпочтительно, чем QNX Neutrino. Отметим, что для применения в российской авиационной промышленности ОСРВ LynxOS-178 также должна быть сертифицирована по отечественным ГОСТ.
ОС VxWorks имеет давнюю историю применения в ответственных приложениях за рубежом. Тем не менее, наш анализ показывает, что она выглядит менее предпочтительно двух первых ОС по многим критериям. Кроме того, авторитет VxWorks подрывает стратегия закрытой разработки.
Экспертная группа / R&D.CNews