每日最新頭條.有趣資訊

登月50年 | 讓人類登月的程序,真的是紡織工“編織”出來的

編者按:

1969年7月20日下午4時17分42秒,美國宇航員阿姆斯特朗將左腳小心翼翼地踏上了月球表面,這是人類第一次踏上月球。

如今時間已經過去了50年,但阿姆斯特朗那句“我的一小步,人類的一大步”的經典獨白,仍然深深地刻在每個人的心裡。

騰訊科技聯合知乎發起“登月50年”系列策劃,聚焦人類探索月球的點點滴滴,一起回顧人類和月球的往事。

今天來說阿波羅計劃中的一個小細節,也許可以幫助你了解以當時的技術要把人送上月球的難度,作者:知乎答主Mandelbrot。

我們常常把軟體設計叫做“編程序”,其實,阿波羅計劃的導航軟體真的是“編織”出來的。

導航軟體的重要性是毫無疑問的。尤其是當飛船運行到月球背面時,無法和地球直接通信,飛船的導航全靠軟體指揮。所以,這樣的軟體容不得一個錯誤。除了對軟體本身正確性的要求之外,軟體存儲介質也是至關重要的。要是存儲介質在太空中受到損害,後果也是不堪設想的。

在當時,比較流行的存儲介質是打孔紙帶,就是在紙帶上不同位置用有沒有打孔表示0和1。但是,載人航天工程顯然不能把性命攸關的安全性寄托在弱不禁風的紙帶上面。至於磁帶,它依賴於過於巨大的設備,而且在太空環境下可靠性也得不到保障。於是,最後的選擇是磁環和電纜。

記憶體實際上是一個有很多磁環構成的陣列,電纜從陣列中穿過,以二進製機器碼(0和1)的方式保存軟體信息。下圖就是阿波羅導航系統中用於測試的記憶體。你可以清楚地看到紅色的磁環和綠色的導線。

磁環的作用是改變導線上電壓的狀態。如果導線穿過磁環,導線上的電壓就會發生改變。系統檢測到這種改變後,就把這條導線上的數據解釋為1。

如果導線沒有穿過磁環,那麽導線上的電壓不發生改變,系統就把這條線上的數據解釋為0。

可以想象,軟體寫入記憶體的過程實際上和織布差不多。所以,項目組雇傭了很多有經驗的紡織女工,採用一種類似紡車的設備,再加上一種特別的毛衣針,一位一位地把整個軟體織進了下圖中這個記憶體。

整個軟體系統的大小大約是60萬位。對於軟體的大小來說,這個數字在今天已經是微不足道了。但是,把這樣大小的數據用手工輸入,而且不能有錯,還是很不容易的。所以,整個軟體輸入的過程都經歷了嚴格的測試。幸運的是,當時已經有自動軟體測試的概念了。

最終,這個編織出來的程序成功地把宇航員帶到了月球,並且安全的帶回了家。

往期回顧

登月50年 | 人類40多年不再登陸月球,背後是什麽陰謀?

登月50年 | “阿波羅登月”真的是一場徹頭徹尾的騙局?

登月50年 | 阿波羅11號險墜毀!是她的代碼讓人類成功登月

登月50年 | 為何前蘇聯沒有能力將人類送往月球?

登月50年 | 在第一次登月前,這三位宇航員被活活燒死

登月50年|人類用史上最大火箭登月 50年後它仍是史上最大

登月50年 | 別誤會,那個經典的月球腳印不是阿姆斯特朗的

登月50年 | 爆炸!阿波羅13號差點把宇航員永遠留在月球

獲得更多的PTT最新消息
按讚加入粉絲團