民間航空機(ボーイングやエアバスなど)で使用されているオペレーティングシステムが何かを知っている人がいるのだろうかと思っていました。
また、(推奨)リアルタイムプログラミング言語とは何ですか?私はエイダがボーイングで使用されていると聞いたので、私の質問は-なぜエイダですか?ボーイングがこの言語を選択しなければならなかった基準は何ですか?(ちょうどリフトオフでガベージコレクターが起動する場合、Javaは最適な選択肢ではないと思います)。
民間航空機(ボーイングやエアバスなど)で使用されているオペレーティングシステムが何かを知っている人がいるのだろうかと思っていました。
また、(推奨)リアルタイムプログラミング言語とは何ですか?私はエイダがボーイングで使用されていると聞いたので、私の質問は-なぜエイダですか?ボーイングがこの言語を選択しなければならなかった基準は何ですか?(ちょうどリフトオフでガベージコレクターが起動する場合、Javaは最適な選択肢ではないと思います)。
回答:
航空機制御システムについては、オペレーティングシステムではなく、アビオニクス、統合アビオニクス、または一般的なコンピューター空中システムについて語っています。そして実際には、さまざまな機能(飛行制御、衝突回避、気象、通信、ブラックボックスなど)のための、多数の独立または相互依存システムの組み合わせです。
通常、各コントローラーは、明らかなセキュリティと安全性の理由から独立したモジュール(ハードウェアとソフトウェア)です。これらは重要な制御および監視システムであり、そのうちの1つが故障または損傷した場合、航空機によって異なります。ディペンダビリティあなたがいるときに、すべてのその意味を取るに飛ぶ機械。だから通常は
それはすべてを実行する大きなコンピューターではありません。商用機ではなく軍用機の観点から考えると(この点では似ていますが、画像が役立つかもしれません):部品が撃たれた場合、少なくとも他の部品ができるようになります継続する(通信および安全システムを制御する部分は、生き続けるために興味深いかもしれません...)。したがって、異なるシステムのステータスを追跡するために、ジェット旅客機に表示されるボタンの大きな束。
それらは通常、独自のシステムを操作するカスタムコンポーネントとして構築されるか、マイクロカーネルによって実行およびスケジュールされます(ほとんどの場合、リアルタイム機能をサポートします)。
明らかに、ベンダーや国によって異なりますが、通常は少なくとも次のような厳しい規制、設計要件、およびプロトコルの仕様に従う必要があります。
DO-178B(1992年改訂)とその後継DO-178C(2012年改訂)(および関連ドキュメントの束)は、そのようなコンプライアンスレベルについて基準認定の一例であり、FAA(米国)によって認識されますEASA(EU)、およびカナダ運輸など。EUROCAEなど、他の複数の組織がこのようなドキュメントの作成に関与しています。
このような空中システムは通常、特注のソフトウェアですが、次のシステムは一部の飛行機で使用されることが知られています。
アビオニクスシステムに組み込まれている要素の漠然としたアイデアを提供するために、アビオニクスの頭字語のこのリストは、それらの一部を示しています(一部重複しています)。
「メインストリーム」プログラミングの世界でよく知られている通常の容疑者とは別に、Adaのようなよく参照される名前や(2010年以降に日付が付けられ、現在「廃止」されている)JOVIALのようなあまり知られていない言語が出てきます。
最新の航空機のほとんどは、ファクトリオートメーション、発電所、船舶などで使用されているものとほぼ同じ汎用RTOS(リアルタイムオペレーティングシステム)を使用しています。
エアバスは、ノースロップグラマンのINTEGRITYを使用してC / C ++でプログラミングするなど、ボーイングはVxWorksを使用しています。
価値があるもの:宇宙船(衛星および惑星間)の場合、CおよびC ++は依然として支配的であり(そしてISO規格に非常に厳密に準拠して)、一般的にVxWorksを実行しています。ラボは通常、開発者の知識、コンパイラツールチェーンへの信頼、および内部コーディング標準に基づいて、CまたはC ++のいずれかに固執します。リアルタイムフライトソフトウェアの両方の言語には説得力のある理由がありますが、各組織はどちらかに固執する傾向があります。一方、補助機器は、一般的にForth、C、およびLuaのようなますます現代的なスクリプト言語でプログラムされています。