深空中的遺留代碼:維護航海家號太空船
Voyager 1 和 2 太空船是距離地球最遠的人造物體,它們正持續向星際空間進發。然而,它們長壽的關鍵因素不僅僅是硬體,還有一套寫於 1970 年代程式語言的遺留代碼庫,目前地球上只有極少數人能理解。
這種情況為軟體維護提供了一個獨特的案例研究:一個無法像現代軟體那樣進行修補的系統,其單向通訊延遲超過 24 小時,且最初的架構師現在已接近退休年齡。
星際遺留代碼的挑戰
維護航海家號太空船需要應對一系列在現代軟體工程中幾乎聞所未聞的限制。與雲端應用程式或甚至是現代衛星不同,航海家號探測器是在數十年前設計的硬體和軟體上運行的。
由於太空船距離如此遙遠,任何軟體更新或修正都是一場高風險的操作。通訊延遲——現在單條訊息到達探測器需要超過 24 小時——意味著即時除錯是不可能的。每一行發送到航海家號探測器的代碼都必須在傳輸前經過完美的計算與測試。
人力因素:知識轉移與技能差距
最迫切的擔憂之一是機構知識的流失。在 1970 年代編寫原始代碼的工程師現在已步入高齡。隨著這些原始開發者退休,NASA 面臨著專業知識的缺口。
雖然年輕工程師具備學習這些古老語言的技術能力,但通常缺乏投入於遺留系統工作的意願。然而,正如社群成員所指出的,參與航海家號計畫是一個享有盛譽的機會。它提供了歷史保存與主動任務支持的獨特交集,對於任何能夠彌合 1970 年代組合語言與現代運算之間的差距的工程師來說,這都是職業生涯中的「金星」。
古老系統的現代解決方案
維護航海家號代碼庫的掙扎引發了關於 NASA 今日如何管理這些系統的幾個問題。工程師與愛好者之間的討論提出了幾種潛在的緩解路徑:
- 數位化: 對於該計畫的實體文件記錄存在著持續的擔憂。將 70 年代的每一份紙張和手冊數位化是至關重要的,以確保知識不會因實體損壞而流失。
- 模擬與仿真: 為了測試變更,NASA 可能依賴現代設備上的軟體模擬器或航海家號硬體的實體複製品,以確保發送到虛空的任何指令都是安全的。
- 人工智慧的角色: 有人建議可以使用大型語言模型 (LLMs) 來分析舊文件和代碼片段,以幫助現代工程師理解 1970 年代的系統邏輯。透過在現有的遺留代碼上進行訓練,AI 可能有助於翻譯或記錄那些未經記錄的軟體部分。
70 年代工程技術的韌性
這存在著一種深刻的諷刺:人類探索最先進的成就之一,竟是由在大多數商業領域會被視為過時的代碼所驅動的。雖然許多公司在銀行業中正與 COBOL 系統奮戰,但航海家號探測器或許代表了現存功能完備的遺留代碼庫中最極端的例子。
最終,航海家號任務提醒了我們,最關鍵的軟體並非最現代化的軟體,而是那些強健、可靠,且能夠在想像中最嚴酷的環境中生存近半個世紀的軟體。