悲惨なことが多い今年にも、素晴らしい瞬間はあった。米国時間5月30日、SpaceXの「Crew Dragon」が、史上初の民間有人宇宙船として、また、米国にとって9年ぶりのこととして、米航空宇宙局(NASA)の2人の宇宙飛行士、Bob Behnken氏とDoug Hurley氏を軌道に運んだ。彼らを打ち上げたのは、SpaceXの再利用可能なロケット「Falcon 9」。ロケット燃料と、そして「Linux」で稼働する。

 スーパーコンピューターやIoTデバイス、その他のミッションクリティカルな基幹業務用デバイスと同様に、Falcon 9はLinuxを採用した。SpaceXのソフトウェアエンジニアは数年前、Falcon 9のプログラミングについて説明してくれた。当時、開発者は次のように述べた。

 「フライトソフトウェアチームのメンバーは約35人。われわれだけで、Falcon 9、Grasshopper(テストロケット)、Dragonのすべてのアプリのコードを書き、コアプラットフォームの作業をこなし、シミュレーションソフトも、テストフライト用コードも、通信や解析のソフトウェアも書き、基地への導入も担当する。さらに、宇宙管制センターで実際のミッションのサポートもしている」

 Falcon 9に搭載されたOSは、3基の“普通の”デュアルコアx86プロセッサー上で稼働する必要最低限のLinuxコードだ。フライトソフト自体は各プロセッサーでそれぞれ稼働する。ソフトはC/C++で書かれたものだ。

 普通の? そう、普通の、一般的なプロセッサーだ。ご存じのように、宇宙船のCPUは最新でも最高性能でもない。宇宙船用のCPUは、設計から完成までに何年も、時には10年以上かかる宇宙船のために開発される。例えば、国際宇宙ステーション(ISS)を動かしているのは1988年製のIntel 80386SX(20MHz)だ。Falcon 9で採用するプロセッサーが何かは公表されていないが、少なくとも、現在量販店で普通に買えるものよりも10年は古い設計だろう。

 もちろん、これらのプロセッサーはISSのコマンド及び制御コンピューター(C&C MDM:Command & Control Multiplexer Demultiplexer)で動くが、何にでも使えるわけではない。ISSでの日常業務では、宇宙飛行士たちはHPの「ZBook 15」を使っている。OSは「Debian Linux」、「Scientific Linux」、「Windows 10」だ。LinuxはC&C MDMのリモートターミナルの役割を果たしており、Windowsはメールやウェブ閲覧、娯楽のために使われている。

 だが、一般には宇宙に向かうためのプロセッサーは普通のプロセッサーではない。宇宙に滞在するために、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の最近の飛行機の操縦システムでも、同様のアプローチを採用している。

続きはソースで

https://upload.wikimedia.org/wikipedia/commons/thumb/5/5c/KSC-20160408-PH_KLS0001_0005_%2825704320894%29.jpg/220px-KSC-20160408-PH_KLS0001_0005_%2825704320894%29.jpg
https://japan.cnet.com/article/35154820/