Які операційні системи використовуються в літаках та які мови програмування вони розроблені? [зачинено]


113

Мені було цікаво, чи хтось знає, яка операційна система використовується в комерційних літаках (скажімо, Boeing або Airbus).

Також, що таке (бажана) мова програмування в режимі реального часу? Я чув, що Ада використовується в Boeing, тому моє питання - чому Ada? за якими критеріями хлопці Boeing повинні були вибрати цю мову? (Я думаю, що Java не буде чудовим вибором, якби саме при вивезенні сміттєзбірника прокидається).


11
Коли я вперше побачив це запитання, я подумав, що він запитує про системи, які керують фільмами під час польоту та іншим на спинках сидінь. Я колись був на рейсі Delta, де вони перезавантажили цю систему, і ви можете сказати, що вона працює під управлінням Linux, я вважаю, Debian варіант.
Кріс Харпер

1
@ root45: ahhhhhh ... Зізнаюся, це навіть не спало на думку. Могло бути. Я бачив, як деякі запускають QNX, я думаю, а інші запускають Windows Embedded.
haylem

17
"Яку операційну систему вона використовує?" "Я думаю, що це" Vista ". "Ми помремо!"
StuperUser

1
@StuperUser: Один з моїх улюблених епізодів ІТ-натовпу. ( youtube.com/watch?v=8y4akOH8v8Q - 2:34 хвилини). Також не лише комерційні авіакомпанії, але було б цікаво дізнатися більше про те, чим користуються військові літаки, якщо це не те саме. Vista, lol.
Братч

1
@Piskvor: для Java існують віртуальні віртуальні машини (як на мові, а не на платформі). Я не знаю, чи використовувались варіанти JavaRT для серйозних (і заселених) польотних систем, але я бачив, що він використовується для моделей або дронів.
haylem

Відповіді:


157

Авіоніка

Для систем управління літаками ми говоримо не про операційні системи, а про авіоніку , інтегровану авіоніку або комп'ютерні повітряні системи взагалі. І вони насправді є поєднанням безлічі незалежних або взаємозалежних систем для різних функцій ( управління польотами , уникнення зіткнень , погода, зв’язок, чорні скриньки ...).

Кожен контролер, як правило, є незалежним модулем (апаратним та програмним забезпеченням) з очевидних причин безпеки та безпеки: вони є критично важливими системами контролю та моніторингу, і якщо одна з них мала вийти з ладу або пошкодитися, це досить велика "незручність" для людей, залежно від літака. Надійність приймає весь сенс, коли ви знаходитесь в літальній машині. Так зазвичай так і є

  • звичай, побудований з метою своєї місії,
  • побудований для самостійної роботи та взаємодії з іншими системами,
  • побудований таким чином, щоб бути відмовними від власних збоїв І до відмов інших систем, до яких він пов'язаний (оскільки, наприклад, ви не хочете, щоб звукова система пілота знімала управління двигуном).

Це не великий комп’ютер, на якому працює все. Якщо ви думаєте про це з точки зору військового літака, а не комерційного (хоча це схоже в цьому відношенні, зображення може допомогти): якщо частина буде знята, ви хоч хоч якісь інші частини зможете мати змогу продовжувати роботу (частина управління системами зв'язку та безпеки може бути цікавою для збереження в живих ...). Звідси і велика купа кнопок, які ви бачите в літаках, щоб відстежувати стан різних систем.

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

Це, очевидно, залежить від постачальників та країн, але, як правило, потрібно, як мінімум, дотримуватися досить суворих наборів правил, вимог до дизайну та специфіки протоколу, які дозволяють:

  • контроль за їх чітким дотриманням стандартів безпеки та безпеки,
  • взаємозв'язок з іншими системами (набагато краще, якщо той літак, з якого ви вилетіли в Рейк'явіку, може "поговорити" з тим наземним контролем в Токіо ...)

Зусилля зі стандартизації

DO-178B (переглянутий в 1992 році) і його наступник DO-178C (переглянутий в 2012 році) (і купа супутніх документів) є прикладом еталонних сертифікатів для таких рівнів відповідності, і визнаний FAA (США), EASA (ЄС) та Транспорт Канада, серед інших. У створенні таких документів, як EUROCAE , беруть участь багато інших організацій .

Такі повітряно-десантні системи зазвичай відповідають вимогам програмного забезпечення, але, як відомо, в деяких літаках застосовуються такі системи:

Щоб дати вам розпливчасте уявлення про елементи, вбудовані в систему авіоніки, цей список акронімів авіоніки вказує на деякі з них (з деяким перекриттям).

Значні мови, що використовуються в комерційній та військовій авіоніці

Окрім звичайних підозрюваних, яких ми знаємо у світі програмування "мейнстріму", ви знайдете імена, які часто посилаються на зразок Ада , та деякі менш відомі мови, як-от (датований і тепер "відставний" з 2010 року) JOVIAL .


Пов'язані питання StackExchange:


2
@mattnz: Дякую Але це чесно трохи далеко від того, що просить ОП. Я намагався надати корисну інформацію та вказівки для цілей документації, але коли мова йде про фактичні деталі реалізації, важче знайти важкі дані.
хайлем

"І вони насправді є комбінацією безлічі незалежних або взаємозалежних систем". Ви маєте на увазі, що для цього є окреме обладнання?
стинь

2
Так, вони, як правило, призначені для побудови обладнання. Немає стійки з x86 шт, на якій працює ваш літак.
Ріг

3
@stijn: Ну так. Думай про це так. Вони є критичними системами контролю та моніторингу. Якщо хтось із них виходить з ладу, це означає велику вигадливу проблему, із надзвичайно великим F та менш ввічливим. Тому зазвичай це: а) звичай, побудований для їхньої місії; b) побудований для незалежної роботи та взаємодії з іншими системами; c) побудований таким чином, щоб бути відмовливим від власних збоїв та відмов інших систем, до яких він пов'язаний (тому що ви Не хочу, наприклад, звукова система пілота знімає управління двигуном, наприклад). Це не великий комп’ютер, на якому працює все.
haylem

@stijn: Подумайте про це з точки зору військового літака, а не комерційного, якщо це допомагає: якщо частина застрелиться, ви краще хоч би якісь інші частини змогли продовжувати рух частина управління системами зв'язку та безпеки може бути цікавою для збереження в живих ...). Звідси і велика купа кнопок, які ви бачите в літаках, щоб відстежувати стан різних систем.
хайлем

22

Більшість сучасних літальних апаратів використовують RTOS загальної цілі (операційна система в режимі реального часу) майже те саме, що використовується у автоматизованих заводах, електростанціях, кораблях тощо

Airbus використовують декілька, включаючи INTEGRITY від Northrop-grumman і програмують його на C / C ++, Boeing використовує VxWorks серед інших


2
Заява "... RTOS загального призначення ..." визначає, що потрібно для RTOS, щоб перетворити його в систему авіоніки, навряд чи той самий RTOS, який використовується в цифровому телевізійному приймачі ACME Corps.
mattnz

3
Ні, окрім VxWorks можна використовувати що-небудь від Mar Rover до телефону Blackberry
Мартін Бекетт

Вибачте, що QNX використовується у Blackberry, а не у VxWorks. Але діє той самий принцип - COTS rtos можна використовувати в літальних апаратах
Мартін Беккет

12

Для чого це варто: Для космічних апаратів (супутникових та міжпланетних) C і C ++ як і раніше є домінуючими (і з дуже суворим дотриманням стандартів ISO), як правило, під керуванням VxWorks. Зазвичай лабораторії дотримуються або C, або C ++ на основі ознайомлення розробника, впевненості в ланцюзі інструментів компілятора та внутрішніх стандартів кодування. Для обох мов для польотного програмного забезпечення в режимі реального часу є вагомі причини, але кожна організація прагне дотримуватися того чи іншого. З іншого боку, допоміжні інструменти зазвичай запрограмовані на Forth, C та все більш сучасних мовах сценаріїв, таких як Lua.


3
Зазвичай це також підмножина C або C ++, як, наприклад, MISRA C або JSF C ++, наскільки я читав.
Coder

10

Також варто зазначити, що системи управління часто розробляються за допомогою модельного проектування за допомогою Simulink. Потім дизайн перетворюється в код C автоматично. Люди все ще читають і підтверджують код.


Мій професор справді згадував про це, коли говорив про критичні системи в інженерії програмного забезпечення.
Продаж Дільсона

Я вважаю, що Airbus використовує SCADE для функціональної специфікації обладнання та програмного забезпечення в системах управління польотами. Інструмент може генерувати або код C, або Ada.
dodgy_coder
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.