好奇號的固件刷新是一個怎樣的過程?為什麼需要在著陸之後幾天給它刷新系統?

新聞鏈接:
http://www.evolife.cn/html/2012/66300.html

上周登錄火星的好奇號火星漫遊車準備下載一個新版本的飛行軟體,NASA JPL資深飛行軟體工程師Steve Scandore說,為了讓軟體正常工作,他們每一步都不能出錯。「你必須想像到,假如出錯,這就將是你最後一次聽到漫遊車傳來的聲音。你當然也不想成為在漫遊車與你失去聯繫前最後的一位操作者。」
和一般的遠程操控升級不同的是,在好奇號一端並沒有人類進行操作,一切都交給機器來應付。「我們沒有辦法詢問對方是否出現了問題,而只能把代碼發送過去然後等待結果」。


好奇號有兩個用途不同的操作系統,一個是下圖中的 R9,用于飛船降落時的 EDL(入軌、下降和著陸)階段,另外一個 R10,用於驅動好奇號上的科學儀器,比如 ChemCam 或 SAM 等等,由於好奇號需要驅動的科學儀器眾多,機載儲存空間難以滿足,所以要等到著陸,好奇號自檢完畢後,換裝操作系統。

軟體從 JPL 控制中心發出,經過 Deep Space Network 向火星發送,再經過 NASA 位於火星軌道上的衛星作為中繼轉發給地面上好奇號。安裝的過程如圖:第一天(Sol 5,8月10號)R10 地面固件先刷入好奇號的備份處理器,但不進行安裝操作。隔日,在備份處理器上安裝新操作系統。第三天,地面固件刷入主處理器。第四天,主處理器安裝新的操作系統。


NASA的解釋是這樣的,因為存儲空間有限,火星車是預裝降落控制程序出發的,在成功降落後,降落控制程序部分就永遠都用不到了,可以刪除這部分程序安裝更多的科研和尋路相關的程序。


好奇號的控制晶元 256M的RAM 2GB的快閃記憶體 這是史前世紀的配置 如果不進行固件刷新
對機器本身 對火星任務 都有很大隱患


推薦閱讀:

請問,多個線程可以讀一個變數,只有一個線程可以對這個變數進行寫,到底要不要加鎖?
動不動就 32GB 以上內存的伺服器真需要關心內存碎片問題嗎?
程序員的鄙視鏈是什麼?
使用 Linux 的人一般是出於什麼原因選擇這個系統?
為何 Linus 一個人就能寫出這麼強的系統,中國舉全國之力都做不出來?

TAG:好奇號 | 火星探測 | 美國國家航空航天局(NASA) | 操作系統 |