耗時三年,14萬行,50年前阿波羅11號登月的全部代碼都能在GitHub找到了!

2021-02-15 大數據文摘

大數據文摘出品

作者:易琬玉

50年前的今天,美國太空人尼爾森·阿姆斯特朗從阿波羅11號飛船登月艙走出,在月球表面留下了人類登月的第一個腳印。


AR應用「JFKmoonshot」模擬的從Apollo11太空艙走出的視頻

美國總統甘迺迪1961年就設定了登月目標。阿波羅計劃歷時9年,經歷了10次失敗,Apollo11號才終於將人類的蹤跡帶到了月球。在著陸前,躲開了隕坑和巨石太空人阿姆斯特朗和奧爾德林在著陸點周圍探索了兩個多小時,他們採集了土壤和巖石樣本、插上美國國旗、留下了紀念阿波羅1號太空人的獎章和寫著「我們為全世界和平而來」的牌匾。那是真正的「人類群星閃耀時」!


從缺乏飛行經驗到第一次在月球上邁出人類探索的腳步,Apollo11記錄的是從0到1的重大轉折。

而現在,完成這場宏大登月計劃的制導計算機(AGC)所有原始碼,你都可以在Github上找到了!


先放上網址:

https://github.com/chrislgarry/Apollo-11


  


這份原始碼的開放工作從三年前就已經開始。通過轉錄MIT博物館收藏的紙質拷貝文件,Paul Fjeld完成了代碼的數位化工作,並由專門研究技術和科學史的學者Deborah Douglas完成整理。


Paul Fjeld本身也是一名空軍藝術家,曾作為阿波羅17號的觀察員,為阿波羅登月任務創作了一系列文章和插畫。在執行阿波羅17號任務時,他遇到了一些阿波羅計劃的飛行教練,「在夜間維護期間,我花了大約20個小時學習飛行宇宙飛船。方便的時候,我會在晚上用他們暫時不用的模擬器。」


             

參加阿波羅17號任務時的Paul Fjeld


整理這些原始碼是一件費時費力的事情,如果不是憑著對於宇宙探索的熱愛,很難想像會有人堅持了三年將這14多萬行的代碼耐心數位化並整理公布出來。



每個無人飛船都需要制導系統。在所有阿波羅計劃任務中,都有兩個阿波羅的制導系統(簡稱AGC),一個用於指揮艙,一個用於登月艙。這次開源的就是這兩個部分的原始碼。

擁有了這些代碼我們就能「上天」嗎?這次Apollo11登月代碼的開放在reddit上面引發了激烈討論,Github的代碼倉庫也慘遭注水。


 


「雖然軟體可以但是硬體真的是要了老命了」,reddit上網友評論說已經有小哥用Arduino和Raspberry Pi 開始嘗試了(Arduino是一個微控制器主板。微控制器是一種簡單的計算機,可以一次運行一個程序。Raspberry Pi是一種通用計算機,通常帶有Linux作業系統,能夠運行多個程序)。


也有熱心網友潑冷水,「私自登月是非法的」。但是科羅拉多州是個例外,因為美國的下一次登月將由私人公司而不是美國宇航局進行,而科羅拉多有兩家公司(Lockheed Martin 和 Deep Space Systems )入圍。



雖然用這段代碼我們不能真的「上天」,但是文摘菌為大家找到了一個網站。



這是NASA聯合 The Instrumentation Laboratory、MIT、劍橋以及MASS共同資助的一個項目,為了給阿波羅計劃登月任務中使用的機載制導計算機提供計算機仿真。

 


如果對編譯阿波羅原始代碼感興趣,不妨去看看。從網站可以獲取各種版本的原始AGC軟體,真的可以在電腦上重現當年阿波羅登月時的制導系統指揮場景,在自己的電腦上體驗一把登月的快樂。


網址在這裡:

http://www.ibiblio.org/apollo/


同時,網站也有AGC的電氣原理圖和機械圖紙,以及大量關於阿波羅計劃的文件。對阿波羅計劃感興趣的、想要做研究的小夥伴一定不要錯過!


AGC Engineering Drawings, Batch 9圖紙文件



從這次公開的代碼可以窺見阿波羅項目代碼量非常之大。一部分原因是因為要實現的指令複雜,還有一部分原因是限於當時的計算機水平,使用的是彙編語言,而三行彙編語言的代碼才抵得上一行C語言代碼。


曾提名第89屆奧斯卡最佳影片的《隱藏人物》就是以三位為美國登月計劃做出過巨大貢獻的黑人女性工程師為原型。她們負責水星計劃(美國第一個載人航天計劃)的計算工作,常因膚色和性別受到刁難和歧視,但仍不放棄自己的理想和本分,在那個計算力算力不夠的年代,幫助NASA讓約翰·格倫成為首位進入地球軌道的美國太空人。


同樣,負責阿波羅號計算機飛行軟體的「代碼女皇」瑪格麗特·漢密爾頓在人們還不知道軟體到底是怎麼一回事的時候,就開始和同事一起為世界上第一部可攜式計算機寫代碼了,他們也創造了計算機編程的核心理念。



負責阿波羅號計算機飛行軟體的「代碼女皇」瑪格麗特·漢密爾頓


在公開的Apollo11登月代碼裡也有瑪格麗特編寫的代碼,這段以彙編語言編寫的代碼即使是對今天的程式設計師來說,也是教科書級別的存在。


有趣的是,當時阿波羅號的工程師們敲代碼時還加入了自己的吐槽,它們就像是上世紀60年代的極客們留給我們的時間膠囊。


變的是時間,不變的是我們人類對於宇宙和自身生生不息地求索。


參考資料:

https://github.com/chrislgarry/Apollo-11/blob/master/README.zh_cn.md

https://www.reddit.com/r/programming/comments/ceh1gn/the_entire_apollo_11_computer_code_that_helped/

精品課程推薦 | 數據科學實訓營第8期

4個月,手把手帶你走完數據採集、清洗、存儲、分析、可視化、機器學習建模、大數據全流程!

相關焦點

  • 登月50年|阿波羅11號險墜毀!是她的代碼讓人類成功登月
    如今時間已經過去了50年,但阿姆斯特朗那句「我的一小步,人類的一大步」的經典獨白,仍然深深地刻在每個人的心裡。騰訊科技聯合知乎發起「登月50年」系列策劃,聚焦人類探索月球的點點滴滴,一起回顧人類和月球的往事。
  • 阿波羅 11 號登月 50 周年,回顧阿波羅號探月計劃
    北京時間7月15日消息,據美國宇航局網站報導,阿波羅11號飛船登月50周年紀念日臨近,讓我們再次回顧一下阿波羅號計劃的探月歷史。當第一批阿波羅太空人格斯·格裡森姆、埃德·懷特和羅傑·查菲在佛羅裡達州發射臺進行模擬操作時,太空艙突然起火,火情快速蔓延,導致3名太空人全部遇難。這次災難導致美國宇航局重新檢查了阿波羅計劃的所有方面,並對許多太空飛行器系統進行了重新設計,當年春天,太空人們接受訓練的任務被正式命名為「阿波羅1號」。機組人員:維吉爾·格裡索姆、愛德華·懷特、羅傑·查菲。
  • 阿波羅11號登月50周年,阿波羅計劃電影盤點
    50年前的7月21日(北京時間),阿波羅11號登陸月球,太空人尼爾·阿姆斯特朗在月球寧靜海邁出的一小步,成為了人類探索宇宙的一大步。50年來,圍繞阿波羅計劃的讚頌和陰謀論從未間斷,從這些電影就可見一斑。
  • 阿波羅11號登月50周年紀念,人類為什麼自此不再登月了?
    2019年7月20是人類登月50周年紀念日。50年前的7月16日,巨大的「土星5號」火箭載著 「阿波羅11號」宇宙飛船從美國的甘迺迪航天中心點火升空。開始了人類首次的登月徵程。美國太空人阿姆斯特朗、奧爾德林和柯林斯乘坐宇宙飛船飛越了38萬公裡徵程。最終於7月20日踏上了月球表面。
  • 新型登月火箭再次失敗,引發質疑:連52年前的技術都達不到嗎?
    1969年7月16日,土星5號運載火箭搭載阿波羅11號飛船升天,成功完成人類首次載人登月壯舉,將三名太空人送上月球表面。
  • 阿波羅11號:登月50年
    1969年7月20日,在「阿波羅11號」環月飛行了12圈、並釋出登月艙「鷹」之後,這一句久等的話,讓許許多多在場的工作人員熱淚盈眶。如今,刻畫宇宙探索的科幻大片層出不窮,月球已經不算是冒險家的樂園了,觀眾也不會更感興趣。
  • 阿波羅11號登月原始碼公布,其中竟隱藏莎翁名言
    「阿波羅11號」登月項目計算機制導系統的原始碼,使得普通民眾也能一覽航天登月系統的內部實現邏輯。(只不過當年用彙編寫的代碼,一般人可能看不太懂就是了)其實,「阿波羅11號」登月項目的原始碼早在2003年就被科技學者Ron Burkey公布於眾,那時他不得不從一份原文的掃描版中人工將代碼一行一行地敲入計算機,並上傳到網絡。如下圖所示,照片右側一人高的紙上全是阿波羅11號登月的代碼,你就可以想像Ron Burkey是多麼有毅力的一個人。除
  • 美國副總統彭斯慶祝阿波羅11號登月50周年的演講
    很高興能以副總統和國家航天委員會主席的身份——和賢妻凱倫——重返甘迺迪航天中心,與大家一起慶祝阿波羅11號登月50周年——50年前的這一壯舉將永遠被人紀念。(掌聲) 我一直期盼著這一天的到來,但請允許我轉達另一位偉大的太空愛好者、美國太空領導地位捍衛者的問候。今天,我帶來了美利堅合眾國第45任總統唐納·川普總統的問候。
  • 阿波羅11號登月飛船原始碼:除了代碼還有笑料和吐槽
    上世紀60年代中期,麻省理工學院(MIT)儀器實驗室的程式設計師們為阿波羅11號登月計劃開發飛行控制軟體,由於當時還沒有開發軟體所需要的技術積累,所以他們必須自己打造一套體系出來。MIT的程式設計師們為阿波羅制導計算機(AGC)編寫了成千上萬行的那種深奧代碼。 從下圖中,可以直觀地感受到他們到底寫了多少代碼。圖為阿波羅登月計劃軟體工程主管瑪格麗特·漢密爾頓(Margaret Hamilton),她旁邊是一大堆的AGC代碼文件。
  • 50年前,誰炸掉了阿波羅13號飛船?
    50年前,也就是1970年4月11日,阿波羅13號發射升空。阿波羅13號發射 | NASA這次飛行,原本只是一次尋常的登月任務,不應該如此知名。就像50年後,大多數人可能分不清阿波羅12號和14號之間的具體區別。
  • 阿波羅11號登月50周年 任務飛控中心復古裝修後重新對外開放
    還有不到3周時間就是阿波羅11號登月50周年的紀念日,6月28日,位於航天城休斯頓的原阿波羅任務飛行控制中心大廳被重新裝修成當年的樣子並剪彩,來紀念人類這一偉大的時刻。近日,美國85歲的原雙子計劃、阿波羅計劃飛行控制總監吉恩·克蘭茲在NASA局長的陪同下故地重遊,一切如故的裝飾讓老人感慨萬千、老淚縱橫,他仿佛重新回到了50年前那個舉世振奮的時刻。據悉,該控制中心將從7月1日起對全社會開放參觀。
  • 人類登月五十年,憶阿波羅11號的奇妙冒險。
    11號飛船,載著三位航天員開始了他們的登月之旅。於是,阿波羅11號登月艙繼續下落。但實際上,勇敢的航天員們不知道,他們的處境早已危機四伏。在登月的最終三分鐘裡有一個「死亡區間」,儘管只持續10秒,但破壞力極大。在這段時間內,登月艙下落的速度非常快。如果此時決定放棄登月,打算啟動登月艙的上升發動機,從而乘坐登月艙的上升段回到月球軌道,就會發生燃料箱因下降衝力而報廢的情況。
  • 阿波羅11號登月秘密(一):原來他並非登月的最佳人選
    作者 | 辰辰出品 | 網易科技《知否》欄目組(公眾號:tech_163)今年是阿波羅11號任務50周年,這無疑是改變人類科技歷史進程的一個裡程碑事件。50年前,在不計成本的瘋狂投入後,人類首次踏上了月球表面,但這「全人類的一小步」,前後花費了十多年的時間。
  • 50年前,誰炸掉了阿波羅13號飛船?-虎嗅網
    50年前,也就是1970年4月11日,阿波羅13號發射升空。就像50年後,大多數人可能分不清阿波羅12號和14號之間的具體區別。然而,阿波羅13號的太空人,卻意外遇到了人類歷史上最遙遠的一次事故。在斷電、斷WiFi通信和缺氣、缺水的多重挑戰下,3名太空人上演了載人航天史上最著名的一次自救。
  • 人類登月50年|阿波羅11號完成了不可能的任務
    編者按:今年是阿波羅11號登月50周年紀念日。值此之際,詳細記述人類登月全過程的新書《登月使命》出版。在這本書裡,讀者能看到探月史上每一個重要的時刻,包括斯普特尼克1號升空、小狗萊卡進入太空、阿波羅11號登月、阿波羅13號脫險、太空人謝潑德在月球上打高爾夫球……《登月使命》的作者為羅德·派爾,他畢業於史丹福大學,美國國家太空協會會員,美國作家協會會員,美國科普作家協會會員,航天歷史學者,航天雜誌《Ad Astra》主編,NASA噴氣推進實驗室和詹森太空研究中心長期合作撰稿人。
  • 阿波羅11號登月49周年
    阿波羅11號任務簡介Credit:NASA49年前的今天(按北京時間來說,應該是明天7月21日),1969年7月20
  • 阿波羅11號任務50周年:阿姆斯特朗登月獎章拍出205.5萬美元天價
    50 年前,尼爾·阿姆斯特朗邁出了人類登月的第一步。轉眼半個世紀過去,人們對於阿波羅 11 號的壯舉仍記憶猶新。對於科學收藏愛好者們來說,最近幾個月的各種拍賣會,也絕對值得關注。近日,Heritage Auctions 公布了一份清單,其中竟然包括了尼爾·阿姆斯特朗的個人登月紀念章。這枚「金」屬隨著船員一起登上了月球,後續後一起回到了地球,因此有著極高的紀念價值。
  • 天文學家找到了在太空漂流了50年的阿波羅10號登月艙
    一個被廢棄的阿波羅10號登月艙,該登月艙被稱為「史努比」,在過去的50年裡一直在太空漂流,其位置完全是個謎。現在,經過八年的仔細搜索,一群天文學家宣稱他們終於找到了它。10號任務在月球上方47,400英尺處進行了一場重要的登月預備演習。
  • 三星QLED8K電視活動紀念阿波羅11號登月50周年
    三星慶祝「阿波羅11號」登月50周年,推出了「製作歷史」,這是與CNN電影公司合作製作的QLED 8K電視廣告和多平臺廣告系列。1969年7月20日,美國太空人尼爾·阿姆斯特朗和巴斯·奧爾德林前往太空。他與巴茲·奧爾德林(Buzz Aldrin)和麥可·柯林斯(Michael Collins)一起在月球上邁出了第一步,因為全世界都在觀看人類最偉大的成就之一。