西安外事學院工學院 蘇培華
嵌入式操作系統EOS(Embedded Operating System)是一種用途廣泛的系統軟件,它與嵌入式系統密不可分。嵌入式系統主要由嵌入式微處理器、外圍硬件設備、嵌入式操作系統以及用戶的應用程序等四個部分組成,它是集軟硬件于一體的可獨立工作的“器件”。
嵌入式技術的發展,大致經歷了四個階段:第一階段是以單芯片為核心的可編程控制器形式的系統,同時具有與監測、伺服、指示設備相配合的功能。第二階段是以嵌入式CPU為基礎、以簡單操作系統為核心的嵌入式系統。第三階段是以嵌入式操作系統為標志的嵌入式系統。第四階段是以基于Internet為標志的嵌入式系統,這是一個正在迅速發展的階段。嵌入式系統的發展對嵌入式操作系統提出了更高的要求。因此,對嵌入式操作系統的結構、設計、用戶界面等諸多方面進行深入研究,將有助于嵌入式系統的應用和發展。
國外嵌入式操作系統已經從簡單走向成熟,主要有Vxwork、QNX、Palm OS、Windows CE等。國內的嵌入式操作系統研究開發有2種類型,一類是基于國外操作系統二次開發完成的,如海信的基于Windows CE的機頂盒系統;另一類是中國自主開發的嵌入式操作系統,如凱思集團公司自主研制開發的嵌入式操作系統Hopen OS(“女媧計劃”)等。
Windows CE內核較小,能作為一種嵌入式操作系統應用到工業控制等領域。其優點在于便攜性、提供對微處理器的選擇以及非強行的電源管理功能。內置的標準通信能力使Windows CE能夠訪問Internet并收發E-mail或瀏覽Web。除此之外,Windows CE特有的與Windows類似的用戶界面使最終用戶易于使用。Windows CE的缺點是速度慢、效率低、價格偏高、開發應用程序相對較難。
3Com公司的Palm OS在掌上電腦和PDA市場上獨占其霸主地位,它有開放的操作系統應用程序接口(API),開發商可根據需要自行開發所需的應用程序。
QNX是由加拿大QSSL公司開發的分布式實時操作系統,它由微內核和一組共操作的進程組成,具有高度的伸縮性,可靈活地剪裁,最小配置只占用幾十KB內存。因此,可以廣泛地嵌入到智能機器、智能儀器儀表、機頂盒、通訊設備、PDA等應用中去。
Hopen OS是凱思集團自主研制開發的嵌入式操作系統,由一個體積很小的內核及一些可以根據需要進行定制的系統模塊組成。其核心Hopen Kernel一般為10KB左右大小,占用空間小,并具有實時、多任務、多線程的系統特征。
在眾多的實時操作系統和嵌入式操作系統產品中,WindRiver公司的VxWorks是較為有特色的一種實時操作系統。VxWorks支持各種工業標準,包括POSIX、ANSI C和TCP/IP網絡協議。VxWorks運行系統的核心是一個高效率的微內核,該微內核支持各種實時功能,包括快速多任務處理、中斷支持、搶占式和輪轉式調度。微內核設計減輕了系統負載并可快速響應外部事件。在美國宇航局的“極地登陸者”號、“深空二號”和火星氣候軌道器等登陸火星探測器上,就采用了VxWorks,負責火星探測器全部飛行控制,包括飛行糾正、載體自旋和降落時的高度控制等,而且還負責數據收集和與地球的通信工作。目前在全世界裝有VxWorks系統的智能設備數以百萬計,其應用范圍遍及互聯網、電信和數據通信、數字影像、網絡、醫學、計算機外設、汽車、火控、導航與制導、航空、指揮、控制、通信和情報、聲納與雷達、空間與導彈系統、模擬和測試等眾多領域。
Linux是個與生俱來的網絡操作系統,成熟而且穩定。Linux是源代碼開放軟件,不存在黑箱技術,任何人都可以修改它,或者用它開發自己的產品。Linux系統是可以定制的,系統內核目前已經可以做得很小。一個帶有中文系統及圖形化界面的核心程序也可以做到不足1MB,而且同樣穩定。Linux作為一種可裁減的軟件平臺系統,是發展未來嵌入設備產品的絕佳資源,遍布全球的眾多Linux愛好者又能給予Linux開發者強大的技術支持。因此,Linux作為嵌入式系統新的選擇,是非常有發展前途的。
(1)與硬件芯片的緊密結合
后PC時代的智能設備已經逐漸地模糊了硬件與軟件的界限,SOC系統(System On Chip)的發展就是這種軟硬件無縫結合趨勢的證明。隨著處理器片內微碼的發展,在將來可能出現在處理器片內嵌進操作系統的代碼模塊。
嵌入式Linux的一大特點是:與硬件芯片(如SOC等)的緊密結合。它不是一個純軟件的Linux系統,而比一般操作系統更加接近于硬件。嵌入式Linux的進一步發展,逐步地具備了嵌入式RTOS的一切特征:實時性及與嵌入式處理器的緊密結合。
(2)開放的源代碼
嵌入式Linux的另一大特點是:代碼的開放性。代碼的開放性是與后PC時代的智能設備的多樣性相適應的。代碼的開放性主要體現在源代碼可獲得上,Linux代碼開發就像是“集市式”開發,任意選擇并按自己的意愿整合出新的產品。
對于嵌入式Linux,事實上是把BIOS層的功能實現在Linux的driver層。目前,在Linux領域,已經出現了專門為Linux操作系統定制的自由軟件的BIOS代碼,并在多款主板上實現此類的BIOS層功能。
(3)嵌入式Linux與硬件芯片的緊密結合
對于許多信息家電的應用來說,嵌入的性能指標是最難滿足的,只有靠提高芯片的集成度與裝配密度來解決。嵌入式Linux與標準Linux的一個重要區別是嵌入式Linux與硬件芯片的緊密結合。這是一個不可逾越的難點,也是嵌入式Linux技術的關鍵之處。嵌入式Linux和商用專用RTOS一樣,需要編寫BSP(Board Support Package),這相當于編寫PC的BIOS。這不僅僅是嵌入式Linux的難點,也是使用商用專用RTOS開發的難點。硬件芯片(SOC芯片或者是嵌入式處理器)的多樣性也決定了代碼開放的嵌入式Linux的成功。嵌入式系統的發展,必然導致軟硬件無縫結合的趨勢,逐漸地模糊了硬件與軟件的界限,在將來可能出現SOC片內的操作系統代碼模塊。
隨著處理器片內微碼的發展,在將來應出現在處理器片內嵌進操作系統的代碼模塊,很顯然模塊將具有安全性好、健壯性強、代碼執行效率高等特點。著眼于未來的嵌入式系統的發展,我們基于對嵌入式Linux技術的深入研究,對嵌入式處理器及SOC系統的深刻理解和研究;對EDA技術的深入研究;對模擬數字混合集成電路芯片的深入研究;對SOC片內進行嵌入式Linux操作系統代碼的植入研究。此類的研究有可能減輕系統開發者對BSP開發的難度要求,并使得嵌入式Linux能夠成為普及的嵌入式操作系統,而大大提高嵌入式Linux的易用性,提高其開發出的高智能設備的安全性、穩定性,同時也大大提高智能設備的計算能力、處理能力。
(1)Linux的移植。如果Linux不支持選用的平臺,就需要把Linux內核中與硬件平臺相關的部分改寫,使之支持所選用的平臺。
(2)內核的裁剪。嵌入式產品的可用資源比較少,所以它的內核相對嵌入式系統來說就顯得有點大,需要進行剪裁到可利用的大小。
(3)桌面系統。現代的操作系統如果沒有一個友好的界面是沒有說服力的。現在的臺式機Linux系統使用了傳統的X Window系統的模式—Client/Server結構。適用于嵌入式Linux上的X Window的工作也在進行。
(4)驅動程序的開發。Linux內核更新的很快,許多最新的硬件驅動很快就被支持。但嵌入式系統應用領域是多種多樣的,所選用的硬件設備也不同,并且不可能都有Linux的驅動程序,因此,設備驅動程序的開發也是重要的工作。
(5)應用軟件的開發。
(6)中文的支持。
目前,絕大部分嵌入式系統的硬件平臺還掌握在外國公司的手中,國產的嵌入式操作系統在技術含量、兼容性、市場運作模式等方面也還有很多工作要做,我們應該在跟蹤國外嵌入式操作系統的最新技術的同時,堅持自主產權,力爭找到自己的突破點,探索出一條自己的發展道路。
[1]吳旭光,何軍紅.嵌入式操作系統原理與應用[M].化學工業出版社,2007.
[2]吳國偉,畢玲,陳慶.嵌入式操作系統原理及應用開發[M].北京航空航天大學出版社,2007.
[3]王金龍,蘇瑞元,江叔盈,等.嵌入式操作系統開發與應用程序設計[M].清華大學出版社,2009.