SpaceX軟件團隊就技術問題在Reddit上答網友問:應用級程序用C++編寫,測試用Python

美國當地時間5月30日,由埃隆·馬斯克創辦的航天公司 SpaceX 執行的載人航天發射任務在肯尼迪航天中心圓滿完成,獵鷹 9 號火箭成功將載人飛船“Dragon”以及參與兩名宇航員送上了太空,至此,馬斯克距離他的火星夢又進了一步。

近日,負責開發和部署Dragon軟件的六名技術人員在Reddit舉行了一場以“Dragon有問必答”爲主題的線上問答會,Reddit用戶可以就自己感興趣的任何問題向技術人員提問,他們也會耐心地進行解答。參與問答的團隊成員各有分工,有人負責技術管理,有人負責軟件開發,有人負責網絡安全問題,他們也就網友關心的如何能進入SpaceX公司工作給出了一些建議。

這六位技術人員分別是:

  • Jeff Dexter——負責運行飛行軟件和網絡安全;
  • Josh Sulkin —— Crew Dragon軟件設計負責人
  • Wendy Shimata ——管理Dragon軟件團隊,並負責Dragon的容錯和安全工作
  • John Dietrick —— 領導了Demo-2的軟件開發工作
  • Sofian Hnaide——負責Demo-2上Crew Displays 軟件工作
  • Matt Monson——曾在Dragon上工作現在負責Starlink軟件

本科學歷是最基本條件

在問答中,一位被猜測是高中生的Reddit用戶問道:“如果我將來想去SpaceX從事軟件工作,應該具備什麼條件?”

SpaceX負責飛行軟件和網絡安全的Jeff Dexter回答道:“獲得計算機科學學位或類似學位”,他表示,對學歷有要求是爲了“確保你真正瞭解必備的技術常識”。

他解釋說:“在SpaceX上表現出色的工程師對他們的代碼、網絡、Linux和硬件等如何工作一絲不苟”。另外,SpaceX許多公開的工程和軟件崗位的基本要求都是學士學位及以上。

除了學歷很重要以外,團隊還提到通過參與一些項目或實習工作獲得相應的工作經驗也十分重要。Dexter建議說:“通過在SpaceX裏接觸一些業餘項目或實習獲得現實世界中的構建事物和解決難題的經驗,對以後進入SpaceX也很有幫助”。 例如,Demo-2軟件開發工作負責人John Dietrick在Reddit上說,“視頻遊戲開發與我們的工作之間的有不少交集,這兩個領域中,有很多類似的數學難題和以性能爲中心的問題。”

學歷很重要,但並不是全部。曾在Dragon任職,現在負責領導Starlink軟件的Matt Monson表示,“團隊中的成員擁有着不同的文化、教育背景,但沒有多少人擁有航空背景,不同的觀點可以幫助我們從不同的角度看待問題,並且通常可以幫助我們看到我們原本不會看到的解決方案。”

Monson總結道:“我們歡迎的成員要具備兩個基本條件:才能(潛力)和正確的態度(渴望自我完善,爲團隊服務而不是自私)。

Reddit上熱門評論

在此問答環節中,涉及了很多SpaceX的技術棧是什麼、應用的編程語言是什麼以及在飛行過程中如何執行錯誤檢測和糾正等網友們關注的問題,以下是Reddit上熱度較高的一些評論及技術團隊的回答:

Crew Dragon軟件設計負責人Josh回答了網友們關心的開發F9和Dragon軟件最常用的編程語言是什麼?是C還是C ++?

Josh回答稱:“所有應用程序級自主軟件都是用C ++編寫的。儘管我們希望編程儘可能簡單些,但通常,我們在使用面向對象的編程技術時會選擇使用C++。

針對Dragon上是否使用了開源庫的問題,Josh回答稱:

我們確實使用了開源代碼庫,主要是標準C ++庫,還有一些其他庫。但是,我們僅使用極高質量的開源代碼庫,並且在解決實際問題時會選擇開發自己的庫,以便我們可以自己控制代碼質量。

網友也對在飛行過程中如何執行錯誤檢測和糾正這一問題比較感興趣,而Josh給出的回答是:

我們在飛船上部署了多臺冗餘計算機,並對其輸出進行投票,這樣就可以處理計算機中由輻射引起的錯誤。通過使用多個不同的傳感器來處理傳感器中的錯誤。而數據傳輸中的錯誤則通過使用附加到有效負載的錯誤檢測或錯誤糾正代碼來處理。

在機器學習無處不在的當下,SpaceX是否在其軟件中使用了AI技術這一話題也成爲網友的關注點,就此問題,Dietrick給出的回答令人有些意想不到,他表示:“Daragon未使用任何AI。”不過,Josh也補充道,Dragon確實使用了一些計算機視覺來進行導航。

此外,網友也比較關心SpaceX的技術棧是什麼?它們主要是開源還是內部框架?這一問題Sofian給出了回答,他稱:“我們使用C和C++來製作飛行軟件,HTML、JavaScript和CSS用於顯示,python用於測試。”

在被問到所使用的Linux發行版是什麼時,Dietrick表示,“我們不使用任何現成的發行版,我們有自己的發行版。”

在提及如何測試軟件時,Dietrick回答稱:“我們會用我們能想到的所有方法進行測試。單元測試、基於容器技術的集成測試(你可以在自己的機器上運行這些測試,並進行完整的物理模擬),以及在真實飛行硬件上進行的完整的“HITL”測試(同樣是在完整的模擬下進行)。將飛行軟件與模擬器匹配起來是我們最強大的工具,尤其是在真實硬件上運行時。我們可以模擬整個任務,甚至許多詳細的故障場景,這些只需把飛行器硬件放在實驗室桌子上就能完成。

欲瞭解更多詳細技術細節,請查閱:https://www.reddit.com/r/spacex/comments/gxb7j1/we_are_the_spacex_software_team_ask_us_anything/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章