- 嵌入式系統設計與實踐:Linux篇
- 季江民
- 2963字
- 2020-04-03 09:21:42
1.3 嵌入式操作系統
嵌入式操作系統EOS(Embedded Operating System)是一種用途廣泛的系統軟件,過去它主要應用于工業控制和國防系統領域。EOS負責嵌入式系統的全部軟、硬件資源的分配、調度,控制、協調并發活動;它必須體現其所在系統的特征,能夠通過裝卸某些模塊來達到系統所要求的功能。目前,已推出一些應用比較成功的EOS產品系列。隨著Internet技術的發展、信息家電的普及應用及EOS的微型化和專業化,EOS開始從單一的弱功能向高專業化的強功能方向發展。嵌入式操作系統在系統實時高效性、硬件的相關依賴性、軟件固化以及應用的專用性等方面具有較為突出的特點。相對于一般操作系統而言,EOS除具備了一般操作系統最基本的功能,如任務調度、同步機制、中斷處理、文件處理等外,還有以下特點:
(1)可裝卸性。開放性、可伸縮性的體系結構。
(2)強實時性。EOS實時性一般較強,可用于各種設備控制當中。
(3)接口統一。統一的接口,提供各種設備驅動接口。
(4)圖形界面。操作方便、簡單、提供友好的圖形GUI,易學易用。
(5)強大的網絡功能。支持TCP/IP協議及其他協議,提供TCP/UDP/IP/PPP協議支持及統一的MAC訪問層接口,為各種移動計算設備預留接口。
(6)強穩定性,弱交互性。嵌入式系統一旦開始運行就不需要用戶過多的干預,這就要負責系統管理的EOS具有較強的穩定性。嵌入式操作系統的用戶接口一般不提供操作命令,它通過系統的調用命令向用戶程序提供服務。
(7)固化代碼。在嵌入式系統中,嵌入式操作系統和應用軟件被固化在嵌入式系統計算機的ROM中。輔助存儲器在嵌入式系統中很少使用,因此,嵌入式操作系統的文件管理功能應該能夠很容易地拆卸,而用各種內存文件系統。
(8)更好的硬件適應性,也就是良好的移植性。
國際上用于信息電器的嵌入式操作系統有40種左右。現在,市場上非常流行的EOS產品,包括3Com公司下屬子公司的Palm OS,全球占有份額達50%,而Microsoft公司的Windows CE(簡稱Win CE)不過29%。在美國市場,Palm OS更以80%的占有率遠超Win CE。這都歸功于開放源代碼的Linux很適于做信息家電的開發。
1.3.1 DOS
微軟一開始選用了以帕特森的Q-DOS(Quick and Disk Operating System)為基礎再擴充功能而成的MS-DOS,主要采用由IBM公司提供的使用8088微處理器的計算機作開發平臺。它是單用戶單任務操作系統,由于系統小所以特別適合一些功能簡單的裝置使用,如LED看板。
1.3.2 Windows CE
雖然微軟Windows系統已經稱霸了PC桌面環境,但是對于嵌入式系統這塊大餅,微軟也是垂涎已久。桌面Windows操作系統對于嵌入式系統來說自然是太過于龐大,于是微軟推出精簡版的Windows CE作為進攻嵌入式系統的主力。但是跟微軟一系列Windows系統一樣,Windows CE也承襲了原有的缺點:太耗系統資源、不穩定、效率不佳等。不過新版本整個架構重新改寫后的確改進了不少缺點。目前Windows CE多數用于PDA、Thin Client等。
1.3.3 Palm OS
Palm Computing公司的嵌入式操作系統,目前最主要應用在PDA,是市場占有率較高的PDA操作系統。Palm操作系統架構非常簡潔,因裁減很多功能,如內存管理、多任務等,使得Palm可以幾乎不耗系統資源,硬件需求低,整體耗電量可壓縮到非常低,因此采用Palm操作系統的PDA具有待機時間長的優點。
1.3.4 EPOC
它是由英國手持裝置大廠Psion所開發,常用于PDA與手機結合的場合。最有名的例子是Nokia 9110系列手機,它就是采用EPOC系統。
1.3.5 VxWorks
VxWorks操作系統是美國WindRiver公司于1983年設計開發的一種嵌入式實時操作系統(RTOS),是嵌入式開發環境的關鍵組成部分。其擁有良好的持續擴展能力、高性能的內核以及友好的用戶開發環境,在嵌入式實時操作系統領域占據一席之地。它以其良好的可靠性和卓越的實時性被廣泛地應用在通信、軍事、航空、航天等高精尖技術及實時性要求極高的領域中,如衛星通信、軍事演習、彈道制導、飛機導航等。在美國的F-16、FA-18戰斗機、B-2隱形轟炸機和愛國者導彈上,甚至連1997年4月在火星表面登陸的火星探測器上也使用到了VxWorks。
1.3.6 μC/OS
μC/OS簡單易學,提供了嵌入式系統的基本功能,其核心代碼短小精悍,如果針對硬件進行優化,還可以獲得更高的執行效率。但是μC/OS相對商用嵌入式系統來說還是過于簡單,而且存在開發調試困難的問題。
μC/OS的出現和應用也只是近年來的事,其迅猛的發展證明了開放源碼軟件的巨大生命力。相信經過廣大用戶的不斷豐富和完善,μC/OS的功能將日趨成熟,應用也會更加廣闊。
1.3.7 ucLinux
ucLinux是免費軟件運動的產物,包含豐富的功能,包括文件系統、各種外調驅動程序、通訊模塊、TCP/IP、PPP、HTTP,甚至WEB服務器的代碼。在INTERNET上流傳的ucLinux已經被移植到當前幾乎所有的硬件平臺上,功能與PC機上運行的Linux不相上下,其代碼十分復雜,要完全移植沒有必要也十分困難。但ucLinux的代碼經過世界范圍內的優化,穩定可靠而且高效,所有模塊的代碼都可以從INTERNET上獲得,可以進行模塊移植。
1.3.8 Linux
Linux操作系統不僅應用于網絡服務器與集群系統,并占嵌入式市場50%以上的份額,那么究竟Linux操作系統有怎樣獨特的特點呢?
1.開放源代碼、模塊化設計
Linux采用GPL授權,除了把源代碼公開以外,任何人都可以自由使用、修改、散布,而Linux核心本身采用模塊化設計,讓人很容易增減功能,例如若平臺并不需要藍牙的功能,只要不把這項功能加入即可,什么時候需要藍牙功能,則把該功能模塊加入,重新編譯內核即可。由于這樣的高彈性,就可以配置出最適合硬件平臺的核心來。與Linux相比,Windows是走封閉源代碼的路線,所以完全無法得知或修改它的核心部分。另外因為Linux是采用GPL授權自然就沒有什么授權費或保密協議的約束。
2.穩定性
Linux不屬于任何一家公司,但是它的開發人員卻是全世界最多的,每天在全球都有無數的人參與Linux Kernel的改進、除錯、測試,這樣嚴苛的條件造就了高度穩定性的Linux。就因為如此,Linux雖不是商業的產物但是質量卻不遜于商業產品。
3.網絡功能強大
Linux的架構是參照UNIX系統而來,因此Linux也承襲了UNIX強大的網絡功能。在這個每樣事情都講究網絡的時代下,只能說是Linux大放異彩的年代。未來可能家里的電冰箱、冷氣、電視機都會連上網絡。如何增強這些家電的網絡功能?Linux可以辦到。
4.跨平臺
Linux一開始是基于Intel 386機器而設計的,但是隨著網絡的普及,各式各樣的需求涌現,因此就有許多工程師致力于各式平臺的移植,造成了Linux可以在x86、MIPS、ARM、PowerPC、Motorola 68k、Hitachi SH3/SH4、Transmeta等平臺上運作的盛況。這些平臺幾乎涵蓋了所有嵌入式系統所需的CPU,因此選擇Linux就可以把更多的硬件平臺納入考慮的范圍。
嵌入式環境不如x86的PC機那樣單純,嵌入式環境所采用的CPU架構很多,使用Linux開發,就等于有更多硬件的選擇。硬件成本是商業公司考慮的一大重點,選擇多自然可以找到最合適的硬件,對于公司的競爭力是有極大幫助的。
5.應用軟件眾多
自由軟件世界里有個很大的特色就是軟件相當多,而且幾乎都是符合GPL標準,換句話說,大家都可以自由取用,因為這些軟件多半是由工程師業余空暇時間所開發,而且不以營利為目的,因此也不能保證這些軟件完全沒有BUG,但是仍舊有許多殺手級的軟件出現,大家熟知的KDE與GNOME便是很好的證明,當然也有與嵌入式系統較為相關的,如arm-linux-gcc編譯器、Kdevelop整合式開發環境等。
應用軟件通常都會先在PC端模擬出嵌入式的環境,并直接在上面開發,因此用的工具也都與開發一般桌面軟件類似,良好的工具能夠提高開發的速度。
6.選擇多樣
多數公司有能力自己制作嵌入式Linux系統,因為程序代碼全部都開放在那里,可以隨心所欲地設計出自己想要的Embedded Linux系統,但是有更多的公司的業務重點不在于此,這時也可以選擇購買商業版的Embedded Linux系統,如有名的Redhat公司、Lineo、MontaVista等,這些都是商業的Linux公司,購買他們的產品就可以得到完整的服務,因此商業或非商業取決于你的需求。