當(dāng)前位置:首頁 > 公眾號精選 > 半導(dǎo)體快評
[導(dǎo)讀]這幾天適逢人類登月50周年,1969年的今天美國阿波羅11號飛船成功在月球著陸,正如首個登月的宇航員阿姆斯特朗所說——這是個人的一小步,但是人類的一大步。


這幾天適逢人類登月50周年,1969年的今天美國阿波羅11號飛船成功在月球著陸,正如首個登月的宇航員阿姆斯特朗所說——這是個人的一小步,但是人類的一大步。面對阿波羅11號登月50周年這個大熱點,不少公司、組織、個人也從多個角度來紀(jì)念這一偉大的日子,NVIDIA發(fā)布了一段使用光線追蹤技術(shù)渲染的登月Demo,不僅效果出色,還從光線渲染的角度證明了登月不是騙局。


1969 年 7 月 20 日,“阿波羅 11 號”飛船登月,宇航員尼爾·阿姆斯特朗(Neil Armstrong)成功踏上月球表面,標(biāo)志著人類第一次踏上月球,完成重要的一步:“這對個人來說是一小步,對人類來說卻是一大步。


2019 年 7 月 20 日的今天,正是人類登月 50 周年。


這兩天,Apollo-11的源碼項目一直占據(jù) GitHub 熱榜第一,目前已獲得 37,000+ 個Star。



其實 Apollo-11 并非是沖著在這 50 周年才開源,早在 2014 年便有第一次的代碼 commit,并在 2016 年開源。目前已累計超過 300 次commit,有近5000 個 Fork。??

?


這些代碼是阿波羅11號制導(dǎo)計算機(AGC)中指令模塊(Comanche055)和登月模塊(Luminary099)原始代碼,這個項目的目的是存儲阿波羅 11 號原始代碼。



此外,虛擬AGC和麻省理工科學(xué)博物館將阿波羅導(dǎo)航計算機(AGC)中的指令模塊Comanche055、登月模塊Luminary099的原始代碼公布在了GitHub上,任何人均可自由查閱、編譯。


考慮到阿波羅工程的龐大及復(fù)雜,阿波羅11號的源代碼開源更多地是象征意義,其他人或者組織也不可能根據(jù)這個源碼搞自己的登月飛船。


也許正是因為這樣,阿波羅11號開源之后很快就有了許多issue(可以看做對源碼的提問或者評論,雖然本質(zhì)上不是這個作用),而且中文占了絕大多數(shù),中文程序員們把阿波利11號源碼issue當(dāng)作了一個評論區(qū)。


這些評論大多不是惡意的,主要是調(diào)侃、跟風(fēng)、吐槽、灌水,但總的來說這些評論更多地是國內(nèi)微博、貼吧的風(fēng)格,完全看不出與阿波羅11號源碼有什么關(guān)系。


Github作為全球最主要的代碼托管平臺,一直被程序員自嘲為最大同性交友社區(qū),如今里面不嚴(yán)肅不正經(jīng)的東西越來越多,這也是很多人對Github不滿的地方。


前兩天還有國外的程序員發(fā)文表示Github上有太多中文項目,GitHub Trending幾乎被被思中國人霸榜了,這些項目有的連注釋都是中文的,國外程序員大部分看不懂,所以這事導(dǎo)致一些國外程序員很無奈。


當(dāng)然,這位小哥的文章態(tài)度OK,不是為了噴中文程序員,而是提出了Github上的一個管理問題,確實值得官方思考和改進。



除了代碼還有笑料和吐槽


上世紀(jì)60年代中期,麻省理工學(xué)院(MIT)儀器實驗室的程序員們?yōu)榘⒉_11號登月計劃開發(fā)飛行控制軟件,由于當(dāng)時還沒有開發(fā)軟件所需要的技術(shù)積累,所以他們必須自己打造一套體系出來。


他們提出了一種存儲計算機程序的新方法,名為“線存儲器”,并創(chuàng)造了一種特殊版本的匯編語言。對于現(xiàn)今的很多程序員來說,匯編語言晦澀難懂,其目的是方便計算機理解,而不是便于人類理解。MIT的程序員們?yōu)榘⒉_制導(dǎo)計算機(AGC)編寫了成千上萬行的那種深奧代碼。


從下圖中,可以直觀地感受到他們到底寫了多少代碼。圖為阿波羅登月計劃軟件工程主管瑪格麗特·漢密爾頓(Margaret Hamilton),她旁邊是一大堆的AGC代碼文件。



AGC代碼其實早已公之于眾,最初是由技術(shù)研究員羅恩·伯基(Ron Burkey)在2003年上傳到網(wǎng)絡(luò)。他根據(jù)MIT在網(wǎng)上發(fā)布的原始硬拷貝的掃描件進行了轉(zhuǎn)錄,也就是一行一行地手動打出來。


“掃描的人是一名叫做加里·內(nèi)夫(Gary Neff)的飛行員,”伯基在電子郵件中寫道,“MIT得到了掃描件,把它們以網(wǎng)頁圖片的形式放上網(wǎng)。但不幸的是,在此過程中,那些圖片遭到損壞,有些地方無法看清。”伯基利用其工程知識查漏補缺,恢復(fù)了無法看清的部分。


“一段時間過后,我從加里·內(nèi)夫那里拿到了備用掃描件,對無法看清的部分進行了核實,幸運地發(fā)現(xiàn)我恢復(fù)的部分完全正確!”他說。


這使那些想要探究AGC代碼的研究員和愛好者如獲至寶。伯基本人甚至利用AGC代碼創(chuàng)造了一個模仿品。


盡管伯基付出了巨大的努力,成功地重現(xiàn)了無法看清的部分,但對于當(dāng)今的很多軟件開發(fā)者來說,AGC代碼本身仍然有點晦澀難懂,直到7月7日那天,曾在NASA實習(xí)的克里斯·加里(Chris Garry)將AGC代碼完整地上傳到代碼共享網(wǎng)站GitHub。如今,光顧該網(wǎng)站的程序員數(shù)不勝數(shù)。


幾小時內(nèi),程序員們開始研究AGC代碼,尤其是AGC原始編程者撰寫的代碼注釋。代碼注釋是用簡單直白的語言描述某個特定時刻執(zhí)行的任務(wù)。Reddit網(wǎng)站程序員吐槽欄目的讀者們在找樂子方面一向敏銳,他們發(fā)現(xiàn)AGC代碼的很多注釋并不是對代碼本身的枯燥解釋,其中充滿了有趣的笑料和訊息,以及上世紀(jì)60年代的很多人和事。


例如,一份源代碼文件名為“BURN_BABY_BURN--MASTER_IGNITION_ROUTINE”(燃燒吧,寶貝,燃燒吧——控制點火程序),開頭的注釋(下圖)這樣寫到:“燃燒吧,寶貝,燃燒吧”可追溯到1965年的洛杉磯騷亂,當(dāng)時著名DJ、電臺所有者“偉大的蒙塔古”(Magnificent Montague)在打碟時使用了這句話。偉大的蒙塔古是上世紀(jì)50年代中期至60年代中期,在芝加哥、紐約和洛杉磯極富感召力的靈歌代表人物。



以下這段代碼也出自控制點火程序,第一行寫著“你好啊”,最后一行寫著“拜拜,歡迎再來哦”。從中可以體會到AGC原始編程團隊有多愛玩。



在名為“LUNAR_LANDING_GUIDANCE_EQUATIONS.s”(月球著陸制導(dǎo)等式)的文件中,程序員希望其中的兩行代碼是暫時的,結(jié)果卻成了永久的。



也是在那份文件中,出現(xiàn)了讓宇航員“轉(zhuǎn)動那個蠢東西”的注釋。



“那是指轉(zhuǎn)動著陸雷達的天線,”伯基解釋說,“我覺得那是在提醒宇航員調(diào)整天線。”


在被描述為“AGC和計算機操作員之間的鍵盤和顯示系統(tǒng)交互程序”的“PINBALL_GAME_BUTTONS_AND_LIGHTS.s”(彈珠游戲按鈕和顯示)文件中,甚至出現(xiàn)了莎士比亞名著《亨利六世》中的一段話:“我要徑直向你指出,你任用了許多人,讓他們大談什么名詞呀,什么動詞呀,以及這一類的可惡字眼兒,這都是任何基督徒的耳朵所不能忍受的。”



Reddit網(wǎng)站的一位用戶指出,這可能是在吐槽AGC的編程語言。這種編程語言利用預(yù)先確定的“名詞”和“動詞”來執(zhí)行操作。例如,動詞37代表“運行程序”,名詞33代表“點火時間”。


既然AGC代碼已經(jīng)在GitHub網(wǎng)站上公布,程序員們現(xiàn)在能夠提出問題和修改建議了。他們當(dāng)然不會錯過機會。一位程序員提出了一個問題,說“低溫貯罐發(fā)生了非常嚴(yán)重的電路故障”,并列出了再現(xiàn)這個問題的步驟。他補充道,“要小心,這可能對測試者造成危險?!被貜?fù)非常熱烈。


一位用戶說,問題可能不在于代碼,而在于其他方面:


“是不是只發(fā)生在月球轉(zhuǎn)移軌道(sol-3-a)上?還是在所有的月球軌道上都會發(fā)生?問題可能出在月球。試著縮小問題的范圍?!?/span>


另一位用戶談到了基本操作:


“你有沒有試過關(guān)閉后重啟?”


一位程序員認(rèn)為可能只是軟件需要更新:


“阿波羅14號解決了這個問題。”


不重要的登月代碼才開源?


可能會有人認(rèn)為,能開源的登月代碼應(yīng)該不算是重要的代碼。實際上并不是的。那么 AGC 究竟是什么?


阿波羅制導(dǎo)計算機(AGC)于上世紀(jì) 60 年代由美國國家航空航天局(NASA )開發(fā),主要用來控制阿波羅宇宙飛船上的導(dǎo)航與制導(dǎo)系統(tǒng)。


阿波羅號太空船實際上是兩種不同的航天器,分為指揮艙(CM)和登月艙(LM)。指揮艙是用來讓三名宇航員登上月球,然后再接回來。登月艙是用于承載兩名在月球行走的宇航員,而第三名宇航員則留在指揮艙中,繞月球軌道運行。


所以說在人類第一次登月的三位宇航員里,只有前兩位宇航員阿姆斯特朗和巴茲·奧爾德林(Buzz Aldrin) 真正地在月球行走,第三位邁克爾·科林斯(Michael Collins)則是坐在飛船里執(zhí)行任務(wù)。


無論是否有宇航員的協(xié)助,每個航天器都需要能夠在太空中航行,因此需要有一個“制導(dǎo)系統(tǒng)”。該指導(dǎo)系統(tǒng)由麻省理工學(xué)院的儀器實驗室開發(fā),這個制導(dǎo)系統(tǒng)的一個重要部分是阿波羅制導(dǎo)計算機——“AGC”。


在阿波羅任務(wù)中,有兩個 AGC,一個用于指導(dǎo)艙,一個用于登月艙。這兩個AGC 是相同且可互換的,但它們運行不同的軟件,因為航天器執(zhí)行的任務(wù)是不同的。

此外,由 AGC 運行的軟件隨著時間的推移而發(fā)展,所以在后來的任務(wù)中使用的AGC 軟件(如 Apollo 17)與早期的任務(wù)(如 Apollo 8)略有不同。


所以說,這份源碼還是很重要的。


在該項目里,還列出當(dāng)時參與編寫這些代碼的程序員:??



正因為有了這些程序員,我們才完成在科學(xué)上重要的“一大步”!


驚心動魄的登月時刻,這位女程序員拯救了所有!


阿波羅 11 號登月的過程并不如阿姆斯特朗登月時那“輕松”的一步,而是驚險萬分!如果沒有這位女程序員,可能就阿波羅就無法成功登月了。


她就是瑪格麗特·希菲爾德·漢密爾頓(Margaret Heafield Hamilton),在美國媒體 IT World 評選“在世的世界上最偉大程序員”中,瑪格麗特排名第一。

一開始為了貼補家用,瑪格麗特成為實驗室臨時編碼員,后因工作出色,被推薦去了 NASA。


當(dāng)時她帶領(lǐng)團隊為阿波羅登月計劃做后備方案,由于大家是奔著成功去的,所以她負(fù)責(zé)是最不受重視的部分:萬一任務(wù)失敗之后的后備方案。


但瑪格麗特依然認(rèn)真地用模擬器模擬飛行狀態(tài),檢查系統(tǒng)漏洞。


可沒想到阿波羅 11 號飛船準(zhǔn)備正式登陸月球前幾分鐘,雷達發(fā)來的大量的數(shù)據(jù)涌入計算機存儲區(qū),讓系統(tǒng)近乎崩潰,飛船將在月球墜毀,宇航員已做好犧牲的準(zhǔn)備。


幸好有瑪格麗特編寫的后背方案軟件抗住了壓力:在大量錯誤數(shù)據(jù)突然涌入,計算機不堪重負(fù)是因為進行了一系列不必要的計算,事實上最重要的資源應(yīng)該用在安全登錄上,其他不重要的任務(wù)將終止。


這就是她后來提出的“異步處理”概念。


正因為有了這樣優(yōu)秀嚴(yán)謹(jǐn)?shù)某绦騿T,人類才能完成第一次登月。后為了表彰她在登月計劃中的貢獻,奧巴馬授予她“自由獎?wù)隆薄?br />



-END-

半導(dǎo)體快評

掃描二維碼,關(guān)注更多精彩內(nèi)容

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉