對中國系統(tǒng)軟件的思考與建議

責任編輯:cres

作者:陳懷臨

2022-01-27 12:50:10

摘自:彎曲評論

本文試圖從技術的角度來探討系統(tǒng)軟件,并提出中國系統(tǒng)軟件方面的問題,更為重要的是,中國的機會所在。另外對要達到長遠戰(zhàn)略目標所應該做的一些準備提出一些不成熟的建議。

1. 引言
 
此原文成稿于2004年并發(fā)布于系統(tǒng)計算研究所網站上,并被許多網站轉載,轉眼近四年過去?,F(xiàn)重讀此文,頗有感慨。現(xiàn)校訂整理發(fā)表于此,對一些學術和技術觀點做了一些相應的補充或修改。關于中國系統(tǒng)軟件的評論已經不少。大多數(shù)是從愛國主義與民族產業(yè)的角度來闡述的。本文試圖從技術的角度來探討系統(tǒng)軟件,并提出中國系統(tǒng)軟件方面的問題,更為重要的是,中國的機會所在。另外對要達到長遠戰(zhàn)略目標所應該做的一些準備提出一些不成熟的建議。
 
2. 系統(tǒng)軟件與操作系統(tǒng)
 
系統(tǒng)軟件是一個比較大和泛的概念,很難有一個具體的定義。一般而言,我們可以認為:操作系統(tǒng)(OPERATING SYSTEM),編譯器與工具鏈(COMPILER AND TOOL-CHAIN),編程環(huán)境(特別是高性能編程環(huán)境,如PVM, MPI, GLOBUS等等),中間件(MIDDLEWARE,如CORBA, DCOM)等都屬於系統(tǒng)軟件的范疇。
 
其中,操作系統(tǒng)是系統(tǒng)軟件中的一個重要部份。編程環(huán)境和中間件技術都是與操作系統(tǒng)非常緊密結合在一起的。
 
一個國家在軟件技術方面的強弱基本上可以通過其系統(tǒng)軟件技術,或操作系統(tǒng)的水平來體現(xiàn)。
 
換句話說,一個國家在計算機軟件方面的發(fā)展戰(zhàn)略,必須對操作系統(tǒng)的研發(fā),使用規(guī)劃等等有一個清晰的認識和定位。不能繞過或有意規(guī)避。否則,對其它方面,如應用系統(tǒng),是把握不住發(fā)展脈絡的。
 
操作系統(tǒng)按應用的領域劃分,一般可以分為:桌面操作系統(tǒng)、服務器操作系統(tǒng)、嵌入式操作系統(tǒng)等。比較典型的例子是:
 
桌面操作系統(tǒng): Microsoft Windows Series、Linux、BSD、和其他的一些UNIX的變種。
 
服務器操作系統(tǒng):高檔Microsoft Windows和配套的Cluster。Linux/BSD/Solaris服務器和相應的Cluster技術等,比較熟悉的系統(tǒng)應用如:Google的LINUX機群系統(tǒng),Yahoo的BSD服務器機群系統(tǒng)等等。
 
嵌入式操作系統(tǒng):從概念上來講,這是一個比較模糊和混亂的灰色區(qū)域。從傳統(tǒng)操作系統(tǒng)方面(如LINUX,BSD等),工業(yè)界和開源社區(qū)花了很多力量力圖將非實時(real-time)的LINUX系統(tǒng)向嵌入式領域靠攏,典型的如:Monta Vista Inc 和FSMLabs,另外VXWORKS也有很多的裝機量。這些操作系統(tǒng)一般都應用在中低檔嵌入式系統(tǒng)方面;或高檔系統(tǒng)控制平面(CONTROL PLANE)上。
 
從嵌入式設備公司的角度,對嵌入式操作系統(tǒng)的理解與經典的操作系統(tǒng)理解不一樣,如華為,中興,Cisco, Juniper, Foudry等在路由器,交換機公司。從這些大型通信設備公司的角度,其操作系統(tǒng)包括更廣泛的內容,如CISCO的IOS和最近的HFR/CSR,JUNIPER的JUNOS等等,傳統(tǒng)的操作系統(tǒng)在這些大型的嵌入式系統(tǒng)中扮演著一個內核或基礎的地位,并且被人為的修改以滿足高檔嵌入式系統(tǒng),特別是高端系統(tǒng)特殊的需要。當然有一點可以肯定:即使對於CISCO和JUNIPER這樣的技術力量非常雄厚的公司而言,他們在傳統(tǒng)操作系統(tǒng)方面的能力也不強,這也是為什么他們系統(tǒng)的基礎仍然是傳統(tǒng)的操作系統(tǒng),比如CISCO 的HFR建立在QNX/NEUTRINO微內核(Micro-Kernel)的基礎上。JUNOS的控制平面建立在BSD的基礎上,數(shù)據(jù)平面(DATA PLANE)軟件部分建立在一個微內核上。有一點要注意:CISCO和JUNIPER的重點是在其數(shù)據(jù)平面。但是控制平面軟件工作量和復雜性更大,要求更高。
 
在嵌入式操作系統(tǒng)方面,另外一個巨大的使用領域是Mission Critical Systems. 比如,美國宇航局(NASA)的火星探索器上的軟件系統(tǒng),大型軍事監(jiān)控系統(tǒng),航空控制系統(tǒng)等等。這方面要注意的公司是Green Hills Inc. 筆者認為,NASA目前仍然沒有放棄VXWORKS的主要原因是代碼的歷史遺留(Legacy)問題。目前在軍事方面的OS應用,Green Hills已經取得了主導地位。Green Hills RTOS系統(tǒng)的核心是ARINC-653。在這方面,開源的LINUX,BSD 等等向ARINC-653方面發(fā)展的可能性不大,即使IBM在LINUX后面出錢出力。單靠自由軟件的力量在Mission Critical系統(tǒng)方面有所作為可能性不大。
 
從上述各個方面的闡述分析,我們要考察的是我們的貢獻在哪里?更重要的是,我們的重點應該放在哪里?
 
3. 中國系統(tǒng)軟件的現(xiàn)狀
 
隨著芯片設計產業(yè)在中國的逐步發(fā)展,中國的系統(tǒng)軟件研發(fā)面臨著一個進退維谷的境界。
 
最近幾年來,大陸陸續(xù)推出了一系列的中低端的通用CPU,SoC和一些專用的DSP芯片。通過發(fā)布的信息,可以了解一些性能參數(shù),比如:
 
“據(jù)參與項目開發(fā)的技術人員介紹,目前的龍芯2號最高頻率為300MHz,功耗1W-2W,成品率約為80%左右。通過使用相關測試對龍芯2號的性能分析表明,相同主頻下龍芯2號的性能已經明顯超過PII,達到PIII的水平,設計人員稱龍芯2號的設計SPEC CPU2000分值可達到300分以上,設計頻率在500MHz以上時性能可與1GHz以上的PIII或PIV的性能相當。”
 
從上述參數(shù)可以看見,通用CPU設計方面我們已經開始起步并且積累了一定的工程經驗。關于龍芯的更多資料可參閱www.xtrj.org/godson. 雖然對于硅谷的CPU或網絡處理器公司而言,做一個MIPS的CORE的CPU是一個相對并不復雜的工程項目,但畢竟是我們自己從無到有走了一回。工程經驗價值很大。
 
但我們在系統(tǒng)軟件領域基本上是沒有任何量化的成績?;臼荓INUX, BSD等的一些相對簡單的移植,基本上還沒有涉及到BSP的地步。KERNEL的重要工作和貢獻就更無從談起。我們在商業(yè)操作系統(tǒng)方面的工作表現(xiàn)比較清晰,也就是基本上沒有真正市場化的系統(tǒng)。在對開源操作系統(tǒng)方面的參與和貢獻方面,通常幾個標志性的判別指數(shù)是:有多少人能將代碼加LINUX, BSD的代碼系統(tǒng)里?應該是不多。有幾個有影響力的系統(tǒng)級的項目在http://sourceforge.net上?引用數(shù)是多少被用戶下載的數(shù)量是多少?開源社區(qū)的人參加共建的數(shù)目是多少?
 
我們的貢獻基本上接近為零。這就是現(xiàn)實。沒有任何非常突出的貢獻。
 
我國的商業(yè)系統(tǒng)軟件公司其實并不少。但好像主要還是在漢化方面和用戶界面的調整上做一些工作,再深一點的,就是對不同的用戶需求,做一些相應的定制裁剪工作,比如,對企業(yè)單位的系統(tǒng)集成,調試和安裝。紅旗LINUX是其中比較典型的一個代表。下面的的鏈接是紅旗LINUX的產品介紹:http://www.redflag-linux.com/chanpin/index.php。在其網站上,對其產品的介紹是這樣描述的:“紅旗軟件提供高端服務器操作系統(tǒng)、集群解決方案、桌面版操作系統(tǒng)、嵌入式系統(tǒng)以及技術支持服務和培訓等一系列的Linux 產品和服務,開創(chuàng)全新的計算體驗,幫助企業(yè)增強其整體競爭力,提高個人工作效率,將用戶業(yè)務價值和Linux 的自由開放精神有力地結合在一起。”
 
我們可以看出紅旗LINUX的產品和市場方向:LINUX為操作系統(tǒng)的數(shù)據(jù)中心服務器,企業(yè)服務器,LINUX桌面系統(tǒng),和嵌入式產品等等。下圖所示是紅旗Linux描述其“紅旗核心技術”的體系結構。
 
 
在紅旗Linux的網站上,引人注目的是這樣的詞匯:“紅旗嵌入式核心技術框架”。從圖中,筆者無法判斷紅旗LINUX的技術在那里,對開源社區(qū)的貢獻在那里。在Linux核心的工作在那里。筆者的觀點是:還沒有或者沒有公布。與之相反, MVISTAIN(www.mvista.com )在對LINUX KERNEL PREEMTPTION對方面的貢獻很大,其許多工作已經進入LINUX 2.6中。另外,MVISTA開發(fā)的大量工具也為基於LINUX的應用程序開發(fā)提供了非常重要的支持。
 
FSMLabs 是另外一個在LINUX領域,特別是實時方面,比較引人注意的一個。他們通過一個LKM的方式將原來LINUX的中斷處理程序和調度截獲,并將自己的調度算法放入其中,其模塊稱為RTCORE。通過提供一套RT_THREAD的編程方式,用戶可以編寫EITHER 用戶態(tài)的實時程序OR核心態(tài)的實時程序。這種顯示的將UNIXDOMAI與REAL_TIME DOMAIN在調度上分開的方法在一定的程度上解決了經典UNIX(如LINUX,BSD)等等操作系統(tǒng)核心操作的非確定性而帶來的非實時性的重要問題,比如:要支持高速的硬實時的應用;控制平面和數(shù)據(jù)平面沒有分開的中高檔網絡通信設備(如路由器,交換機,防火墻等等)。
 
上述是舉了兩個例子來說明別人的工作在什么方面。當然,MVISTA和RTLINUX在技術上多有問題需要解決。筆者會在下面的章節(jié)中討論。
 
總之,通過閱讀紅旗LINUX其他產品的介紹,我們大概可以得出這樣的結論:紅旗LINUX基本上還是一個LINUX產品的集成和發(fā)布商,基本上無單獨二次深層開發(fā)的計劃或能力。
 
在整理此文時,筆者發(fā)現(xiàn),紅旗Linux現(xiàn)在已經將飛漫軟件公司的Linux為基礎的MiniGUI圖形系統(tǒng)融入其紅旗Linux的嵌入式解決方案中。這確實是一個不錯的進步。在2004年這篇文章成文時,還沒有這個集成的方案。筆者認為,MiniGUI的對低檔嵌入式設備或便攜式設備(內存都比較小)是一個不錯的應用軟件。筆者將在以后專門寫一篇評論文章介紹飛漫軟件。
 
“一葉而知秋”。通過對紅旗LINUX的技術結構的考察,我們可以這樣認為,國內其他的類似的做Linux銷售、集成、定制的操作系統(tǒng)公司應該都處于這個層面上。
 
2006年,國防科技大學發(fā)布了其麒麟操作系統(tǒng)。這一新聞在網絡上引起了激烈的討論。許多BSD的技術人員通過分析得出麒麟操作系統(tǒng)其實是FreeBSD的一個克隆。其中一篇從內核相似性分析的技術文章引起了廣泛的注意:麒麟操作系統(tǒng)內核同其他操作系統(tǒng)內核的相似性分析。從文章作者的數(shù)據(jù)分析,其結論是:“Kylin 2.0.0和FreeBSD 5.3的相似度達到了60.26%,與FreeBSD也達到了59.04%的相似度”, “從已知的數(shù)據(jù)我們只能說,創(chuàng)新可能只有10%到20%之間”。
 
 
其實就麒麟操作系統(tǒng)的創(chuàng)新性和獨立研發(fā)的程度,國防科技大學,在受到各方面質疑后,也公開表示麒麟操作系統(tǒng)不是一個獨立研發(fā)的系統(tǒng),而是一個充分利用BSD社區(qū)的微內核Mach和FreeBSD5.x的基礎上經過一些算法修改和增添一些新功能而來的。下圖所示為國防科技大學的相關聲明:
 


 
通過上述的數(shù)據(jù)和文字,筆者認為,在肯定國防科技大學的確做出了非常多的獨立自主的技術開發(fā)之外,也要清醒的認識到,麒麟操作系統(tǒng)離操作系統(tǒng)核心的關鍵技術的創(chuàng)新還是有不少差距的。關于筆者對麒麟操作系統(tǒng)的更多評論可參閱文章:對國防科技大學麒麟操作系統(tǒng)的思考一文。
 
下面我們來考察一下國內的大型通信監(jiān)控軟件的發(fā)展情況。
 
華為,港灣等國內的高端嵌入式系統(tǒng)好像沒有在系統(tǒng)軟件方面有自己的東西。從各方面的消息來看,許多產品是基于VXWORKS,Linux和其他一些第三方的操作系統(tǒng)。另外華為與CISCO的官司也是弄得路人皆知。筆者不知華為等高端產品數(shù)據(jù)平面上的軟件是什么體系結構。但自己寫的核心的可能性不大。當然,華為的產品為我們國家擋住了歐美相應產品的沖擊,這是有目共睹的和值得肯定的。
 
筆者認為系統(tǒng)軟件的研發(fā)在高校相對工業(yè)界要差一點?;旧蠜]有可值得特別提及的地方。85計劃的操作系統(tǒng)部分應該是入了許多錢的。“青鳥”計劃曾經投入了許多人力物力。結果我們大家都已經比較了解。一個非常可惜的投入和產出比。
 
科學院計算所“曙光”CLUSTER計算機是我們在服務器和高性能計算方面的一個成果??上部少R。但從技術上來看,問題也是很多。筆者有幸在計算所一個出差的機會參加國家智能中心的研究生論文答辯會。從其中心的研究生論文答辯中,大概可得知曙光機的體系結構一二。其基本上是一個機群計算的體系結構。其操作系統(tǒng)用的是IBM的AIX 或者是Linux. 在操作系統(tǒng)之上,構架了一系列的中間件包括:MPI,PVM和實時CORBA(TAO). 曙光用TAO來構架了其實時事件服務處理和整個機器的高可靠性系統(tǒng)。MPI或PVM是其并行計算的環(huán)境。當時,智能中心的主任,博導孫教授說,為什么把高可靠性系統(tǒng)構架在CORBA這么高的概念/層出上?HA能發(fā)現(xiàn)一個節(jié)點服務崩潰的速度是多少?這些都是非常好的問題。
 
從筆者的角度看,曙光的存在是非常令人振奮的,是我們的驕傲。但同時,我們要看到不足。筆者知道節(jié)點通信的快速硬件設備是自己設計的。這是非常讓人高興的事情。但在軟件方面,筆者明顯感到吃力和沒有足夠的力量。
 
另外,聯(lián)想也設計了類似曙光的機器并和計算所競爭。這是個好事情。一方面我們知道曙光的技術含量不是高不可攀。另一方面,有競爭,在高性能計算方面我們才能提高。
 
聯(lián)想應該是國內一個很大的計算機公司,但總體感覺其仍然是賣機器的。就象美國的DELL公司。當然沒有什么不好。雖然擁有一個龐大的聯(lián)想研究院,但聯(lián)想好像沒有在獨立研發(fā)方面作過什么讓筆者引目的東西.
 
筆者非常寄希望于高校在GRID COMPUTING上不要錯過為我們將來的高性能計算作出基礎和培養(yǎng)人才的工作。在系統(tǒng)實現(xiàn)方面,筆者對高校信心不大。這一點與目前高校教師的科研素質是密切相關的。
 
我們有了龍芯?如果沒有系統(tǒng)軟件?就像缺少了重要的一環(huán)。芯片設計與系統(tǒng)軟件的配合是緊密相關的。缺少對系統(tǒng)軟件的思考,龍芯或將來的其他芯往那份走?拼高端?還是SoC,去搶占嵌入式系統(tǒng)和MISSION CRITICAL 系統(tǒng)?
 
最近,一些鑒定會上,一些發(fā)布會上,網絡上,一些德高望重的老教授和院士們都情緒激動的表示中國一定要堅持LINUX的道路,去和微軟斗。
 
有時,是乎LINUX或開源社區(qū)成了我們系統(tǒng)軟件產業(yè)的救星。這是正確的嗎?我們對系統(tǒng)軟件的理解只在LINUX這個層次嗎?有沒有其他的問題我們忽視了?我們對LINUX的正確態(tài)度應該是什么?在開源領域,我們的立場應該是什么?
 
4. 系統(tǒng)軟件發(fā)展趨勢分析與下一代系統(tǒng)軟件
 
在桌面系統(tǒng)上,微軟基本上控制了整個市場。LINUX/BSD/SOLARIS等的占用率基本上無可能與其對抗。放眼硅谷大小公司,不用Windows Office軟件的好像不多。應用程序決定一切。WIN32大量的應用使得用戶不得不用Windows.
 
在(高端)服務器方面,LINUX/BSD有一席之地。IBM在這方面下功夫不小。當然其真正動機絕非喜歡“自由”的軟件。分布式數(shù)據(jù)庫和HA技術都是高性能服務器的要求。
 
嵌入式系統(tǒng)中,微軟目前無任何優(yōu)勢;LINUX等在低端PDA方面有一定的市場。另外要注意的是:用在思科的HFR上的微內核QNX/NEUTRINO在智能化汽車市場上是贏家. 在高端嵌入式系統(tǒng)中,目前無任何操作系統(tǒng)能很好的勝任,微內核技術有可能是最后的贏家。思科花費5年之久宣布了其最新的其與QNX/NEUTRINO的網絡操作系統(tǒng)。其用心良苦可見一斑。也讓我們知道,當一個真正的大系統(tǒng)到了一定地步后,其內核的基礎架構的取向是非常重要的。而這些不是靠幾個人憑空決定的,而是多少用戶反饋的經驗中產生的,是從多少個公司集成整合中的痛苦中獲得的判斷力。
 
在MISSION CRITICAL系統(tǒng)中,VXWORKS和GREEN HILLS的INTEGRITY占據(jù)一定市場。筆者認為GREEN HILLS技術上應該贏。其實,當年NASA的Mars Lander由於優(yōu)先級翻轉(Priority Inversion)出事后,就應該計劃將VXWORKS逐步淘汰。
 
筆者認為,隨著高檔NP網絡處理器(NETWORK PROCESSOR)或網絡服務處理器(Network Service Processor)在今后一兩年的出現(xiàn),業(yè)界對傳統(tǒng)的NP的概念將徹底改變。原來,一談起NP,就是其非常局限的指令內存和非常少的數(shù)據(jù)內存。很少的和功能非常局限的功能引擎。一兩年后,高檔的NP將是一系列非常高性能的網絡服務處理器–可以同時擁有10多個通用CPU CORE,例如,MIPS CORE, ARM CORE等等;各種多個的網絡處理,安全處理引擎等。
 
【注:筆者在2004年的上述預測,在2006,2007年左右基本上全部實現(xiàn)。目前高端網絡處理器的浪潮非常兇猛,沖擊著下一代高端網絡設備的體現(xiàn)結構的設計?!?/div>
 
這些芯片的出現(xiàn),將會對系統(tǒng)軟件,特別是嵌入式系統(tǒng)軟件有很大的影響。
 
在高端嵌入式系統(tǒng)中,一般而言系統(tǒng)分為:控制平面和數(shù)據(jù)平面??刂破矫嬉话闶遣捎媒涍^修改的操作系統(tǒng)并在其上運行那些實時性要求不高的應用程序或協(xié)議。對那些需要高性能的數(shù)據(jù)處理功能模塊,都放在數(shù)據(jù)平面上。
 
對數(shù)據(jù)平面的理解,傳統(tǒng)的理解是:ASIC, FPGA, SWITCH FABRIC和一些其它輔助作用的網絡處理器(NP)。在數(shù)據(jù)平面上,基本上無軟件成分??刂破矫婧蛿?shù)據(jù)平面通過內
部以太接口, PCI或其他高速BUS來通信交換信息。
 
對上述有了一個理解后,我們就會理解思科, JUNIPER,3COM, FOUNDARY,華為,中興等公司的技術最重要的一面就是ASIC的研發(fā)。
 
為了贏得市場份額,上述公司都不得不花費大量的人力物力去不斷的開發(fā)下一代ASIC。其中一個重要的工作就是不斷將原來在控制平面上的邏輯、算法或協(xié)議,為了性能或其他的原因,做到數(shù)據(jù)平面上。
 
產品的速度,性能,高可靠性–這就是決定這些公司能否生存和持續(xù)性發(fā)展的唯一標志。
 
在沒有高端網絡服務處理器之前,上述的工作的投入非常大;工程風險也非常高。一個ASIC的成敗基本上影響一個整體產品的成敗。一個芯片的一個設計缺陷經常會導致一個公司的產品推遲發(fā)布,或一個產品的失敗。
 
從技術的角度考察,筆者認為,這一切都來自ASIC的不靈活性。
 
在沒有高端NP之前,數(shù)據(jù)平面沒有選擇。只能在ASIC上賭博與打拼。NP只能起一個協(xié)處理器地位,比如,做一些簡單的分類(Classify)。從而使得在數(shù)據(jù)平面上的工作很局限。仍然有大量的邏輯,算法或協(xié)議不等不放在控制平面上運行。而由於控制平面的通用CPU的局限性和操作系統(tǒng)的局限性,除了由于與大量的應用程序共同分享資源而帶來的穩(wěn)定性問題之外,通常一個很難處理的技術問題就是:控制平面系統(tǒng)的DoS(Deny of Service)而使得整個控制平面停止響應,最后導致整個系統(tǒng)崩潰。
 
有了高端網絡服務處理器之后,筆者認為,整個局面將獲得很大的改進。
 
將會有更多的公司可以進入高端市場。以前ASIC研發(fā)是一個高門檻。資金的投入與芯片設計成功的風險使得大量的公司只敢在低端市場徘徊。有了高檔NP,原來在ASIC中邏輯可以在NP中以軟件實現(xiàn)。性能卻不會下降很多。帶來的靈活性巨大。
 
更多的控制平面的邏輯將被較容易的挪到數(shù)據(jù)平面上??刂破矫娴呢撦d將大大減低。整個大系統(tǒng)的可管理性將很大提高。
 
公司產品的更新將會非常靈活。原來ASIC 芯片回來之后,很多的功能就做死了。一但一個預定的功能有問題,帶來的后果是整個產品非常被動。而在有高端網絡處理器之后,產品線對客戶問題的處理將會比原來反應更迅速。
 
這上述的一切是因為:傳統(tǒng)以ASIC為主的數(shù)據(jù)平面體系結構將會被以軟件為主的數(shù)據(jù)平面的體系結構所代替!以協(xié)處理器身份為主的傳統(tǒng)網絡處理器NP(上面運行而且只能運行一些簡單的ENINE-SIMD和MIMD數(shù)據(jù)處理方式)將會被高端網絡服務處理器所替代!
 
這個深層的變化對系統(tǒng)軟件提出了一個非常新的要求—-數(shù)據(jù)平面操作系統(tǒng)。
 
要在一個擁有10多個CPU CORE ON-CHIP的處理器上運行復雜的數(shù)據(jù)平面邏輯,沒有一個數(shù)據(jù)平面軟件系統(tǒng)內核(Kernel/OS)是不現(xiàn)實的。這里會涉及大量的ASIC驅動,各個CPU間的數(shù)據(jù)同步,臨界區(qū)操作,鎖操作,與后臺的控制平面的合作等等。
 
對這樣一個數(shù)據(jù)平面操作系統(tǒng)的要求是什么?
 
高性能(HIGH PERFORMANCE);高實時性( REAL-TIME);簡單和友善的多線程編程環(huán)境(SIMPLE AND NICE MULTI-THREAD PROGRAMMING MODEL);良好的與控制平面的通信機制。運行時系統(tǒng)檢測和量化分析工具(SYSTE PROFILINGTOOLS);小而緊湊的代碼( FOOT-PRINT)等等。
 
這一切的上述要求,使得在控制平面上運行的傳統(tǒng)操作系統(tǒng)(LINUX/BSD)等等都不能很好的勝任。
 
以LINUX為例,直到2.6, LINUX才正式OFFICIALLY支持內核搶先機制(KERNEL PREEMPTIVE)。這對LINUX的實時性是一個很好的改進。但在中斷的延遲,一些內核重要數(shù)據(jù)結構上,系統(tǒng)仍然無法支持很好的性能。其本質原因是:UNIX的設計不是為了實時系統(tǒng)。Monothlithic 操作系統(tǒng)的缺點不是一個實時系統(tǒng)的補?。≒ATCH)所能完全解決的。另外,為了避免大量系統(tǒng)調用(SYSTEM CALL)的代價,大量基於LINUX/BSD的開發(fā)是在內核代碼里面。從而使得內核越來越大,復雜度的增加使得系統(tǒng)的穩(wěn)定性極端降低。一個非法指針就可以非常容易的使得整個嵌入式設備全部崩潰。這樣的事情是高端嵌入式設備公司非常害怕和要盡量避免的。
 
RTLINUX/RTCORE 和RTAI確實解決了部分實時應用的問題。但其解決問題的思路是:將UNIX 部分與REAL-TIME 部分顯示的劃分開。其帶來的缺點明顯可見:
 
* 大量需要軟實時(SOFT REAL-TIME)的UNIX部分的應用程序非常有可能被餓死(STARVING),例如路由協(xié)議部分;
* 不好的編程環(huán)境:缺乏完整的POSIX API??梢浦残院懿缓?。
*系統(tǒng)缺乏靈活性。很難在一個大系統(tǒng)的范疇內去考慮一個產品的設計。
* 對人員的技術要求和額外培訓的要求大大增加。
 
這些缺點的原因其實也很簡單:UNIX非實時設計的本質。RTCORE 和RTAI本質上還是一個補充的技術補丁,解決了部分問題,但帶來更多的問題。
 
那么微內核(Micro-Kernel)能否勝任數(shù)據(jù)平面的OS/Kernel的工作呢?
 
筆者認為:微內核是相對較好的一個數(shù)據(jù)平面操作系統(tǒng)的選擇。但是也存在一些缺點需要解決:
 
* 對多個,8,10,16,32或更多CPU CORE的支持。
* 對高端網絡服務處理器中的Interconnect和硬件通信機制的相應操作系統(tǒng)方面的優(yōu)化。
* 對消息傳遞機制性能的優(yōu)化。
* 對控制平面操作系統(tǒng)合作的考慮。大多數(shù)控制平面一般都使用MONOLITHIC OS,如Linux, BSD等。
* 對各種ASIC, FPGA等提供的軟件調試支持。通常操作系統(tǒng)公司對嵌入式系統(tǒng)的理解不深,例如,對CACHE,MEMCOPY, DMA等等的支持方式。
 
有上述分析可見,傳統(tǒng)的各種操作系統(tǒng)都不能很好的勝任驅動高端網絡服務處理器而擔當數(shù)據(jù)平面操作系統(tǒng)的重任。
 
筆者認為:這就是中國系統(tǒng)軟件業(yè)的機會所在。
 
5. 中國系統(tǒng)軟件的機遇和契機
 
中國系統(tǒng)軟件起步確實晚了,但仍有博弈的機會。筆者在前述幾節(jié)的分析,特別是大型實時監(jiān)控系統(tǒng)的數(shù)據(jù)平面操作系統(tǒng)就是一個良好的契機。
 
沒有系統(tǒng)軟件,國家自主研發(fā)通用CPU, SoC等等的戰(zhàn)略意義就不可能得到最大的擴展。
 
我們要清醒的考察自己的處境,并制定自己的戰(zhàn)略和戰(zhàn)術路線。
 
筆者認為在系統(tǒng)軟件方面,我們已經就緒。是可以有一番作為的時候了。筆者根據(jù)如下數(shù)據(jù)和觀察做的這番判斷。
 
* 系統(tǒng)軟件的科技人員的數(shù)量已經很大。在民間,由於有開源社區(qū)等操作系統(tǒng)的參照性,我們已經具備大量熟悉操作系統(tǒng)核心算法,核心數(shù)據(jù)結構的科技人員。這些人員大都散布在各個科技公司之中。在高校的相對較少。
 
* 隨著國內出現(xiàn)一些具有一定實力,能與國外大公司相抗衡的公司,在系統(tǒng)軟件方面的發(fā)展的要求將逐步體現(xiàn)出來。否則就會出現(xiàn)更多的類似于華為與思科的官司,我們也可以了解:沒有系統(tǒng)軟件的支撐的艱辛。高科技公司在走向國際化道路上是舉步艱難。
 
*大量的海外中國學者和工程師們正在通過雙贏的方式,用各種自覺的,不自覺的方式影響著國內的同行,彼此交流。
 
* 在操作系統(tǒng)具體開發(fā)上,其真正的難度是POSIX支持的工作量。但由於具備開源社區(qū),我們只要開發(fā)核心部分即可。許多其他部分都可以重用。另外,對專用系統(tǒng),根本不需要POSIX的支持。我們的目的不是通用系統(tǒng)。
 
鑒于以上觀點,下面是筆者的一些個人建議:
 
*CPU芯片設計上,高端通用CPU時機過早,要大力發(fā)展DSP, SoC和ASIP(APPLICATION SPECIFIC INSTRUCTION PROCESSOR)。【筆者注:ASIP:應用系統(tǒng)專用指令處理器】
 
嵌入式設備是中國的一個非常好的機會。一定不能錯過。高端CPU設計方面,我們的實力相差實在太遠。非一日之功。要再忍耐5,10年方有一搏之力。芯片設計的目標對了,系統(tǒng)軟件就不會迷失方向。通過芯片設計產業(yè),也可以帶動我國在高性能編譯,TOOL-CHAIN方面的人才培養(yǎng)。目前,我們非常缺乏這方面的人才。
 
*切勿將人力和物力放在通用操作系統(tǒng)方面。
 
通用操作系統(tǒng)對國家的戰(zhàn)略意義不大。這方面,讓LINUX與WINDOWS去相互制約。在桌面系統(tǒng)上,不應該有國家級的投資。讓市場去說話。只要作LINUX發(fā)行商有商機,自然有人會在其中。要把其當作一個單純的商業(yè)行為。不管什么版本的LINUX,都支持和歡迎。
 
*傾全力保護和發(fā)展ASOS(Application Specific Operating System). 【筆者注:ASOS:應用系統(tǒng)專用操作系統(tǒng)】
 
大力發(fā)展針對具體行業(yè)的,有國家戰(zhàn)略意義的,專用系統(tǒng)。在核心軟件方面務必開發(fā)出自己的基礎軟件。就象筆者已經闡述的,如果不需要POSIX支持,一個很好的實時操作系統(tǒng)并非難事。POSIX只會在通用操作系統(tǒng)方面有用。比如一個微內核系統(tǒng)可以足夠支持一個大型的監(jiān)控軟件。通用的UNIX,如LINUX, BSD, Solaris都可以被模擬在其上作為一個服務器進程。
 
* 開放民間研究機構參與國家項目申請
 
目前,項目經費嚴重傾向于幾個高校和科學院。但是從他們的的產出來看,這種方式要調整。民間企業(yè)也應該可以競爭國家項目。要消減高校在系統(tǒng)軟件,體系結構方面的投資,而改為投向具有真正R&D實力的企業(yè)。在這個領域,工程的難度比科研的難度大很多。系統(tǒng)軟件都是在測試版上一點一點調出來的,絕不可能是想和寫出來的。國內高校在這方面的技術儲備和工程經驗明顯薄弱。
 
*留住人才
 
系統(tǒng)軟件和體系結構方面務必要國家支持。完全扔到市場上,很有可能會夭折。原因是:我們起步比較晚。很難接受工業(yè)界的殘酷競爭。所以,我們要做系統(tǒng)軟件,一定要有自己的人才。中國現(xiàn)在明顯缺乏工業(yè)界的研發(fā)實驗室和研究院。比如IBM Labs, MicrosoftLabs,SUN Labs, HP Labs, SRI, XEROX PARC, INTEL Labs, Bell labs等等。光靠科學院是不可能的。而且科學院離真正的技術需求還是有一定距離的。另外要留住人才,要在輿論上冷卻“洋買辦”,鼓勵本土精英。

鏈接已復制,快去分享吧

企業(yè)網版權所有?2010-2024 京ICP備09108050號-6京公網安備 11010502049343號