天天看點

開源精選 | 阿波羅11号指令子產品和登月子產品原始代碼

作者:GitHub精選

《開源精選》是我們分享Github、Gitee等開源社群中優質項目的欄目,包括技術、學習、實用與各種有趣的内容。本期分享的是阿波羅11号制導計算機(AGC)中指令子產品(Comanche055)和登月子產品(Luminary099)原始代碼——Apollo 11。

開源精選 | 阿波羅11号指令子產品和登月子產品原始代碼

從1967年 1月27日的阿波羅1号模拟發射開始,阿波羅計劃曆時9年,一共有17 個序列号的宇宙飛船,其中最出名的是阿波羅11号,它于 1969 年 7 月 16 日載着阿姆斯特朗在内的三名美國宇航員首次成功登陸月球。

目前,完成這場宏大登月計劃的阿波羅11号制導計算機(AGC)中指令子產品(Comanche055)和登月子產品(Luminary099)原始代碼已經全部在GitHub上開源,總共14.5萬行代碼,幕後共計30多萬名技術人員。

下面這位女士是Margaret Hamilton,太空計劃的軟體工程主管,正站在一堆寫滿代碼的紙邊上。

開源精選 | 阿波羅11号指令子產品和登月子產品原始代碼

AGC代碼第一次公開是在2003年,通過轉錄MIT博物館收藏的紙質拷貝檔案,Paul Fjeld完成了代碼的數字化工作,并由專門研究技術和科學史的學者Deborah Douglas完成整理,最後由前NASA實習生Chris Garry将軟體完整地上傳到了GitHub。

開源精選 | 阿波羅11号指令子產品和登月子產品原始代碼

讓我們欣賞一下這些代碼:

指令子產品

開源精選 | 阿波羅11号指令子產品和登月子產品原始代碼

登月子產品

開源精選 | 阿波羅11号指令子產品和登月子產品原始代碼

這些代碼都是使用彙編語言來寫的,盡管當時資源有限,但阿波羅計算機在機器代碼級進行了精心程式設計,每條指令都規定了一項功能,它不需要現代程式設計中将進階語言翻譯成低級代碼的多個抽象層,目前NASA聯合MIT和其他一些機構共同資助了一個項目,裡邊提供了阿波羅登月計劃指令艙和登月艙中使用的阿波羅制導計算機(AGC)模拟器和其他一些資料:

寄存器圖紙

開源精選 | 阿波羅11号指令子產品和登月子產品原始代碼

時間脈沖器

開源精選 | 阿波羅11号指令子產品和登月子產品原始代碼

電路圖

開源精選 | 阿波羅11号指令子產品和登月子產品原始代碼
開源精選 | 阿波羅11号指令子產品和登月子產品原始代碼

模拟器界面

開源精選 | 阿波羅11号指令子產品和登月子產品原始代碼

運作效果

開源精選 | 阿波羅11号指令子產品和登月子產品原始代碼
開源精選 | 阿波羅11号指令子產品和登月子產品原始代碼
開源精選 | 阿波羅11号指令子產品和登月子產品原始代碼
開源精選 | 阿波羅11号指令子產品和登月子產品原始代碼
開源精選 | 阿波羅11号指令子產品和登月子產品原始代碼

更多内容大家可自行前往閱讀。

開源位址:https://github.com/chrislgarry/Apollo-11

如需項目推薦、擷取資源請私信作者

繼續閱讀