Мне было интересно, если кто-нибудь знает, какая операционная система используется в коммерческих самолетах (скажем, Boeing или Airbus).
Кроме того, что является (предпочтительным) языком программирования в реальном времени? Я слышал, что Ада используется в Боинге, поэтому мой вопрос - почему Ада? По каким критериям ребята из Боинга должны были выбрать этот язык? (Я полагаю, что Java не был бы хорошим выбором, если точно при взлете проснулся сборщик мусора).
Ответы:
Avionics
Что касается систем управления самолетом, мы говорим не об операционных системах, а об авионике , интегрированной авионике или компьютерных бортовых системах в целом. И они на самом деле являются комбинацией множества независимых или взаимозависимых систем для различных функций ( управление полетом , предотвращение столкновений , погода, связь, черные ящики ...).
Каждый контроллер, как правило, представляет собой независимый модуль (аппаратное и программное обеспечение) по очевидным причинам безопасности и безопасности: они являются критически важными системами управления и контроля, и если одна из них выйдет из строя или выйдет из строя, это будет довольно большим «неудобством» для людей, которые в зависимости от самолета. Надёжность принимает все свое значение , когда вы находитесь в летающей машине. Так обычно это
Это не большой компьютер, на котором все работает. Если вы думаете об этом с точки зрения военного самолета, а не коммерческого (хотя в этом отношении он похож, изображение могло бы помочь): если выстрелить по какой-либо части, вы, по крайней мере, предпочли бы, чтобы другие части были в состоянии продолжать (часть, контролирующая системы связи и безопасности, может быть интересна для поддержания жизни ...). Отсюда также большой набор кнопок, которые вы видите на лайнерах, чтобы отслеживать состояние различных систем.
Они обычно либо создаются как пользовательские компоненты, работающие на собственной системе, либо запускаются и планируются микроядром (в большинстве случаев с поддержкой возможностей в реальном времени ).
Очевидно, что это зависит от поставщиков и стран, но обычно они, по крайней мере, должны следовать довольно строгим правилам, требованиям к дизайну и особенностям протокола, которые позволяют:
Усилия по стандартизации
DO-178B (пересмотренный в 1992 году) и его преемник DO-178C (пересмотренный в 2012 году) (и куча сопутствующих документов) является примером эталонных сертификатов для таких уровней соответствия, и признан FAA (США), EASA (ЕС) и Транспорт Канады, среди других. Несколько других организаций участвуют в создании таких документов, таких как EUROCAE .
Такие бортовые системы обычно являются специальным программным обеспечением, но известно, что в некоторых самолетах используются следующие системы:
Чтобы дать вам смутное представление об элементах, встроенных в систему авионики, этот список сокращений авионики указывает на некоторые из них (с некоторым перекрытием).
Известные языки, используемые в коммерческой и военной авионике
Помимо обычных подозреваемых, которых мы знаем в «основном» мире программирования, вы найдете несколько часто упоминаемых имен, таких как Ada , и некоторые менее известные языки, такие как (датированный и теперь «вышедший из употребления » с 2010 года) JOVIAL .
Связанные вопросы StackExchange:
источник
Большинство современных самолетов используют ОСРВ общего назначения (операционную систему реального времени), почти то же самое, что используется в автоматизации производства, электростанциях, кораблях и т. Д.
Аэробус использует несколько, включая INTEGRITY от Northrop-grumman и программирует это на C / C ++, Boeing использует VxWorks среди других
источник
Для чего это стоит: Для космических аппаратов (спутниковых и межпланетных) C и C ++ по-прежнему доминируют (и с очень строгим соответствием стандартам ISO), обычно работают под управлением VxWorks. Лаборатории, как правило, придерживаются C или C ++, основываясь на знакомстве разработчиков, уверенности в наборе инструментов компилятора и внутренних стандартах кодирования. Существуют веские причины для обоих языков для программного обеспечения для полета в реальном времени, но каждая организация стремится придерживаться одного или другого. Вспомогательные инструменты, с другой стороны, обычно программируются на Forth, C и все более современных языках сценариев, таких как Lua.
источник
Также стоит отметить, что системы управления часто разрабатываются с использованием модельно-ориентированного проектирования с использованием Simulink. Затем дизайн автоматически преобразуется в C-код. Люди все еще читают и проверяют код.
источник