コンピュータのお約束

2015-07-07 07:33

それまでありとあらゆる試験をして動作を確認していたのに、肝心な本場ん前にいきなり動作がおかしくなる、というのはコンピュータを使ったシステムのお約束である。

などというのは直接担当してないから言える戯言だ。

NASAが、冥王星へ接近中の探査機ニューホライズンズに発生していた通信不具合が回復したと発表しました。ニューホライズンズは一時的に通信途絶状態となった後、復旧はしたものの大幅に機能が制限されるセーフモードで動作していました。

引用元:NASA、冥王星探査機ニューホライズンズの通信不具合を復旧。原因はフライバイ関連のコマンド - Engadget Japanese

9年かかって後一週間のところまで到達したところでこのトラブル。担当しているエンジニアは間違いなくこの「お約束」を知っているだろうが、それでも己と衛星の運命を呪ったにちがいない。幸いなことに問題は解消されたようだ(まだ本当のところはわからないが)

かろうじてテレメトリーデータは受信できたため、NASA はこれをもとに詳しい調査を開始しました。しかし、地球からおよそ49億kmも離れたニューホライズンズとの通信にかかる時間は、往復で約9時間。

引用元:NASA、冥王星探査機ニューホライズンズの通信不具合を復旧。原因はフライバイ関連のコマンド - Engadget Japanese

しかしこの「往復9時間のデバッグ」ってのはどんな様子なのだろうね。手元にあるコンピュータのように

「手当たり次第コマンド打ってあれこれ調べる」

なんてことはできない。そんなことをしたらあっという間に冥王星を通過してしまう。ましてやStackoverflowを見たって「ニューホライズンズが突然セーフモードに入ってしまいました。どこから手をつければいいですか」についての答えが見つかるはずがない。私の予想ではまずメモリダンプと通信シーケンス情報から何が起こったかを推定することになるのだが、そもそもそのメモリダンプを手に入れるまで最低でも9時間かかるのだ。

このデバッグ作業について考えた時、私の頭をよぎったのは「本当のプログラマー」であった。

本物のプログラマのうちで最も素晴らしい何人かが、カリフォルニアのジェット推進研究所で働いている。彼らの多くは、パイオニアやボイジャーのオペレーティングシステムを、すみからすみまで知りつくしている。地上の大規模 FORTRAN プログラムと、宇宙機に搭載されたアセンブリ言語のプログラムを一体化して、彼らは操縦と即興演奏の傑作を生み出すことができる -- 打ち上げてから 6年も経過した後で宇宙船を土星の10キロ四方の範囲にヒットさせて、損傷したセンサープラットフォームや通信機やバッテリを修理・バイパスしたりするのだ。うわさによると、本物のプログラマのある1人はなんとかやりくりして、ボイジャー宇宙機に搭載された数百バイトの未使用メモリに、パターンマッチングプログラムを組み込んだという。そのときボイジャーは木星にいて、新しく発見された月を撮影していたのだ。

引用元:The Real Programmer Stories

さて、これから一週間、本当にニューホライズンは再起動し観測を行うことができるだろうか。そして来年の春までかけて無事データを送ってくることはできるだろうか。「本当のプログラマー」の戦いは続く。