アポロ(50年前の月面着陸船)のプログラム

2022年9月23日

当時のコンピュータは当然ですが現在のコンピュータの性能には及びません

当時の資料から、どのような環境で開発が行われせたのかを垣間見ることができます

アポロ宇宙船とは?

昔の話なのでよく知らない方も多いのではないでしょうか

プロジェクト概要

当時のプログラマーは当時としての最先端のコンピュータを駆使し、人間を月まで届けて月に立たせ、また地球まで戻すプログラムを書きました
プログラマとしては成功させなければというプレッシャーと共に人類史上の記録に残るプロジェクトに参画できるという一般の人にでは味わえない世紀のイベントに携われることに大きな意義を感じたことと思います

コンピュータの性能

iPhoneとの比較です

速度

車で例えると、当時、時速100km/hの性能があったのが、現代では2500万km/hの性能にアップされたことに匹敵します
この速度は、昔から比べると、現代の車は1時間に地球を625周できるように進化したと言っているのと同じですね

記憶装置

自転車で例えると、当時、自転車で40kgの重さまでの容量の荷物を乗せることができたのが、現代では4,000,000kgの容量にアップされたことに匹敵します
これは、昔から比べると、現代の自転車は乗用車4000台を乗せることができるように進化したと言っているのと同じですね

重さ

自転車で例えると、当時、自転車が10kgだとすると、現代ではコンパクト軽量化が進み 6gになったことに匹敵します

開発期間

12年間

開発費用

12兆円

開発人員

1400人年

f:id:aerith7:20161220002404p:plain:w200

写っている人はマーガレット・ハミルトン。
MITの研究者でアポロのソフトウェア開発を担当した女性です。
これ何しているかというと
自分たちの書いたAGC関連書類の隣に立っている
写真なんですね。これ一枚でいろいろな苦労が伝わってきます。。。

開発規模

  • 全てのソースコード : 64,992行
  • コード量 : 40,202行
  • コメント行 : 32,443行
  • 空白行 : 5,900行

AGCは司令船に1台、着陸船に1台計2台が搭載されました。 求められた役割は
以下のプロセスにおける自動航法・誘導
です。むしろここ以外の機能にPCは用いられなかったんですね。

  • 司令船
    • 月周回軌道に乗ること、地球への帰還軌道に遷移すること
  • 着陸船
    • 月周回軌道から着陸すること、月を離陸して司令船とランデブーすること

容量はROM : 72 KB、RAM : 4KB程度。 メモリはプログラムを全て0と1に書き起こしたあと、町工場の女性の手によって1つづつ銅線に編み込んで作ったようです。 4100個のNORゲートが一つのコンピュータに使用されています。 1960年代当時ICチップは世界最先端の部品でした。アメリカの60年代のICチップ生産量の8割がアポロ関連だったのだとか。

ソフトウェアやプログラム技法は完全に1から作られました。 AGCアセンブリ言語で書かれ、 バージョン管理システムはYULと呼ばれています。

1960年から72年までに最終的に使われたその額は当時の金額で254億ドル(約2.7兆円)、現在の価値に換算すると1,120億ドル(約12兆円)に値すると言われている。

参考

イベントログ

10秒に1回くらい警報が鳴り続けている中、無視して降下したことがわかると思います。

設計

Posted by hidepon