240億キロ離れた47年前のコンピュータを直す方法
ボイジャー1号。1977年に打ち上げられ、木星と土星を探査した後「太陽系家族写真」
を撮影し、カメラの電源を落とし、「太陽系の果てとその向こう」へ向けて果てしない空間を進み始めた。
太陽は熱と光の他に様々な粒子を放出しており、ひっくるめて「太陽風」と呼んでいる。離れると弱まって行くが、同様に他の星から放たれた「風」とぶつかる場所で高温になる。そこを「ターミネーション・ショック(末端衝撃波)」と呼ぶが、そこを通過、そして2012年、
太陽系を後にした。
以降「原子力電池尽きるまで」各種センサのデータを地球へ送る「星間ミッション」を遂行し続けていたが2023年、異変が起こる。
0と1が不規則に繰り返される「意味不明」なデータを送るようになってきたのだ。この時点で地球からの距離は240億キロ。光の速さで22時間かかる。壊れたのか。
が、調査していたエンジニアが気づく「これプログラムの内容じゃん」
1. #include
2. #include
3.
4. int main(void){
5. printf("RAND_MAX=%d\n",RAND_MAX);
6. }
コンピュータプログラムとゆーのは、↑のように指令と規則を書き連ねて行くが、それをコンピュータに送り込む際には「0」と「1」の組み合わせ(機械なら通じるコトバという意味でマシン語という)に変換される。その「マシン語」をダラダラ送ってきていると気づいたのだ。
エンジニアは「メモリの内容を送ってこい」という命令をボイジャーに与え、送信22時間、受信22時間……「秒速5センチメートル」のように回答を2日待った。結果、観測データや動作状況をパッケージングする「フライトデータシステム(FDS)」のメモリの3%が損傷していることを突き止めた。
エンジニアたちは「3%」の部分に書き込まれていたプログラムを別の場所に移して運用することを考えた。そのまま移すことは出来なかったため、細かく分けてここはこっち、この部分はあっちと書き換えを行い、「今後プログラム動かす時は読みに行く場所も変えるんだぞ」(意訳)という命令もセットにして、修正プログラムとしてまとめ、再度、22時間向こうの宇宙空間へ送信した。
で、再起動して上手く動いているようだ、というのがこのニュース。
傷を治し、されど多分、新たな傷を作りつつ、原子力電池の持つ限り。
ちなみにボイジャーの機体には知的生命とエンカウントした時のために「レコード」が貼り付けてある。世界各国の「こんにちは」が入っているほか。
レコードの再生方法や水素を意味する記号、この機体の飛んで来た方向(つまり太陽系の位置)が分かる図版が描かれている。
4万年後、「グリーゼ445」の1.7光年ほど先を通過する。
« 息子・極悪非道 | トップページ | 4月25日・鉄道の課題 »
コメント