近日,NASA正式對外公開了助力阿波羅11號成功登月的電腦軟體源代碼,所有人都能在GitHub平台上自由查閱、下載。
此次公開的代碼主要分為兩大部分:一是代號Comanche055,對應指令艙(CM)搭載的Colossus 2A系統。二是Luminary099,對應登月艙(LM)搭載的Luminary1A系統。兩者均為當年阿波羅11號制導電腦(AGC)所使用的核心代碼,編寫語言為專門的yaYUL匯編。

在Comanche055中,ALARM_AND_ABORT.agc是最先引發關注的文件。文件開頭為標準的代碼注釋說明,隨後便是具體功能實現邏輯。單從文件名就能看出,這段代碼主要用於監測並記錄各類警報狀態、在緊急情況下點亮警示燈,同時區分處理需要任務中止的緊急警報與無需中斷任務的常規警報。

這批代碼的數字化復原工作,由虛擬阿波羅制導電腦項目(Virtual AGC)團隊與麻省理工學院(MIT)博物館合作完成。全部基於當年的紙質列印版掃描件進行轉錄、校對與整理。

如果不只是想瀏覽源碼,還可以藉助Virtual AGC這款工具對代碼進行編譯運行,支持的系統包括Windows XP、Mac OS X 10.3、Linux以及部分版本的FreeBSD。
不少網友在看到公開代碼後感慨:原來當年的登月代碼並沒有丟失!而更令人驚嘆的是,支撐人類首次登月的電腦,內存竟然僅有3.75KB。
網路上還流傳著一段極具代表性的代碼片段,出自阿波羅11號的導航與軌道計算程序。其中最核心的約30行匯編代碼,專門用於完成正弦、餘弦等超越函數的高精度運算。

回望上世紀60年代,阿波羅登月所使用的AGC制導電腦,以今天的標準來看配置堪稱簡陋:內存僅3840字節(3.75KB),存儲空間69120字節(67.5KB),每秒最多僅能執行8.5萬條指令。

這台電腦的體積與如今一台中高端台式遊戲主機相近,尺寸為61.595×31.580×15.174厘米,重量更是達到31.8公斤。在任務中,指令艙需要配備兩台DSKY人機交互控制器,登月艙則也會配備一台。

即便在如此有限的硬體條件下,當年的科學家與工程師們依然完成了人類史上前所未有的登月壯舉,這份智慧與魄力實在令人敬佩。對比之下,如今阿爾忒彌斯2號的獵戶座飛船上,就連微軟Outlook這類軟體上太空後都出現運行故障,難免讓人唏噓不已。






