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