獵鷹與龍飛船基於Linux採用C++、Chromium與JS開發
最近兩天科技界最重大的事件莫過於馬斯克的SpaceX成功實現了獵鷹9號(Falcon 9)帶著龍飛船(Crew Dragon)成功發射,並使飛船與國際空間站對接,將NASA兩名宇航員送上了軌道前哨。背後關於Falcon 9與Crew Dragon使用的計算機和軟件等信息也引起了開發者的關注。多年前就存在的相關論壇提問帖也被翻了出來。
自稱為SpaceX 公司軟件開發團隊的網友表示Falcon 9 火箭與C#、MVC 都沒有關係。Falcon、Dragon(此次載人的Crew Dragon 前一代飛船)的應用主要使用LabVIEW 進行編碼,用於開發任務和發射控制的GUI,供工程師和操作員監控車輛遙測並指揮火箭、航天器和護墊支持設備。
LabVIEW(Lab oratory V irtual I nstrumentation E ngineering W orkbench,實驗室虛擬儀器工程平台)是一種程序開發環境,由美國國家儀器(NI)公司研製開發的,類似於C和BASIC開發環境。LabVIEW採用圖形化編輯語言G編寫程序,產生的程序是框圖的形式。
該網友還表示Dragon 和Falcon 9 使用Linux 操作系統,其他網友補充,在GDC 2016 與Dragon 團隊交流後了解到,Falcon 採用“三重冗餘”系統,簡單來講,Falcon 9 具有3 個雙核x86 處理器,每個核上都運行Linux 實例。飛行軟件採用C/C++ 編寫。對於每個計算/決定,“飛行字符串”都會比較兩個核的結果,如果存在不一致,則字符串是錯誤的,不發送任何命令。如果兩個內核都返回相同的響應,則字符串將命令發送到火箭上的各種微控制器,這些微控制器控制諸如引擎之類的東西。
運行在PowerPC 處理器上的微控制器從三個飛行字符串接收到三個命令,他們充當法官來選擇正確的行動方案。如果所有三個字符串都一致,則微控制器將執行命令。
而Crew Dragon 飛行界面上使用了Chromium 與JavaScript 開發,實際的飛行計算機仍基於 C++ 運行。