阿波羅 11 號的源代碼現(xiàn)在可到 GitHub 查看了 讓我們來一場說走就走的旅行吧

極客網(wǎng)消息,上周四,一位名叫克里斯·加里(Chris Garry)的NASA前實(shí)習(xí)生給開源代碼分享網(wǎng)站Github送了一份大禮,加里上傳了“阿波羅11號”登月項(xiàng)目計(jì)算機(jī)制導(dǎo)系統(tǒng)的源代碼,使得普通民眾也能一覽航天登月系統(tǒng)的內(nèi)部實(shí)現(xiàn)邏輯。

阿波羅計(jì)算機(jī)制導(dǎo)系統(tǒng)(Apollo Guidance Computer)作為“阿波羅11號”的艦載系統(tǒng),于1969年7月份的時候成功登上了月球。

這份源代碼是由MIT儀器實(shí)驗(yàn)室的計(jì)算機(jī)工程師前驅(qū)瑪格麗特·漢密爾頓(margaret hamilton)所編寫的。在這段代碼被發(fā)布之后,互聯(lián)網(wǎng)世界不久就進(jìn)入了高速發(fā)展時期。

根據(jù)科林(Collins)在一份報(bào)告中的描述,這段以匯編語言編寫的代碼即便是對今天的程序員來說,也堪稱教科書般的存在。

其實(shí),「阿波羅11 號」登月計(jì)劃的源代碼早在2003 年就被科技學(xué)者Ron Burkey 公布于眾,那時他不得不從一份原文的掃描版中人工將代碼一行一行地敲入電腦,并上傳到網(wǎng)絡(luò)。如下圖所示,照片右側(cè)一人高的紙上全是阿波羅 11 號登月的源代碼,你就可以想像 Ron Burkey 是多么有毅力的一個人。除了上傳該源代碼,Ron Burkey 還根據(jù)自己對代碼邏輯的理解,寫了一個阿波羅 11 號導(dǎo)引系統(tǒng)的模擬程序。

可能由于分享工具的關(guān)系,當(dāng)年源代碼上傳后并沒有被廣大的工程師看到(也可能當(dāng)年的工程師數(shù)量比較少一點(diǎn))。一直到上周四源代碼被上傳到 Github,這才引起了廣泛的關(guān)注和熱烈的討論。

經(jīng)過火眼金睛的網(wǎng)友、工程師們的仔細(xì)研讀,不禁在源代碼中發(fā)現(xiàn)了許多有趣的段落,現(xiàn)摘錄如下。

1. 首先是在現(xiàn)代系統(tǒng)編程中被明令禁止的「魔鬼數(shù)字」(一般都要求在代碼開頭用帶有明確意義的宏定義代替程序中出現(xiàn)的具體數(shù)字,否則會造成他人閱讀程序的障礙) .萬萬沒想到,堂堂大 NASA 登月計(jì)劃的源代碼中竟然隱藏了「魔鬼數(shù)字」,不禁令廣大的工程師朋友們咋舌。

2. 另外,阿波羅的工程師們在一段關(guān)于點(diǎn)火程序的注釋中,竟然講起了故事,是的,你沒有聽錯,是在講故事。詳細(xì)介紹了那句「Burn,Baby!Burn!」的由來。 (大意是說這句話最先來自一位著名電臺主持 Magnificent Montague,經(jīng)他之手捧紅了一大批美國 Soul Music 歌曲)

3. 還有,阿波羅的工程師們非常貼心,還在源代碼的相關(guān)部分寫上了宇航員此刻在進(jìn)行登陸艇操作時的注意事項(xiàng),比如「請展開登陸雷達(dá)」等。當(dāng)然,這里阿波羅的工程師用 the silly thing(蠢東西)代指了 landing radar(登陸雷達(dá))。

4. 更令人吃驚的是,登月源代碼中竟然還隱藏了莎士比亞的名著《亨利六世》中的一個片段:“IT WILL BE PROVED TO THY FACE THAT THOU HAST MEN ABOUT THEE THAT USUALLY TALK OF A NOUN AND A VERB, AND SUCH ABOMINABLE WORDS AS NO CHRISTIAN EAR CAN ENDURE TO HEAR.” 大義是說:「我要徑直向你們指出,你任用了許多人,讓他們大談什么名詞啊,什么動詞啊,以及這一類的可惡字眼,這都是任何一個基督徒的耳朵所不能忍受的」。

關(guān)于為什么會在代碼中出現(xiàn)這么一段「莎翁名言」,有人猜測是因?yàn)镸IT(麻省理工)的科學(xué)家在構(gòu)建登月源代碼時將許多程序指令預(yù)設(shè)成一個數(shù)字,然后通過這些「數(shù)字」來進(jìn)行操作,比如「37」就代表「執(zhí)行(Run program)」。然后下面執(zhí)行編寫任務(wù)的工程師們不勝其煩,整天要查表才能知道這些數(shù)字究竟代表什么意思,于是忍不住在代碼中吐槽了一下。

現(xiàn)在,任何人都可以訪問 GitHub 來獲取阿波羅 11 號導(dǎo)引系統(tǒng)的源代碼,感興趣的朋友們不妨去看看。

擴(kuò)展閱讀:

關(guān)于阿波羅計(jì)劃

阿波羅計(jì)劃(Project Apollo)或作阿波羅工程,港澳地區(qū)及臺灣曾稱其為太陽神計(jì)劃,是美國國家航空暨太空總署從1961年至1972年從事的一系列載人航天任務(wù),于1960年代的10年中,主要致力于完成載人登陸月球和安全返回地球的目標(biāo)。 1969年,阿波羅11號宇宙飛船達(dá)成了上述目標(biāo),尼爾·阿姆斯壯成為第一個踏足月球表面的人類。為了進(jìn)一步執(zhí)行在月球的科學(xué)探測,阿波羅計(jì)劃一直延續(xù)到1970年代早期??偣埠馁Y約240億美元,因此有人認(rèn)為,資金是美國能夠領(lǐng)先一步登陸月球的最大因素。

阿波羅計(jì)劃是美國國家航空暨太空總署執(zhí)行的迄今為止最龐大的月球探測計(jì)劃,「阿波羅」飛船的任務(wù)包括為載人登月飛行作準(zhǔn)備和實(shí)現(xiàn)載人登月飛行,已于1972年底結(jié)束。迄今(2016年)40多年來還沒有過其他的載人太空飛行器離開過地球軌道。阿波羅計(jì)劃詳細(xì)地揭示了月球表面特性、物質(zhì)化學(xué)成份、光學(xué)特性并探測了月球重力、磁場、月震等。后來的天空實(shí)驗(yàn)室計(jì)劃和美國、蘇聯(lián)聯(lián)合的阿波羅-聯(lián)盟測試計(jì)劃也使用了原來為阿波羅建造的設(shè)備,也就經(jīng)常被認(rèn)為是阿波羅計(jì)劃的一部分。

阿波羅計(jì)劃取得了巨大的成功,惟計(jì)劃中也有過幾次嚴(yán)重的危機(jī),包括阿波羅1號測試時的大火造成維吉爾·格里森、愛德華·懷特和羅杰·查菲的死亡;阿波羅13號的氧氣罐爆炸以及阿波羅-聯(lián)盟測試計(jì)劃返回大氣層時排放的有毒氣體都幾乎使執(zhí)行任務(wù)的太空人喪命。

阿波羅計(jì)劃陰謀論

阿波羅登月計(jì)劃陰謀論(英語:Moon landing conspiracy theories)是一系列針對美國阿波羅登月計(jì)劃(1961年-1972年)的懷疑論(騙局論、造假論)。其認(rèn)為美國阿波羅登月計(jì)劃是NASA與部份組織協(xié)助下所制作出來的大騙局。其最顯著的言論是1969年7月時人類從未登上月球(包含前后的6次登月及前后共12名登月的太空人)。自1970年代中期開始有許多團(tuán)體和個人出面指稱NASA和一些知情者透過偽造、竄改、銷毀相關(guān)的證據(jù)檔案資料(包括了照片、錄音帶、巖石樣本等等)企圖誤導(dǎo)社會大眾去相信登月計(jì)劃。

一般而言,大多數(shù)的民眾、媒體及太空愛好者們不采信此種說法,民意調(diào)查顯示絕大多數(shù)美國民眾相信阿波羅登月計(jì)劃成功實(shí)施,根據(jù)1999年蓋洛普組織民意調(diào)查結(jié)果,89 %的美國公民相信人類曾經(jīng)登陸過月球,而6%的人不相信,5%的人則不確定或無意見.而根據(jù)美國探索頻道節(jié)目《流言終結(jié)者》關(guān)于破解此「流言」的一集內(nèi)容中的調(diào)查,則有高達(dá)20%的美國公民并不相信美國人曾經(jīng)登陸過月球一事。另有2013年報(bào)導(dǎo)表明37%的美國人不相信登月。

盡管已有許多第三方團(tuán)體提出許多資料反駁陰謀論者的論點(diǎn),但經(jīng)過了40多年,陰謀論仍不斷流傳,2001年,美國電視網(wǎng)絡(luò)業(yè)福斯廣播公司(Fox Broadcasting Company)推出一部紀(jì)錄片名為《陰謀論:我們登上月亮了嗎?》(Conspiracy Theory: Did We Land on the Moon?)指稱當(dāng)年NASA偽造登月事件其目的是為了贏得與蘇聯(lián)的太空競賽。

極客網(wǎng)企業(yè)會員

免責(zé)聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請進(jìn)一步核實(shí),并對任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對有關(guān)資料所引致的錯誤、不確或遺漏,概不負(fù)任何法律責(zé)任。任何單位或個人認(rèn)為本網(wǎng)站中的網(wǎng)頁或鏈接內(nèi)容可能涉嫌侵犯其知識產(chǎn)權(quán)或存在不實(shí)內(nèi)容時,應(yīng)及時向本網(wǎng)站提出書面權(quán)利通知或不實(shí)情況說明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實(shí)情況證明。本網(wǎng)站在收到上述法律文件后,將會依法盡快聯(lián)系相關(guān)文章源頭核實(shí),溝通刪除相關(guān)內(nèi)容或斷開相關(guān)鏈接。

2016-07-13
阿波羅 11 號的源代碼現(xiàn)在可到 GitHub 查看了 讓我們來一場說走就走的旅行吧
極客網(wǎng)消息,上周四,一位名叫克里斯·加里(Chris Garry)的NASA前實(shí)習(xí)生給開源代碼分享網(wǎng)站Github送了一份大禮,加里上傳了“阿波羅11號”登月項(xiàng)目計(jì)算機(jī)制導(dǎo)系統(tǒng)的源代碼,使得普通民眾也能一覽航天登月系統(tǒng)的內(nèi)部實(shí)現(xiàn)邏輯。

長按掃碼 閱讀全文