飛行機ではどのオペレーティングシステムが使用され、どのプログラミング言語で開発されていますか?[閉まっている]


113

民間航空機(ボーイングやエアバスなど)で使用されているオペレーティングシステムが何かを知っている人がいるのだろうかと思っていました。

また、(推奨)リアルタイムプログラミング言語とは何ですか?私はエイダがボーイングで使用されていると聞いたので、私の質問は-なぜエイダですか?ボーイングがこの言語を選択しなければならなかった基準は何ですか?(ちょうどリフトオフでガベージコレクターが起動する場合、Javaは最適な選択肢ではないと思います)。


11
この質問を最初に見たとき、機内映画などを座席の後ろで実行するシステムについて尋ねていると思いました。私はかつてデルタ航空のフライトで彼らがそのシステムを再起動したことがありますが、Debianの亜種であるLinuxを実行していることがわかります。
クリスハーパー

1
@ root45:ああ...気に入らなかったと認める。されている可能性が。QNXを実行している人もいれば、Windows Embeddedを実行している人もいます。
ヘイレム

17
「どのようなオペレーティングシステムを使用していますか?」「それはVistaだと思う。」「死ぬぞ!」
StuperUser

1
@StuperUser:私のお気に入りのIT Crowdエピソードの1つ。(youtube.com/watch?v=8y4akOH8v8Q-2:34分)。また、民間航空会社だけでなく、同じでない場合、軍用機が使用するものについてもっと知ることは興味深いでしょう。Vista、笑
Bratch

1
@Piskvor:Java用のリアルタイムVMがあります(プラットフォームではなく言語のように)。JavaRTバリアントが深刻な(および居住されている)フライトシステムに使用されているかどうかはわかりませんが、モデルやドローンに使用されているのを見てきました。
ヘイレム

回答:


157

アビオニクス

航空機制御システムについては、オペレーティングシステムではなく、アビオニクス統合アビオニクス、または一般的なコンピューター空中システムについて語っています。そして実際には、さまざまな機能(飛行制御衝突回避、気象、通信、ブラックボックスなど)のための、多数の独立または相互依存システムの組み合わせです。

通常、各コントローラーは、明らかなセキュリティと安全性の理由から独立したモジュール(ハードウェアとソフトウェア)です。これらは重要な制御および監視システムであり、そのうちの1つが故障または損傷した場合、航空機によって異なります。ディペンダビリティあなたがいるときに、すべてのその意味を取る飛ぶ機械。だから通常は

  • 彼らの使命の目的のために作られたカスタム、
  • 独立して動作し、他のシステムと連動するように構築されています。
  • 自身の障害と、それが接続されている他のシステムの障害に対してフォールトトレラントになるように構築されています(たとえば、パイロットのサウンドシステムがエンジン制御を停止させたくないため)。

それはすべてを実行する大きなコンピューターではありません。商用機ではなく軍用機の観点から考えると(この点では似ていますが、画像が役立つかもしれません):部品が撃たれた場合、少なくとも他の部品ができるようになります継続する(通信および安全システムを制御する部分は、生き続けるために興味深いかもしれません...)。したがって、異なるシステムのステータスを追跡するために、ジェット旅客機に表示されるボタンの大きな束。

それらは通常、独自のシステムを操作するカスタムコンポーネントとして構築されるか、マイクロカーネルによって実行およびスケジュールされます(ほとんどの場合、リアルタイム機能をサポートします)。

明らかに、ベンダーや国によって異なりますが、通常は少なくとも次のような厳しい規制、設計要件、およびプロトコルの仕様に従う必要があります。

  • セキュリティおよび安全基準への厳格な準拠の管理、
  • 他のシステムとの相互通信(レイキャビクで離陸した飛行機が東京の地上管制装置と「会話」できれば…)

標準化の取り組み

DO-178B(1992年改訂)とその後継DO-178C(2012年改訂)(および関連ドキュメントの束)は、そのようなコンプライアンスレベルについて基準認定の一例であり、FAA(米国)によって認識されますEASA(EU)、およびカナダ運輸など。EUROCAEなど、他の複数の組織がこのようなドキュメントの作成に関与しています

このような空中システムは通常、特注のソフトウェアですが、次のシステムは一部の飛行機で使用されることが知られています。

アビオニクスシステムに組み込まれている要素の漠然としたアイデアを提供するために、アビオニクスの頭字語のこのリストは、それらの一部を示しています(一部重複しています)。

商用および軍用アビオニクスで使用される注目の言語

「メインストリーム」プログラミングの世界でよく知られている通常の容疑者とは別に、Adaのようなよく参照される名前や(2010年以降に日付が付けられ、現在「廃止」されている)JOVIALのようなあまり知られていない言語が出てきます。


関連するStackExchangeの質問:


2
@mattnz:ありがとう。しかし、正直なところ、OPが求めているものとは少し異なります。ドキュメント作成のために有用な洞察とポインタを提供しようとしましたが、実際の実装の詳細に関しては、ハードデータを見つけるのは困難です。
ヘイレム

「そして、それらは実際には多数の独立したまたは相互に依存したシステムの組み合わせです」と言うのは、これらのための別個のハードウェアがあるということですか?
stijn

2
はい、それらは専用のハードウェアである傾向があります。航空機を走らせるx86 PCのラックはありません。
リグ

3
@stijn:そうですね。このように考えてください。これらは重要な制御および監視システムです。そのうちの1つが失敗した場合、それは大きな異常な問題を意味し、Fは非常に大きく、それよりも丁寧ではありません。そのため、通常は、a)ミッションの目的のためにカスタムビルドされていますb)独立して動作し、他のシステムとインターフェイスするように構築されていますc)自身の障害およびインターフェイスしている他のシステムの障害に対してフォールトトレラントになるように構築されていますたとえば、パイロットのサウンドシステムがエンジン制御を停止することを望まない)。それはすべてを実行している大きなコンピューターではありません。
ヘイレム

@stijn:商用機ではなく軍用機の観点から考えてみてください。それが助けになれば、部品が撃たれた場合、少なくとも他の部品を使い続けることができます(私は言います)通信および安全システムを制御する部分は、生き続けるために興味深いかもしれません...)。したがって、異なるシステムのステータスを追跡するために、ジェット旅客機に表示されるボタンの大きな束。
ヘイレム

22

最新の航空機のほとんどは、ファクトリオートメーション、発電所、船舶などで使用されているものとほぼ同じ汎用RTOS(リアルタイムオペレーティングシステム)を使用しています。

エアバスは、ノースロップグラマンのINTEGRITYを使用してC / C ++でプログラミングするなど、ボーイングはVxWorksを使用しています。


2
「...汎用RTOS ...」という文は、RTOSがアビオニクスシステムにするために必要なことを単純化しているため、ACME Corps Digital TV Recieverで使用しているRTOSとほとんど同じではありません。
マッツン

3
ありませんが、VxWorksのは、あなたのブラックベリーの携帯電話にマルローバーから何のために使用することができます
マーティンベケット

ブラックベリーで使用されているのはVxWorksではなくQNXです。しかし、同じ原則が適用されます-COTS rtosは航空機で使用できます
マーティンベケット

12

価値があるもの:宇宙船(衛星および惑星間)の場合、CおよびC ++は依然として支配的であり(そしてISO規格に非常に厳密に準拠して)、一般的にVxWorksを実行しています。ラボは通常、開発者の知識、コンパイラツールチェーンへの信頼、および内部コーディング標準に基づいて、CまたはC ++のいずれかに固執します。リアルタイムフライトソフトウェアの両方の言語には説得力のある理由がありますが、各組織はどちらかに固執する傾向があります。一方、補助機器は、一般的にForth、C、およびLuaのようなますます現代的なスクリプト言語でプログラムされています。


3
通常、私が読んだ限りでは、MISRA CやJSF C ++のようなCまたはC ++のサブセットでもあります。
コーダー

10

また、制御システムは、Simulinkを使用したモデルベースの設計を使用して開発されることが多いことに注意してください。その後、デザインは自動的にCコードに変換されます。人間はまだコードを読んで検証します。


私の教授は、ソフトウェアエンジニアリングの重要なシステムについて話したときに、実際に言及しました。
ディールソン販売

エアバスは、フライトコントロールシステムのハードウェアとソフトウェアの機能仕様にSCADEを使用していると思います。このツールは、CまたはAdaコードを生成できます。
dodgy_coder 14
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.