先日、アルテミス2号が月周回ミッションを成功させ、米国が再び月を目指す重要な一歩を踏み出しました。しかし、多くの人が「なぜ半世紀前のアポロ計画はあれほどスムーズに成功したのに、現代の宇宙開発はこれほどまでに困難を極めるのか?」と疑問を呈しています。その答えは一言では語り尽くせませんが、少なくとも当時の「プログラムコード」は失われていませんでした。
アポロ11号の「神業」を支えたコードがGitHubに公開!
アポロ計画の設計図が失われたという都市伝説まで囁かれる中、なんと月着陸を支えた中核たるソフトウェアコードが失われず、現代に受け継がれていたことが明らかになりました。米航空宇宙局(NASA)は先日、アポロ11号の月着陸を補助したコンピュータのソフトウェアコードをGitHubで公式に公開したのです。これにより、誰でもその歴史的なコードを閲覧し、ダウンロードできるようになりました。
今回公開されたコードは大きく2つの部分に分かれます。一つは司令船モジュール(CM)に搭載された「Colossus 2A」の一部である「Comanche055」、もう一つは月着陸船モジュール(LM)の「Luminary 1A」の一部である「Luminary099」です。これらはいずれも、アポロ計画における制動誘導を担った「アポロ誘導コンピュータ(AGC)」のために、yaYULアセンブリ言語で書かれています。
「Comanche055」の中で特に注目を集めているファイルの一つが「ALARM_AND_ABORT.agc」です。その名の通り、このコードは警報状態を記録し、必要な際に警告灯を点灯させ、様々な割り込み処理を行うためのものでした。これらのコードは、Virtual AGCプロジェクトチームとマサチューセッツ工科大学(MIT)博物館の協力により、印刷された資料の電子化画像から転記・修正されてデジタル化されたものです。興味を持った方は、Virtual AGCツールを使えば、Windows XPやmacOS X 10.3、Linuxなどの比較的古いシステムでもコンパイルして試すことができます。
また、アポロ11号のナビゲーション軌道計算プログラムから、三角関数(正弦、余弦など)を計算するわずか30行のアセンブリコードも、その効率性と巧妙さでネット上で話題になっています。
驚愕の低スペック!わずか3.75KBのメモリで人類は月へ
20世紀60年代に活躍したアポロ誘導コンピュータ(AGC)のスペックは、現代の目で見ると信じられないほど簡素なものです。例えば、メモリ容量はたったの3840バイト(約3.75KB)、ストレージは69120バイト(約67.5KB)しかありませんでした。処理速度も最大で毎秒8.5万命令と、現代のスマートフォンどころか、初期の電卓にも及ばないようなレベルです。
本体のサイズは61.595 x 31.580 x 15.174cmと、現在のデスクトップゲーム機の筐体程度ですが、重量は31.8kgもありました。操作は「DSKY(ディスプレイ/キーボード)」と呼ばれるインターフェースで行われ、司令船には2つ、月着陸船には1つ搭載されていました。
このような極めて限られたリソースと、現代では考えられないような制約の中で、当時の科学者とエンジニアたちは、人類史上初の月面着陸という前例のない偉業を成し遂げたのです。彼らの創造力、情熱、そして技術力には、ただただ畏敬の念を抱かずにはいられません。
過去の偉業が未来の宇宙開発に問いかけるもの
現代の宇宙開発、例えばアルテミス計画では、 Orion宇宙船に搭載されたMicrosoft Outlookのような最新のソフトウェアが不具合を起こすことがある、という冗談めいた話まで聞かれます。これは、現代のシステムが高度に複雑化し、その信頼性の確保がいかに困難であるかを示唆しています。
アポロ計画のコードが公開されたことで、当時のエンジニアたちが「いかにシンプルに、いかに堅牢に」システムを設計したか、その哲学を垣間見ることができます。彼らは限られたハードウェアで最大のパフォーマンスを引き出すため、徹底的に最適化されたアセンブリコードを書き上げました。この過去の偉業は、現代の技術者たちに対し、シンプルさと効率性の重要性、そして制約の中でこそ生まれる創造性について深く問いかけているのかもしれません。
まとめ:コードが語る、人類の英知と探求心
アポロ11号の月着陸コードの公開は、単なる技術資料の公開以上の意味を持ちます。それは、人類が未踏の地を目指した時代の英知の結晶であり、現代の宇宙開発やテクノロジーの進化の源流を私たちに示しています。このコードは、当時のエンジニアたちの限りない情熱と、どんな困難にも立ち向かう人類の探求心を、時を超えて現代に語りかけているのです。
元記事: mydrivers






