Categories: ニュース

月面着陸57年、アポロ11号を導いた約14万5000行がGitHubで公開中

アポロ11号が人類初の月面着陸を果たしてから57年になるのに合わせ、GitHubの公式アカウントが、当時の宇宙船を月へ導いたコンピューターのプログラムがGitHub上で公開されていることを紹介した。1969年7月20日に月着陸船イーグルが月面に降り、その約6時間39分後に船長のNeil Armstrong氏が人類として初めて月面に立った。その飛行を陰で支えたのが、宇宙船に積まれた小さなコンピューターと、それを動かすプログラムだった。

このコンピューターは「アポロ誘導コンピューター(AGC)」と呼ばれる。宇宙船の姿勢や進む方向を計算し、エンジンの噴射を制御して、月への着陸や地球への帰還を助ける役割を担った。いまのスマートフォンよりはるかに非力だったが、乗員が安全に往復するための計算をこなした。GitHubで公開されているのは、司令船用のプログラム「Comanche055」と、月着陸船用の「Luminary099」だ。

このプログラムは、元NASAインターンのChris Garry氏が2016年7月に、誰でも見られる形でGitHubにまとめた。もとは、MIT博物館が保管する紙のプリントをスキャンした画像から、有志が1行ずつ書き起こしたもので、著作権は放棄され誰でも自由に使える状態にある。プログラムは、MITの計器研究所(現ドレイパー研究所)のチームが開発した。当時、目指す機能を形にした前例がなく、チームはプログラムを金属の輪に物理的に織り込んで記憶させる「コアロープメモリ」と呼ぶ仕組みまで自前で用意して、一から作り上げた。全体の規模は、よく引用される数字で約14万5000行とされる。開発チームを率いたMargaret Hamilton氏は、コードを紙に印刷して積み上げた束の隣に立つ写真で知られ、「ソフトウェア工学」という言葉を広めた人物としても名を残す。

面白いのは、半世紀以上前のプログラムに、当時の技術者が残したコメントがそのまま読み取れる点だ。月着陸のプログラムには、着陸地点の確認に進む場面で「宇宙飛行士へ:さあ、自分がどこに着いたか見てみよう」と書かれた行がある。

このプログラムには、単なる規模を超えた工夫もあった。月面へ降下する最中、コンピューターが処理しきれない負荷を知らせる警報が相次いだ。だが、あらかじめ組み込まれていた優先順位の仕組みが働き、重要な計算を続けたまま、そうでない処理を後回しにした。この設計のおかげで、着陸は中断されずに済んだ。GitHubの投稿をきっかけに世界中の開発者がこのプログラムに集まり、他言語への翻訳や誤字の指摘が寄せられている。人類を月へ送り届けたプログラムが、いまは誰でも手元で開けるようになっている。

関連情報

FabScene編集部

FabScene編集部