從航天應用看Linux、VxWorks和uC/OSII

信息 6789瀏覽 1評論

地球的資源終會有耗盡的一天,為此各國都有投入資源開發太空科技。方向之一是活用Linux等開源軟件,將資源作最有效運用。在宇宙開發產業中,Linux扮演什么角色?

轉用Linux的理由不外乎成本安全。以國際太空站(ISS)為例,2013年5月負責管理ISS的United Space Alliance(USA),就披露ISS曾經感染病毒,因此將系統都更換為Linux。2014年1月,日本宇宙航空研究開發機構JAXA,就宣布將美日合作的太陽觀測衛星“日出”(SOLAR-B),以及磁氣圏尾部觀測衛星GEOTAIL的衛星管制功能,轉移至Linux平臺上,借此加強系統的靈活性和穩定性。

但這是否意味著Linux能在任何場景下使用呢?當然不是。例如美國的航天飛行器,采用的操作系統是Wind River公司開發的VxWorks 653,這也是中國航天飛行器系統SpaceOS的主要模仿對象。這些系統并沒有使用Linux,原因是航天飛行器的記憶體和CPU都非常的陽春。陽春到什么程度呢?以中國天宮一號為例,其CPU速度是10MHz,記憶體只有2MB,這種配置跑Linux比較費勁,雖然也并非不可能,但如果要裁剪Linux核心才能用,就實在太麻煩了。

為什么航天飛行器的電腦配置都這么差?因為太空輻射、極端溫度等原因,系統首先要求的是可靠性,必須在高溫攝氏100多度、低溫攝氏零下100多度下也可正常運作。換了是一般家用電腦在這種溫度下早就掛了,所以為了對應這個極端環境,主要的硬體都被設計成很耐用的狀態,令“電腦的速度”從來都不是一個重要的指標。另外太空輻射會造成位元翻轉,頻率越高越容易被干擾,所以低頻的設計是主流。

而Linux的“缺點”,就是它不是一個真正的實時操作系統。實時操作系統(RTOS)有 一系列嚴格的定義,包括嚴格按照任務優先級別執行,快速的中斷回應等等,都有非常嚴格的控制。“實時”簡單的說,就是運行一個程序功能,像是進程切換的時 間,是精確而且可估計的。操作系統必須能及時處理外界中斷、通訊等任務。如果不能及時回應導致數據丟失,對于一般系統而言可能問題不大,但對航天飛行器來 說,嚴重的話甚至有可能造成人命傷亡。

家用系統多數情況下,要求的是系統的“均衡運行”。例如你可以同時玩游戲、上網和聽音樂,但實時系統卻是“重要任務先執行,不重要的任務往后放”,設計理念是不一樣的。Linux的進程切換需要在核心進行,用戶狀態和核心狀態的切換,會耗費很多時間。有人會說Linux不是有個實時系統叫RT-Linux嗎?這個說得簡單一點,就是底下是一層RTOS,上面是 Linux 。這種 Linux 復雜度太高,也不能裁剪得太小。

例如嵌入式領域很流行的操作系統μC/OS-II,總共只有兩三千行程序碼,但是已經通過美國的行業認證,可以用在商業飛行器上,證明了其高效穩定性。這么小的系統,需要的是精確可靠。操作系統需要考慮的設計細節非常多,一旦定型修改又非常麻煩,而且需要大量的測試,以NASA為例,每個新開發的功能要進行幾十個甚至上百個的測試。有人說SpaceX不是也有用Linux嗎?是的。但其飛行器上使用的,卻是VxWorks系統。事實上中國的國防軍工行業的自動化控制部分,也是VxWorks的天下。雖然號稱自主知識產權,但實際上仍然以美制系統為主流。

中國能不能寫出自己的通用操作系統呢?我覺得是可以的,只是在這個操作系統之上的應用軟 件一定不夠多,最后沒人會去用。因此目前中國團隊做的操作系統,一般的目的都不是跟微軟競爭,而是滿足一些特殊需要。在基礎領域很多項目沒法做,是因為涉 及專利,基礎理論專利在人家手里。龍芯研發負責人胡偉武說過,技術問題其實不難解決,只要有錢,大可去Intel和AMD挖角。但如果開發軟件等配套服務跟不上,也是沒用的。中國錯過了電腦基礎理論發展的黃金階段,我們現在看到的,實際是幾十年前埋下的苦果。開源技術可以是合法地發展自家科技的契機,關鍵只在乎我們是否愿意掌握。

發表我的評論
取消評論

表情

Hi,您需要填寫昵稱和郵箱!

  • 昵稱 (必填)
  • 郵箱 (必填)
  • 網址

網友最新評論 (1)

  1. 飛機上用的是vxworks653,航天飛行器上是vxworks
    liucong 12個月前 (02-14) 回復 編輯
七星彩走势图2元网官网