だが、一般には宇宙に向かうためのプロセッサーは普通のプロセッサーではない。宇宙に滞在するために、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の記事を毎朝メールでまとめ読み(無料)
OMO戦略や小売DXの実現へ
顧客満足度を高めるデータ活用5つの打ち手
ものづくりの革新と社会課題の解決
ニコンが描く「人と機械が共創する社会」
パナソニックのV2H蓄電システムで創る
エコなのに快適な未来の住宅環境
企業や自治体、教育機関で再び注目を集める
身近なメタバース活用を実現する