[img=航天,計算機,作業系統]https://jf-bucket-public.oss-cn-qingdao.aliyuncs.com/jfperiodical/attached/image/20150706/437759570.jpg[/img]
談到作業系統,人們可能瞭解最多的就是微軟的Windows, 蘋果 的Mac OS以及谷歌的安卓。當然如果你夠資深,可能還會了解Linux、Windows Server 等作業系統。這些系統可以說是計算機的靈魂,直接影響到硬體的操控情況。近日,兩條有關航天航天系統的訊息吸引了我的關注,一個訊息就是中國高分八號衛星在太原成功發射成功。
[img=航天,計算機,作業系統]https://jf-bucket-public.oss-cn-qingdao.aliyuncs.com/jfperiodical/attached/image/20150706/251772761.jpg[/img]
另一條資訊是美國“獵鷹9”火箭發生升空後發生劇烈爆炸並解體。
[img=航天,計算機,作業系統]https://jf-bucket-public.oss-cn-qingdao.aliyuncs.com/jfperiodical/attached/image/20150706/2097363845.jpg[/img]
兩條都是關於航天衛星的資訊。筆者就想了,計算機系統在航天發生對操控的影響有多重要呢?中國與美國的航天計算機的作業系統有何區別呢?他們都用的什麼作業系統呢?帶著這些疑問,筆者查詢了很多資料,在這裡將我的一些思考結合起來跟大家說一下。希望能夠讓大家對航天飛船的作業系統有些瞭解。
航天飛船用什麼作業系統呢?
據瞭解,中國航天科技集團公司五院從2001年就開始研發星載計算機特有的作業系統——SpaceOS,並在2006年首飛成功。那麼SpaceOS為何許人也呢?
首先,我們要了解SpaceOS系統,那麼需要先了解航天飛船的計算機的特點。
航天器上的計算機將面臨來自太空的環境的巨大挑戰。在太空中,航天器的計算機將會遭到子、中子、重離子、電子的轟炸。同時“總劑量效應”和“單粒子效應”是兩種典型的太空射線對空間計算機造成的損害,也是星載計算機同其它地面計算機的最大挑戰。
並且,控制計算機要承受攝氏零下35度到70度的巨大變化,同時還要具有抗輻射、抗靜電、抗震動等能力。在考核試驗綜合應力時,一面震動、一面溫度急劇變化、同時多個條件載入,考驗產品的極限效能都要滿足。
不能關機、不能復位、不能初始化是航天器控制計算機的基本要求,地面上的通用計算機不可能做到一直執行,總有開機、關機的時候,如果出錯,換個零件、升級一下軟體都很容易實現,但是太空計算機如果出錯,不可能更換故障元器件,只能通過及時的故障診斷、故障隔離和系統恢復解決問題。1998年歐洲阿里亞娜5號運載火箭失敗,2011年國外航天器失敗,都是由計算機系統錯誤導致的。
[img=航天,計算機,作業系統]https://jf-bucket-public.oss-cn-qingdao.aliyuncs.com/jfperiodical/attached/image/20150706/-1428874241.jpg[/img]
神州九號太空計算(圖片來源新浪部落格)
太空計算機的外觀與常見的商用計算機有著很大的不同。以神州九號太空計算機為例,它的外形是一個堅固的經過特殊處理的金屬盒子,通過外露的介面與宇宙飛船各種裝置相連線。這樣堅固的構造保證了在起飛和降落階段能夠承載瞬間巨大的“加速度”衝擊和劇烈的震動而不會損壞。並且整個太空計算機總重量的指標是十分苛求的——不能太重,大約是十幾千克吧。
但是,即使是這樣一個簡樸的黑盒子,它的造價是我們常見的商用計算機的500倍以上。這就需要設計開發人員在工作中分外嚴格遵守操作流程。甚至有人開玩笑說,如果不小心燒燬一個晶片,那麼一輛奧迪車就沒了。
好了,介紹完硬體平臺,那麼我們就來說一下SpaceOS
航天計算機的硬體造價非常高,但是其硬體配置在我們看來卻非常的低。據瞭解,502所從1998年開始研製星載計算機,從2006年,自主研發的SpaceOS作業系統成功執行,現在的神舟九號和天宮一號使用的都是用的這個作業系統。
那麼接下來我們來解答上面的各種疑問。為何航天系統不採用Windows 或者Linux這些作業系統呢?
[img=航天,計算機,作業系統]https://jf-bucket-public.oss-cn-qingdao.aliyuncs.com/jfperiodical/attached/image/20150706/-512460534.jpg[/img]
Windows 10
家用系統多數情況下要求系統的均衡執行,能夠滿足我們日常的生活工作需求。比如,網友可以同時玩遊戲,上網,聽音樂,但實時系統都是重要任務先執行,不重要的任務往後放,這種設計理念與航天器的計算機是不一樣的。
Linux/Unix/Windows這些都是通用作業系統,由於兼顧的功能太多,所以其更復雜。航天器的計算機並不需要滿足這麼多功能,只要能夠完成所需的操作就可以了。這也減少了系統出現故障的機率。
而且,航天器的記憶體和CPU都非常弱,據稱,天宮一號的CPU是10MHz的,記憶體是2M,這種配置跑Windows和Linux比較費勁,雖然採用Linux也並非不可能但要裁剪Linux核心確實太麻煩了。但那麼大量的裁剪,誰來保證裁剪後的系統的穩定性?
更致命的是,Linux不是一個硬實時作業系統。航天器對計算機的要求必須是實時的控制。對快速中斷響應,對關中斷的時間有非常嚴格的控制。Linux和Windows他們是民用的作業系統,其核心設計並沒有考慮到這些點,所以Linux不適用於航天領域。
SpaceOS作業系統是否屬於純國貨?
據介紹,我國自主研發,具有自主智慧財產權的實時多工空間作業系統SpaceOS1,歷時5年完成研製,從2006年已成功執行於通訊衛星上,截至2012年3月,使用SpaceOS的飛行器已經發射了33顆星(船),並且這些飛行棋全部穩定執行,未發生任何在軌問題。
中國航天科技集團五院星載計算機首席專家華更新研究員總結說:“我國自主研發的空間計算機的作業系統SpaceOS,已經從引進、消化、吸收,逐步過渡到當前的自主可控。”
[img=航天,計算機,作業系統]https://jf-bucket-public.oss-cn-qingdao.aliyuncs.com/jfperiodical/attached/image/20150706/-40226286.jpg[/img]
VxWorks
之所以說系統是自主研製,這代表著這個系統是我國自己從頭開始寫的,但借鑑了現有VxWorks653系統的程式碼。SpaceOS程式碼非常少,與其說是說是作業系統,實際就是一套硬體管理程式。
那麼中國人能不能寫出自己的桌面通用作業系統呢?完全可以自己開發,但寫一個作業系統容易,中國並不缺技術人員,大可去挖 intel 和AMD的牆角。但是相應的配套服務(比如開發軟體支援等)如果跟不上,那自己寫出桌面作業系統也是沒用的。
所以,無論是哪個行業,其實看似簡單的基礎對一個產業的未來發展有著巨大的作用。我國錯過了計算機基礎理論發展的黃金階段,這就需要我們在後面幾十年去填補這個苦果。這個並不是在很短的時間能夠彌補的,但我們卻不能視而不見,需要對計算機產業的基礎重視起來。