Работают ли системы авионики, критически важные для безопасности, под управлением Linux?

Я слышал разные вещи об этом. Некоторые люди утверждают, что использование Linux на критически важных с точки зрения безопасности системах авионики — очень плохая идея. С другой стороны, некоторые люди (незнакомые с авионикой) говорили, что это неправда.

Поэтому я хотел бы знать, работают ли в настоящее время самолеты на дистрибутиве Linux? Стоит ли внедрять Linux в самолеты? Если нет, то почему?

Скорее всего, они работают на соответствующих операционных системах реального времени. Linux — довольно маловероятный выбор, поскольку он сложный, не работает в режиме реального времени и, вполне вероятно, будет иметь недостатки из-за сложности.
Критическая с точки зрения безопасности авионика обычно имеет одноцелевое назначение. Они, вероятно, даже не запускают ОС в обычном смысле.
Вы бы не хотели, чтобы ваша система авионики работала на какой -либо операционной системе, которая может сказать: «Эй, знаешь что, я думаю, что я запущу этот другой процесс на некоторое время».
Бывший инженер-авионик. Единственное место, где вы найдете готовые операционные системы, — это некоторые бортовые развлекательные системы (например, некоторые используют Android или Windows CE). Даже в этом случае большинство крупных поставщиков используют свои собственные платформы. Важные для безопасности вещи работают только на проприетарных, одноцелевых ОС. Linux, Windows и т. д. не предназначены для конкретной цели и слишком глючны для использования в авионике. Люди, говорящие, что это плохая идея, не притворяются, это правда.
@Simon Саймон, как можно доказать, что Linux слишком глючный и не лучший вариант?
вы не доказываете, что это слишком глючно, вы предполагаете, что все глючит, и если вы действительно действительно хотите что-то использовать, вы доказываете, что это НЕ глючит.
@traducerad Сертификация ядра Linux для использования в авионике была бы невероятно сложной задачей, которая стоила бы больше, чем простое использование ОСРВ, специально разработанной, задокументированной и протестированной с учетом DO-178.
Нечто связанное: некоторые из марсоходов НАСА, которые они отправляют на Марс, используют проприетарную RTOS (ОС реального времени): VxWorks . Но я не могу сказать, что его можно использовать для авионики.
@kebs: Может и есть. VxWorks сертифицирован по стандарту DO-178 и используется как Boeing, так и Airbus.
@MSalters: Как VxWorks управляет работой в режиме реального времени на платформе x86? (Видимо он поддерживает x86?!)
Не нужно много времени, чтобы доказать, что в Linux слишком много ошибок. Моя жена сломала одну из игр на бортовой развлекательной системе, и мы наблюдали, как пингвин прокручивается мимо, пока система перезагружается.

Ответы (7)

Ни одна из систем авионики, над которыми я работал, не использовала Linux или какую-либо операционную систему потребительского типа. Есть несколько основных вопросов.

Во-первых, это практическое. Большинство авионики, критически важной для безопасности, включают в себя контур управления и, следовательно, требуют работы в режиме реального времени. Это означает, что важно не просто запустить процесс и получить ответ, вам нужно получить ответ в строго контролируемые сроки. Каждый критический программный процесс в самолете запланирован таким образом, чтобы обеспечить стабильный контур управления. Для этого вам нужна ОС реального времени, а Linux — нет.

Во-вторых, необходимость сертификации. Программное обеспечение, используемое на воздушном судне, должно быть разработано с учетом соответствующего уровня обеспечения разработки (DAL) для соответствующего уровня опасности. Критические для безопасности системы должны соответствовать уровню DAL «A». Любая используемая вами ОС должна соответствовать тому же DAL, что и работающая на ней функция. Эти требования определены в RTCA DO-178C . Linux не был разработан в соответствии с этим стандартом. Есть только несколько платформ разработки ОС/программного обеспечения, которые могут быть сертифицированы. Green Hills, Wind River и LynxOS — это те немногие известные мне системы, которые соответствуют требованиям.

Есть еще одно ограничение, заключающееся в том, что сертификация требует очень строгого контроля версий. Авионика будет существовать много лет, и любые изменения в ней также должны быть сертифицированы. Как правило, нет веских причин для обновления ОС на старом устройстве, и во многих случаях вы не можете обойтись без обновления оборудования (что является большими затратами, которые никому не нужны). Таким образом, при обновлении старого устройства я должен создать «новое» программное обеспечение для работы с любой версией ОС, которая в настоящее время существует в продукте. Это может быть платформа возрастом 15 или 20 лет (или старше). Быстро развивающаяся ОС, такая как Linux, отрицательно скажется на долгосрочной поддержке продукта.

Это может быть глупо, но... В Linux есть патч, работающий в реальном времени. Что ты об этом думаешь? Сделает ли это ваш первый пункт недействительным?
@traducerad, насколько я знаю, патч/проект RTLinux нацелен на другую цель, например, на обработку звука или некоторые высокопроизводительные вычисления: вы не получаете операционную систему, работающую в реальном времени (например, Integrity).
Причина, по которой Linux не будет использоваться, заключается в том, что бремя сертификации ложится на любое программное обеспечение, выполняющее важные для безопасности функции на сертифицированном типе самолета. Теперь не все программное обеспечение должно соответствовать DAL A, программное обеспечение должно соответствовать самому высокому уровню критичности для функции, которую оно выполняет.
Кроме того, Linux был бы жестоким излишеством для таких систем. Каждый компонент выполняет только довольно узко определенную функцию, поэтому операционная система может быть намного проще (что также упрощает сертификацию).
С другой стороны, Linux может работать на некоторых других системах самолета. Он используется в некоторых развлекательных системах полета и, возможно, может быть использован во встроенной «электронной сумке для полета» — хотя я не знаю, так ли это на самом деле.
@JanHudec Linux можно использовать в EFB класса 1 или класса 2 , но более вероятно, что это будет iPad или ноутбук под управлением Windows или MacOS. Речь идет о стоимости, и вы просто не увидите много ноутбуков с Linux (не забывайте об обучении экипажа). Я не знаю ни одной авиакомпании, использующей EFB класса 3, поскольку они являются установленным оборудованием и подлежат сертификации. Зачем добавлять все эти расходы и головную боль, когда можно использовать планшет или ноутбук?
@ Джерри, хотя я вижу много планшетов с Linux (потому что Android — это Linux , а не GNU/Linux ).
@ Джерри, авиакомпании не будут устанавливать EFB класса 3 на самолеты, которые не поставляются производителем, но AFAICT A380, A350 и B787 делают это.
Вы говорите «Wind River и LynxOS», но, насколько я понимаю, Wind River является поставщиком, который производит LynxOS. Это не две отдельные операционные системы.
Wind River делает VxWorks.
@MarcoSanfilippo, что вы подразумеваете под «настоящим в реальном времени ... (например, Integtrity)»? Реальное время - это реальное время, нет никакого способа обойти это.
@traducerad Я имел в виду что-то вроде жесткого реального времени против мягкого реального времени. Если система выполняет, например, задачу обработки звука в реальном времени, она может безопасно пропустить несколько сэмплов. Если система управляет гидравлическими приводами стабилизатора, она не может пропустить несколько входных команд. :-)

Короткий ответ заключается в том, что ни одна из известных мне систем авионики, критически важных с точки зрения безопасности, не использует Linux, а системы с наивысшей степенью критичности часто вообще не используют коммерческую операционную систему. Однако Linux используется в других критически важных для безопасности приложениях, таких как Space X Falcon 9 и медицинских приложениях. Трудно дать более подробное объяснение, не вдаваясь слишком глубоко, поскольку вопрос похож на вопрос «Изготавливаются ли современные планеры из наноматериалов?», где подробное объяснение должно было бы охватывать плюсы и минусы материала, места где его использование имеет наибольший и наименьший смысл, различия в производителях и обзор того, что используется вместо этого, и т. д. Я постараюсь кратко осветить все эти моменты со ссылками на дополнительную информацию.

Согласно этому отчету FAAс 2001 года некоторыми из основных операционных систем для сертифицированной авионики были VRTX, LynxOS, PSOS, VxWorks и Enea OSE, хотя некритическая авионика иногда использует другие системы, такие как Windows NT. (Да, LynxOS основана на Unix, а Linux считается «подобным Unix», но между ними есть много различий, например, Linux не похож на Mac OS X на основе BSD). Однако наиболее важные системы вообще не используют коммерческую ОС. Они отмечают: «С имеющимися на сегодняшний день данными в целом можно утверждать, что продукты COTS обычно не соответствуют требованиям к программному обеспечению уровня критичности А». С точки зрения непрофессионала, это означает, что большая часть авионики, разработанной с помощью стороннего программного обеспечения, от VxWorks до Linux, не тестировалась и не анализировалась в достаточной степени, чтобы ее можно было использовать в чем-то важном, например, в системе посадки, Блок TCAS или блок критического дисплея. Однако это, вероятно, изменилось за 10 с лишним лет, прошедших с момента написания отчета. Вот более свежийстатья об использовании операционной системы реального времени в авионике .

Что означают RTOS и COTS?

Важным понятием здесь является операционная система реального времени , или RTOS. В двух словах, RTOS гарантирует, что программное обеспечение не будет исчерпано запланированного вычислительного времени, сообщения между частями программного обеспечения передаются за небольшой промежуток времени, память не будет исчерпана, а другие важные задачи гарантированы вместо выполнения. хорошо в нормальных условиях, затем ломается в необычных условиях. Обычные операционные системы не могут дать таких гарантий. Эти гарантии или приемлемые заменители необходимы для сертификации большей части авионики.

Другой важной концепцией является различие между внутренними и коммерческими готовыми системами (COTS). Коммерческие готовые системы общедоступны и не сильно настраиваются для каждого производителя. В этой статье представлен хороший обзор плюсов и минусов коммерческих и собственных операционных систем. Многие виды авионики с высокой степенью ответственности по-прежнему имеют базовое программное обеспечение, разработанное собственными силами из-за связанных с этим преимуществ.

Соответствует ли Linux сертификационным требованиям?

Да, Linux не «сертифицирован FAA», но на самом деле ни одна RTOS не «сертифицирована FAA» или «соответствует DO-178C». DO-178C устанавливает цели, которые должны выполнить инженеры систем авионики, чтобы сертифицировать все свое программное обеспечение авионики (среди прочего, цели охватывают аудиты, испытания, анализ безопасности и написание требований). Таким образом, лучшее, что может сделать поставщик ОС, это предоставить программное обеспечение, готовое к DO-178C, или следовать рекомендациям DO-178C. Обратите внимание, что DO-178C признает различные уровни безопасности, поэтому то, что подлежит сертификации по DO-178C для системы технического обслуживания, может не сертифицироваться по DO-178C для критического дисплея. Проблема с Linux не в том, что Linux не «сертифицирован по DO-178C», а в том, что его трудно сертифицировать из-за проблем, указанных ниже. Это' Можно сертифицировать систему с помощью Linux, но это может быть непомерно сложно из-за дополнительного анализа, мер безопасности и документации, которые потребуются, особенно для наиболее критической авионики. Некоторые из этих проблем и альтернативные методы соблюдения изложены вэтот отчет FAA .

Преимущества и недостатки линукса

В использовании Linux есть преимущества, которые частично совпадают с другими коммерческими системами. Больше сотрудников уже будут иметь опыт работы с Linux, а ОС была разработана с большим опытом и временем, чем у большинства организаций. Коммерческие системы также имеют гораздо более низкую цену, чем собственное программное обеспечение. Коммерческие системы также более адаптируемы и позволяют вносить изменения в оборудование и пространство для будущего роста, не возвращаясь к чертежной доске. Инструментарий для работы с программным обеспечением более развит, и у них также может быть более длительная история обслуживания, что обеспечивает уверенность в программном обеспечении.

Вот некоторые проблемы, с которыми Linux сталкивается в системе авионики при конкуренции с RTOS, из этого отчета FAA :

  • разбиение на разделы: если предполагается, что две программы работают независимо, должны быть доказательства того, что одна программа не может мешать другой через структуру общей памяти, кэши, поддержку платы и встроенное ПО, ошибки, прерывания и т. д.

  • время выполнения в худшем случае: в настольных компьютерах это нормально, если я перегружаю свой компьютер слишком большим количеством запросов или необычными условиями одновременно, и система замедляется или пропускает некоторые шаги программы. В авионике это неприемлемо по понятным причинам. Поставщик должен будет проверить это либо с помощью моделей ЦП, памяти и т. д., либо с помощью тщательных лабораторных испытаний и временного анализа. И то, и другое тем сложнее, чем сложнее ваше аппаратное и программное обеспечение.

  • Покрытие MCDC: тесты наиболее критической авионики (уровень A) требуют выполнения достаточного количества строк кода и условий принятия решения для достижения стандарта покрытия кода MCDC, который находится между «выполнением каждой строки кода» и исчерпывающими тестами каждой комбинации условий. Некоторые операционные системы, такие как Linux, может быть чрезвычайно сложно протестировать достаточно тщательно, чтобы соответствовать этому стандарту.
  • документация: Тщательный анализ и стресс-тест требуют большого количества документации о внутренней работе ОС.
  • соображения безопасности: Linux по своей природе имеет больше проблем с безопасностью, чем компактное внутреннее приложение. Эти вопросы безопасности становятся все более важными, особенно в вооруженных силах.
  • мертвый и недостижимый код: для сертификации обычно требуется тщательное отключение многих неиспользуемых функций Linux и гарантия того, что они не будут мешать работе вашего программного обеспечения.

Другие критически важные для безопасности отрасли

А как насчет аналогичных критически важных с точки зрения безопасности отраслей? Space X Falcon использует Linux на некоторых своих бортовых компьютерах ( источники ). Основываясь на этом интервью , Space X, похоже, отдает приоритет будущему росту, доступности, короткому времени цикла и опыту, а не простоте и надежности собственной разработки в этой области. Обратите внимание, что компьютеры управления полетом на Space X Falcon не являются прямым аналогом LRU в типичной современной авионике, поэтому, вероятно, потребуется дополнительная работа или необычная архитектура, чтобы заставить Linux работать с типичными приложениями авионики.

Linux также используется во многих критически важных для безопасности медицинских приложениях, но не без проблем, подобных тем, с которыми сталкиваются в авиации. Я бы порекомендовал прочитать книгу Wind River «Выбор Linux для медицинских устройств» или эту статью о недостатках Linux в критически важных для безопасности медицинских приложениях.

Я предполагаю, что вы говорите об основных элементах авионики, таких как управление полетом, автопилот, дистанционное управление или дисплеи. Другие системы самолетов можно условно считать критически важными для безопасности, но они не являются типичными примерами критически важных для безопасности устройств, таких как сертифицированные электронные летные сумки, решения для подключения и программное обеспечение для обслуживания. Иногда они лучше подходят для приложений Linux из-за высокой сложности и менее строгих соображений безопасности.

Обратите внимание, что я не специалист в этой области и мой совет не заменяет совет специалиста по сертификации.

Очень хороший и исчерпывающий ответ. Я также хотел бы отметить, что большинство авионики вообще не используют RTOS, предпочитая выполняться непосредственно на процессоре.
Я должен не согласиться с вашим заявлением о том, что «LynxOS основана на Unix, как и Linux». Linux «основан на Unix» во многом так же, как Windows 8 «основан на CP/M», в том смысле, что у них есть небольшая общая история, но это совершенно разные реализации. (То, что сами Unix-системы взяли на себя часть пользовательского программного обеспечения, обычно используемого в Linux-системах, особенно GNU, — это другой вопрос.) Было бы лучше сказать, что Linux реализует стандарт POSIX, которому соответствует большинство Unix-систем (я не знаю). о LynxOS) также соответствуют; однако это не делает Linux «основанным на Unix».
@MichaelKjörling Я пояснил, что Linux «похож на Unix» и что между ними много различий. Моя главная цель здесь — пояснить, что LynxOS — это не просто разновидность Linux. Я не думаю, что мы должны вдаваться в такие нюансы, как то, что дистрибутивы Linux в основном совместимы с POSIX и не сертифицированы для POSIX.

Кажется, пилоты сейчас хотя бы иногда используют планшеты для чек-листов .

Если эти планшеты являются устройствами Android ( большинство из них ), то они работают под управлением ядра Linux. Android использует меньше стандартного стека Linux, но по-прежнему использует ядро ​​​​Linux. Я думаю, что контрольные списки имеют решающее значение для безопасности. Планшеты Apple и Windows используют разные ядра, а не Linux.

Существует множество приложений с контрольными списками для устройств Android . Я предполагаю, что кто-то их использует.

Ядро — это ядро ​​операционной системы компьютера, которое сохраняет полный контроль над всеми остальными частями. Как проводка для авиалайнера.

А также картографические программы.
Контрольные списки важны, но они не так важны для безопасности, как, скажем, система FBW, поэтому на них не распространяется тот же уровень гарантии разработки для критически важного для безопасности оборудования, что и на другую авионику.

Чтобы прояснить некоторые неправильные представления о Linux, которые встречаются во многих приведенных ответах.

Linux НЕ является «коммерческой» ОС. Это бесплатно для всех, кто может скачать и взломать, как им заблагорассудится. (Некоторые компании упаковывают его с множеством приложений в виде дистрибутива или «дистрибутива» и взимают плату за поддержку пакета).

Linux НЕ является монолитной сборкой с множеством посторонних функций. Ядро ядра Linux достаточно простое и подходящее, чтобы его можно было установить на смарт-часы и многие другие встраиваемые устройства. Излишества поставляются множеством дополнительных модулей ядра. Когда вы собираете ядро ​​​​Linux для установки, вы выбираете, какие модули вам нужны, и хотите ли вы, чтобы они были свернуты в один большой двоичный объект с ядром (быстро) или висели вокруг него в виде отдельных двоичных объектов (операционно гибкие).

Linux НЕ является «пользовательской» ОС. Для этого вам нужно добавить слой интерфейса, такой как GNU или Android. Он широко используется во встраиваемых приложениях, где инженеры компании сделали то, что описано выше.

Linux не более небезопасен, чем любая другая ОС. Действительно, многие считают его одним из самых безопасных. Это часть пользовательского пространства, где такие дистрибутивы, как Android, ужасно ошибаются, в то время как еще одна серия недавних эксплойтов была сосредоточена на недостатках аппаратного дизайна.

Linux может быть настолько стабильным и поддерживаемым, насколько вы этого хотите. Компания, выпускающая ОС для авионики, может с радостью поддерживать данную сборку ядра в течение двадцати и более лет и просто игнорировать неустанный поток достижений до тех пор, пока им не понадобится использовать его для обновления или нового продукта. Данная настройка часто может быть «перенесена» в вашу старую сборку, поэтому вам не нужно иметь дело с полным обновлением.

В Linux доступны различные настройки реального времени, если вы хотите их использовать. Возможно, ни один из них не является полностью удовлетворительным для основного управления полетом, но открытое лицензирование означает, что в принципе ничто не мешает вам засучить рукава и настроить его самостоятельно. Затем вы можете отправить свой код обратно в исходное дерево Linux, и другие могут использовать его и улучшать его.

Сказав все это, настроить Linux для конкретного режима аппаратного/программного обеспечения — это большая работа, а открытое лицензирование затрудняет взимание больших гонораров. Таким образом, компаниям-разработчикам программного обеспечения столь же трудно зарабатывать на жизнь этим, поэтому, если компания-разработчик авионики не хочет тратить средства на настройку своей собственной ОС, она найдет только предложения с коммерческой лицензией, доступные от специалистов.

Последнее является основной причиной того, что Linux редко, если вообще когда-либо, появляется в авионике, и почему все остальные проблемы не решаются.

С другой стороны, если вы включите потребительские и недорогие коммерческие дроны, Linux уже популярен, если не доминирует. Нет сомнений, что в ближайшие годы он будет неуклонно продвигаться вверх по пищевой цепочке.

Используется ли Linux для приложений, критически важных с точки зрения безопасности? Нет да. Возможно. Потерпите меня...

введите описание изображения здесь

USS Umwalt использует Linux для своих обширных требований к данным и LynxOS для встроенных приложений жесткого реального времени, описанных в этой статье .

Стандартный ноутбук Linux — это операционная система пользовательского пространства: она ждет, пока пользователь не щелкнет мышью, не нажмет клавишу или не сгенерирует вывод, а затем приступит к действию. Может быть или не быть много открытых программ. Пользовательский ввод является статистическим событием с точки зрения операционной системы: он может произойти или не произойти в следующую минуту.

Сравните это с цифровым контуром управления. Он работает на процессоре и использует память, просто стандартное компьютерное оборудование. Но они отличаются от программного обеспечения для настольных компьютеров тем, что они:

  • встроены ; _
  • Иметь набор заранее определенных задач;
  • иметь строгие временные ограничения;
  • Бегите в бесконечном цикле. В конце программы он возвращается к началу и снова выполняет процедуру, это будет один кадр итерации.

Программное обеспечение должно считывать входные данные и генерировать выходные данные на каждой итерации, а кадр итерации выполняется в течение фиксированного периода времени. Система жесткого реального времени — это система, в которой временные ответы должны быть детерминированными: все, что она делает, должно быть завершено в течение одной итерации программного обеспечения. Если цикл управления работает с частотой 100 Гц, итерационный цикл занимает 10 мс, и аппаратное обеспечение должно быть достаточно быстрым, чтобы гарантировать, что весь процесс может завершиться вовремя, каждый раз.

Эти циклы управления, как правило, невелики и обычно не имеют открытых окон в диапазоне от 1 до 100. Небольшие и быстрые программы и ограниченное количество окон — вот как работают операционные системы для критических программ безопасности и циклов реального времени. сделаны для. И это здорово, в прежние времена для этого не существовало операционной системы, и код приходилось писать на ассемблере или еще хуже. Вызовы ввода-вывода были аппаратно-зависимыми и поэтому не переносились с одного набора микросхем на другой.

Именно здесь вступают в действие операционные системы реального времени, такие как VxWorks, LynxOS и некоторые другие. Они основаны на Unix и совместимы с POSIX. Аппаратный уровень сделан невидимым для программиста, у которого есть набор средств разработки для использования компьютерных языков высокого уровня со стандартными вызовами ввода-вывода и процедурами синхронизации. Они масштабируемы: вы можете начать с операционной системы, которая просто загружается, а затем сразу же запускает кросс-компилированный двоичный файл со скоростью, заданной в интерфейсе таймера. Или вы можете переконфигурировать ядро ​​и включить пару пользовательских прерываний, которые проверяют ввод данных с клавиатуры или RS-232, все зависит от программиста, у которого также есть обширный набор инструментов для синхронизации и ввода-вывода.

VxWorks может быть дорогим (но хорошо поддерживается), и теперь есть несколько альтернатив с открытым исходным кодом, основанных на ядре Linux, таких как Xenomai , RTLinux и Xilinx . Некоторые из них пытаются сделать все службы доступными для настольных приложений и имеют только таймер прерывания, который делает все возможное, чтобы задача выполнялась равномерно, даже если текстовый процессор запускает проверку орфографии. Другие трудно масштабировать, как VxWorks, но они имеют открытый исходный код, и их поддержка может быть проблемой. Насколько я знаю, они еще не были на Марсе, а VxWorks был.

Может ли он использоваться для авионики, критически важной для безопасности: да, если масштабируется в реальном времени и тестируется в соответствии со стандартами, применимыми для всей авионики. Насколько мне известно, на борту самолетов пока ничего нет, но это может быть лишь вопросом времени.

«Аппаратное обеспечение должно быть достаточно быстрым, чтобы гарантировать завершение процесса за один цикл». Я думаю, что вы смешиваете тактовые циклы и временные интервалы. Для выполнения отдельных инструкций, таких как выборка и переходы, может потребоваться несколько тактов, просто переключение контекста в прерывании и из него занимает более одного такта. «Процесс» не может физически завершиться за один такт.
Да, если мы стремимся к технической корректности, @RonBeyer прав. Во время редактирования вы также можете изменить «операционную систему пользовательского пространства» на « операционную систему, ориентированную на пользователя ». В низкоуровневой разработке программного обеспечения, например, в которой вы будете участвовать, если будете работать с операционной системой, «пользовательское пространство» обычно означает непривилегированный код, выполняемый под контролем операционной системы; противоположное часто называют «пространством ядра», которое, как вы могли догадаться, представляет собой то, как ядро ​​ОС работает без контроля. Обратите внимание, что это отличается от привилегий учетной записи администратора/обычного пользователя.
@RonBeyer Действительно, не часы процессора, конечно.
@MichaelKjörling В операционной системе жесткого реального времени нет непривилегированного кода.
Это НЕ "USS Umwalt", это "USS ZUMWALT" ; обратите внимание на написание моей фамилии. И да, я связан с ныне покойным адмиралом Эльмо ​​Зумвальтом, в честь которого названы этот корабль и класс кораблей.

На самом деле нет необходимости иметь коммерческую ОС для авионики.

Программное обеспечение авионики, как правило, разрабатывается для конкретного оборудования - не существует универсальной аппаратной платформы, выпускаемой на массовом рынке многими поставщиками.

Авионика не взаимодействует со многими другими системами или оборудованием.

Авионика обычно работает как одно приложение, поэтому нет необходимости в разделении времени или, в случае RTOS, в гарантированном расписании тактов.

Это основные цели операционной системы, в отличие от простого загрузчика начальной загрузки, который загружает и запускает одно приложение — операционная система поддерживает несколько аппаратных платформ, несколько драйверов и утилит для дискового/флеш-накопителя, разделение времени с другими приложениями и периферийными устройствами. такие как сети. Что нужно авионике: взаимодействовать с дисплеем, внешними датчиками и кнопками управления — не обязательно задействовать операционную систему.

Встроенную ОС удобно иметь для выделенного устройства, особенно если встроенное приложение будет публиковать веб-сервисы для внешнего доступа и управления. Однако оно загружается медленнее (может быть фактором для авионики) и потребляет больше ресурсов, чем специальное приложение, запускаемое загрузчиком начальной загрузки.

Из-за обширного цикла сертификации бортовое электронное оборудование, как правило, не работает с последними и лучшими версиями, и у них нет короткого цикла обновления на оборудовании.

На самолете, Arimc или Milbus, не работает шина данных с несколькими приборами, работающими с разной частотой обновления, которым необходимо получать и выводить свои данные с определенной скоростью? Ваш инструмент работает полностью сам по себе, и приложение никогда не переносится на новое оборудование?

ни один из приведенных здесь аргументов не является полностью неверным, но я бы хотел, чтобы некоторые участники приложили немного больше усилий, чтобы сбалансировать свои аргументы.

Настоящие модные словечки для авиации — это реальное время и безопасность .

Конечно, в авиации безопасность стоит на первом месте, и если вам нужно, чтобы что-то произошло, в большинстве случаев это должно произойти немедленно, и что-то должно доказать пилоту, что дело сделано.

Прежде чем вы сможете что-то сертифицировать, вы должны это проверить и подтвердить — это может быть головной болью. И именно поэтому большинству это не нравится.

Linux не слишком сложен, чтобы его можно было тестировать и использовать в авиации, а вариант настольного компьютера — сложнее. Linux по своему дизайну программного обеспечения вполне подходит для использования в авиации, как и большинство программного обеспечения, соответствующего Posix. Прелесть Linux в том, что каждый компонент предназначен для выполнения только одной задачи, и это в лучшем случае (в отличие от Windows). Для авиации вы никогда не будете использовать сложное передовое программное обеспечение, как для настольного компьютера. Вы будете реализовывать и тестировать только те элементы, которые вам действительно нужны. И есть реализации в реальном времени POSIX-подобных систем, таких как QNX, например, и архитектура программного обеспечения очень похожа на Linux.

Перспектива в реальном времени: однажды Microsoft проиграла соревнование на площадке производителя стали, потому что они не смогли объяснить, как обращаться с 50-тонным стальным стержнем, движущимся со скоростью 6 м/с, с программным обеспечением, которое реагирует с задержкой 500 мс. В этот момент бар мог пробить следующую стену на 3 метра или около того...

Этот простой факт в еще большей степени относится к авиации.

Другой аргумент заключается в том, что авиационная промышленность консервативна - большинству летающих вещей больше 10, а часто и 40 лет.

И в этой области часто считается, что вы не можете зарабатывать деньги с помощью программного обеспечения с открытым исходным кодом, что не соответствует действительности. Так много проприетарных (и надежных) инструментов работают на программном обеспечении девяностых, то есть многие банкоматы все еще работают на производных от Windows NT. Хочу сказать: многие производители инструментов не желают публиковать исходный код своего хорошо поддерживаемого программного обеспечения.

С другой стороны: если бы Боинг использовал программное обеспечение с открытым исходным кодом для своего 737MAX, есть определенная вероятность, что катастроф не произошло бы.

Ну вот и все: все дело в тестировании за приемлемое время.

Нет, еще тесты и еще раз тесты... И тогда у вас может получиться программное обеспечение, подходящее для авиации. И для этого производная от программного обеспечения POSIX, работающая в реальном времени, была бы хорошим, если не идеальным выбором.

Эй, спасибо за ответ на мой старый вопрос! Какие именно элементы реализации POSIX в QNX делают ее RT непохожей на ванильный Linux? Также вы утверждаете, что их архитектура программного обеспечения очень похожа на Linux. Это также означает, что есть различия. В каких аспектах обе операционные системы (принципиально) различаются? (у меня не было возможности работать с qnx)
«С другой стороны: если бы Boeing использовал программное обеспечение с открытым исходным кодом для своего 737MAX, существует определенная вероятность того, что аварий не произошло бы». кажется довольно смелым заявлением без подтверждающих доказательств. Хотите подтвердить это?
Согласен, я не понимаю, как использование программного обеспечения с открытым исходным кодом уменьшило бы или предотвратило бы несчастные случаи.