ISSに宇宙飛行士を届けた「Falcon 9」はLinuxで動く - (page 2)

Steven J. Vaughan-Nichols (ZDNet.com) 翻訳校正: 編集部2020年06月09日 07時30分

 だが、一般には宇宙に向かうためのプロセッサーは普通のプロセッサーではない。宇宙に滞在するために、CPUは耐放射線性でなければならない。そうでなければ、電離放射線と宇宙線の影響で誤動作してしまう。これらの特製プロセッサーは、数年にわたる設計作業を経た後、宇宙飛行の認定を受けるまでにさらに数年のテスト期間をくぐり抜ける。例えば、NASAは次世代汎用目的CPUの完成を2021年とみている。このCPUは、「Raspberry Pi 3」への搭載で知られる「Arm Cortex-A53」のバリエーションだ。Falcon 9の1段目のロケットは地上に帰還するので、プロセッサーに耐放射線性は必要ない。

 なぜプロセッサーが3基なのか。Q&AサイトStackExchangeの「Space Exploration」(宇宙探査)にある説明によると、SpaceXは、冗長性を確保するためActor-Judge」システムを採用している。このシステムでは、決定ごとに複数のコアの結果を比較する。不一致があれば、その決定を破棄してプロセスを再開する。すべてのプロセッサーの決定が同じになった場合のみ、命令がPowerPCのマイクロコントローラーに送られる。

 ロケットエンジンやグリッドフィンの操作を担うこれらのコントローラーは、3基のx86プロセッサーから3つのコマンドを受ける。もし3つのコマンドがすべて一致すれば、マイクロコントローラーはコマンドを実行するが、1つでも違うものがあれば、直近の3つ一致したコマンドを実行する。コマンドが3つとも異なる場合は、このコマンドを無視する。

 この「3回言ってね」的なトリプル冗長性のポイントは、耐放射線性にするためにプロセッサーにコストを掛けることなく、必要なフォールトトレランスを実現できるところだ。Airbusの最近の飛行機の操縦システムでも、同様のアプローチを採用している。

 実際のフライトの前に、SpaceXはテーブルの上にフライト用コンピューターを並べてソフトウェアをテストする。このテスト環境でフライトシミュレーターを動かすことで、ロケットを失うことなく致命的なバグに対処できる。

 Crew Dragonでも、LinuxベースでC++で書かれたフライトソフトウェアが稼働している。この宇宙船のタッチスクリーンのインターフェースは、ChromiumとJavaScriptでレンダリングされている。このインターフェースに問題が生じた場合用に、宇宙船をコントロールするための物理的なボタンも用意されている。

 そういうわけで、米国から再び宇宙飛行士を宇宙に送り出せるようになったのは、Linuxのお陰でもある。そして、十分なロケットパワーがあればペンギンも飛べるようだ。

この記事は海外CBS Interactive発の記事を朝日インタラクティブが日本向けに編集したものです。

CNET Japanの記事を毎朝メールでまとめ読み(無料)

-PR-企画特集

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]