摘 要: 分析了當(dāng)今主流的嵌入式Linux操作系統(tǒng)的特點(diǎn),介紹了其研究現(xiàn)狀,并展望了未來發(fā)展。
關(guān)鍵詞: 嵌入式系統(tǒng) 嵌入式操作系統(tǒng) Linux
嵌入式系統(tǒng)是從20世紀(jì)80年代的8位單片機(jī)發(fā)展起來的(一般把基于單片機(jī)的系統(tǒng)叫做傳統(tǒng)的嵌入式系統(tǒng))。8位單片機(jī)只需要直接編寫單一的控制程序就能工作。它解決的問題相對單一,要求的運(yùn)算量不大,運(yùn)算速度不高。但是在90年代后期,隨著互聯(lián)網(wǎng)時代的來臨,人類進(jìn)入了后PC時代(80年代初出現(xiàn)PC機(jī)時稱為前PC時代),許多電子設(shè)備需要增加TCP/IP聯(lián)網(wǎng)的功能和更加智能化、更高運(yùn)行速度的要求:例如多媒體音頻、視頻圖像數(shù)據(jù)的采集、傳輸和處理(如MP3、MPEG4等);圖形界面和觸摸屏技術(shù);無線控制技術(shù)與相應(yīng)的軟件協(xié)議(如BLUETOOTH、IRDA等)。面對這些需求,一方面,8位單片機(jī)“感覺到力不從心”;另一方面,嵌入式開發(fā)廠商也不愿意投入很多的時間去開發(fā)那些開發(fā)周期很長的產(chǎn)品。新一代的嵌入式系統(tǒng)便在這樣的情況下誕生了(以下把新一代的嵌入式系統(tǒng)簡稱“嵌入式系統(tǒng)”)。
嵌入式系統(tǒng)的定義有許多種,其中一種最直接和通俗的定義就是:一種專用的、控制特定設(shè)備的計算機(jī)系統(tǒng)。它的基本組成有三部分:嵌入式微處理器、嵌入式操作系統(tǒng)和在其上開發(fā)的應(yīng)用程序,如圖1所示。嵌入式微處理器是構(gòu)成整個嵌入式系統(tǒng)的核心。它是嵌入式操作系統(tǒng)和開發(fā)應(yīng)用程序的硬件平臺。目前,嵌入式微處理器在市場上有很多,比較流行的有Motorola的32位嵌入式處理器系列:Cold fire系列、Dragon ball系列、PowerPC系列,還有MIPS系列、ARM系列、X86系列(Intel 386EX、AMD4xx)等。流行的嵌入式操作系統(tǒng)有:PSOS、VXWORKS、WINCE、QNX、LYNXOS、Palm OS、Embedded Linux(包括RT-Linux、UC-Linux等)。
1 嵌入式Linux操作系統(tǒng)
自從1991年10月5日Linux問世到現(xiàn)在,僅僅12年的時間,而它在全球計算機(jī)產(chǎn)業(yè)界的影響卻超過了之前的任何一個操作系統(tǒng)。Linux是一個成熟、穩(wěn)定的網(wǎng)絡(luò)操作系統(tǒng),將它作為嵌入式操作系統(tǒng)具有很多顯著的優(yōu)點(diǎn)。首先,Linux的核心源代碼是免費(fèi)的,任何人都可以從互聯(lián)網(wǎng)上得到。其次,Linux的核心代碼是開放的,所有人都可以根據(jù)自己的意圖修改和定制,開發(fā)適合自己的產(chǎn)品。第三,Linux核心代碼可以裁減到130多字節(jié),這可以大大地降低開發(fā)產(chǎn)品的成本和適應(yīng)嵌入式系統(tǒng)的發(fā)展趨勢。第四,Linux核心代碼采用移植性比較好的C語言編寫,所以它可以很容易地移植到很多微處理器上。目前流行的嵌入式Linux操作系統(tǒng)有:μC-Linux、RT-Linux、EMBEDIX、Hard Hat Linux、MONTAVISTA Linux、LYNXOS、Blue Cat Linux、ET-Linux、Midori等。下面對一些主流嵌入式Linux操作系統(tǒng)各自的特點(diǎn)進(jìn)行分析和介紹。
1.1 μC-Linux
μC-Linux是LINEO公司在Linux2.0的基礎(chǔ)上裁減得到的。在μC-Linux這個英文單詞中, μ表示Micro,小的意思,C表示Control,即控制,所以μC-Linux就是Micro-Control-Linux,字面上的理解就是“針對微控制領(lǐng)域而設(shè)計的Linux系統(tǒng)”。μC-Linux內(nèi)核要比原Linux 2.0內(nèi)核小得多,但保留了Linux操作系統(tǒng)的主要優(yōu)點(diǎn)。
(1)內(nèi)存管理。這部分是μC-Linux與傳統(tǒng)Linux的最大區(qū)別所在。標(biāo)準(zhǔn)Linux是針對有MMU的處理器設(shè)計的。在這種處理器上,虛擬地址被送到MMU,把虛擬地址映射為物理地址。對于μC-Linux來說,其設(shè)計針對沒有MMU的處理器,即μC-Linux不能使用處理器的虛擬內(nèi)存管理技術(shù)。μC-Linux仍然采用存儲器的分頁管理,系統(tǒng)在啟動時把實(shí)際存儲器進(jìn)行分頁,在加載應(yīng)用程序時分頁加載。所以實(shí)際上μC-Linux采用實(shí)存儲器管理策略。
(2)內(nèi)核加載方式。μC-Linux的內(nèi)核有二種運(yùn)行方式。①Flash運(yùn)行方式:把內(nèi)核的可執(zhí)行映像文件燒到Flash上,系統(tǒng)啟動時從Flash的某個地址開始逐句執(zhí)行。這種方法實(shí)際上是很多嵌入式系統(tǒng)采用的方法。②內(nèi)核加載方式:把內(nèi)核的壓縮文件存放在ram上,系統(tǒng)啟動時讀取壓縮文件并在內(nèi)存里解壓,然后開始執(zhí)行。這種方式相對復(fù)雜一些,但是運(yùn)行速度更快。
(3)可執(zhí)行文件格式。μC-Linux系統(tǒng)使用flat可執(zhí)行文件格式,如表1所示。
(4) μC-Linux的主要特色如表2所示。
(5)應(yīng)用程序庫。μC-Linux小型化的另一個做法是重寫了應(yīng)用程序庫。相對于越來越大且越來越全的GLIBC庫, μCLIBC對LIBC做了精簡。μC-Linux對用戶程序采用靜態(tài)鏈接的形式,這種做法會使應(yīng)用程序變大,但是基于沒有MMU的特性,只能這樣做,同時這種做法也更接近于通常嵌入式系統(tǒng)的做法。
(6)已經(jīng)移植到μC-Linux下的用戶程序很多,有ftp(文件傳輸協(xié)議)客戶端程序、free swan(IPSEC(Internet安全協(xié)議)的Linux實(shí)現(xiàn))等。
1.2 EMBEDIX
EMBEDIX是LINEO公司在2000年初發(fā)布的第一版基于流行桌面的Linux操作系統(tǒng)。它是一種嵌入式Linux軟件解決方案,增加了能量和Linux的連通性來定制嵌入式設(shè)備。這是一個專門用于機(jī)頂盒、個人數(shù)字助理(PDA)和其他小型設(shè)備的Linux系統(tǒng)。EMBEDIX不需要硬盤,可以運(yùn)行在使用PowerPC芯片或英特爾兼容芯片的終端設(shè)備上。
LINEO將實(shí)時技術(shù)集成到EMBEDIX SDK中,以此為嵌入式設(shè)備的開發(fā)者提供軟件和硬件實(shí)時能力。EMBEDIX SDK支持并包括Metrowerks Code Warrior,是一種集成開發(fā)環(huán)境(IDE)。它將文本編輯器、項目管理器、搜索引擎、編譯器、連接器和調(diào)試器混合到一個集成應(yīng)用軟件中,能夠縮短產(chǎn)品開發(fā)周期,減少產(chǎn)品成本。EMBEDIX SDK還支持Windows下開發(fā),具有對本地Windows應(yīng)用軟件和工具的完全訪問能力,并且還給開發(fā)者提供虛擬開發(fā)環(huán)境(帶有可視化的集成環(huán)境)。這對Windows開發(fā)者來說是十分便利的。
1.3 RT-Linux
RT-Linux是世界上最早出現(xiàn)的實(shí)時嵌入式操作系統(tǒng)。RT-Linux并沒有對Linux內(nèi)核做大的改動,而是利用Linux內(nèi)核模塊機(jī)制,采用插入模塊的方式,通過一個獨(dú)立的內(nèi)核來管理實(shí)時任務(wù)。RT-Linux屬于硬實(shí)時,將Linux內(nèi)核設(shè)計為可被搶占的。其主要方法是實(shí)現(xiàn)一個實(shí)時內(nèi)核來負(fù)責(zé)處理硬件消息,接管中斷。實(shí)時任務(wù)可在該內(nèi)核上直接運(yùn)行,而把Linux內(nèi)核本身作為優(yōu)先級最低的Idle Task運(yùn)行。該實(shí)時內(nèi)核有自己的基于優(yōu)先級的調(diào)度算法,Linux內(nèi)核隨時可以被優(yōu)先級更高的實(shí)時任務(wù)搶占。實(shí)時任務(wù)與Linux進(jìn)程之間通過特定的通信機(jī)制(如FIFO)進(jìn)行通信。運(yùn)行在Linux內(nèi)核之上的進(jìn)程則可以完成一些非實(shí)時功能,如圖2所示。RT-Linux從來不用等待Linux釋放資源,不要求額外的內(nèi)存,也不要求和任何數(shù)據(jù)結(jié)構(gòu)同步(在控制得很緊的情況下除外)。RT-Linux目前支持二個商業(yè)版本:開放版(GPL)和專業(yè)版(二進(jìn)制形式發(fā)布)。專業(yè)版支持的硬件體系結(jié)構(gòu)比開放版更多。
RTLinux/Open3.1是FSMLABS公司推出的一款硬實(shí)時操作系統(tǒng),其主要特點(diǎn):(1)標(biāo)準(zhǔn)API;(2)優(yōu)秀的實(shí)時性能;(3)遵循GNU開放源代碼;(4)豐富的工具套件(包括GDB調(diào)試器、GNU編譯器等);(5)可靠的實(shí)時編程模式(分離實(shí)時和非實(shí)時代碼,操作系統(tǒng)和應(yīng)用軟件中的關(guān)鍵實(shí)時組件將給予絕對的優(yōu)先權(quán),從而可以避免非實(shí)時組件影響實(shí)時組件的響應(yīng)時間)。
1.4 MONTAVISTA Linux
MONTAVISTA Linux是業(yè)界領(lǐng)先的嵌入式Linux解決方案供應(yīng)商MONTAVISTA公司最新的嵌入式Linux操作平臺。該產(chǎn)品廣泛地支持各類嵌入式應(yīng)用,為通信基礎(chǔ)設(shè)施、網(wǎng)絡(luò)、消費(fèi)電子、儀表以及工控設(shè)備提供標(biāo)準(zhǔn)的嵌入式Linux平臺。
MONTAVISTA Linux 2.1是開放源代碼、免版稅、100%來自純Linux源代碼。MONTAVISTA Linux 2.1專業(yè)版廣泛地支持各類嵌入式處理器,包括6種業(yè)界領(lǐng)先的處理器:x86/IA-32、PowerPC、Strong ARM、XSCALE、ARM、MIPS。MONTAVISTA Linux 2.1包括K-Develop IDE、目標(biāo)配置工具、庫優(yōu)化工具,并提供超過215個應(yīng)用軟件包。它的一個重要的改進(jìn)是跨平臺開發(fā),支持14個主機(jī)開發(fā)環(huán)境,包括Red Hat、Mandrake、Solaris以及VM-Ware on Windows NT/2000等。
1.5 Blue Cat Linux
Blue Cat Linux是基于Linux-2.4內(nèi)核改造而來的。支持多種處理器,包括Intel XSCALE、Intel IXP1200網(wǎng)絡(luò)處理器、嵌入式Intel Architecture等。Blue Cat 4.0版本有很多的特性:
(1)為內(nèi)核調(diào)試提供獨(dú)特的GDB擴(kuò)展功能;
(2)廣受歡迎的開發(fā)環(huán)境和漂亮的用戶界面;
(3)能夠快速對內(nèi)核的功能、大小等進(jìn)行配置;
(4)可以為Windows或者Linux主機(jī)的開發(fā)提供Blue Cat Basic Support;
(5)使用開放構(gòu)架的電源管理和優(yōu)化方案;
(6)加載和使用已經(jīng)經(jīng)過測試的應(yīng)用組件更加方便。
Blue Cat RT是基于FSMLABS的RT-Linux技術(shù)開發(fā)的產(chǎn)品,可以集成到Blue Cat Linux套件當(dāng)中。把Blue Cat Linux和Blue Cat RT結(jié)合起來可以為用戶提供一種混合型嵌入式系統(tǒng)的解決方案。在一般情況下使用普通的嵌入式Linux內(nèi)核;而在特定的情況下使用具有實(shí)時性能的內(nèi)核。這樣它就能夠提供同時滿足開放標(biāo)準(zhǔn)嵌入式和實(shí)時需求的嵌入式操作系統(tǒng)解決方案。
2 嵌入式Linux操作系統(tǒng)的發(fā)展展望
以信息家電為代表的互聯(lián)網(wǎng)時代嵌入式產(chǎn)品,不僅為嵌入式市場展現(xiàn)了美好前景,注入了新的生命,同時也對嵌入式操作系統(tǒng)技術(shù)提出新的挑戰(zhàn)。
(1)嵌入式應(yīng)用軟件的開發(fā)需要更加強(qiáng)大的開發(fā)工具和操作系統(tǒng)的支持。隨著Internet技術(shù)的成熟、帶寬的提高,Internet提供的信息內(nèi)容日趨豐富,應(yīng)用項目多種多樣,像電話手機(jī)、微波爐等嵌入式電子設(shè)備的功能不再單一,電氣結(jié)構(gòu)也更為復(fù)雜。為了滿足應(yīng)用需求,設(shè)計師們一方面采用更強(qiáng)大的嵌入式處理器(如32位、64位RISC芯片或信號處理器DSP)增強(qiáng)處理能力,同時還采用實(shí)時多任務(wù)編程技術(shù)和交叉開發(fā)技術(shù)來控制功能復(fù)雜性,簡化應(yīng)用程序設(shè)計,保障軟件質(zhì)量和縮短開發(fā)周期。另外,嵌入式系統(tǒng)還應(yīng)需要一套高度簡練、質(zhì)量可靠、應(yīng)用廣泛、易開發(fā)、多任務(wù)并且價格低廉的操作系統(tǒng)。所以Linux作為一個完全免費(fèi)和開放的OS,在今后必然是開發(fā)嵌入式系統(tǒng)首選的操作系統(tǒng)。
(2)網(wǎng)絡(luò)成為必然趨勢。為適應(yīng)嵌入式分布處理結(jié)構(gòu)和應(yīng)用上網(wǎng)的需求,嵌入式系統(tǒng)要求配備一種或多種標(biāo)準(zhǔn)的網(wǎng)絡(luò)通信接口(IEEE1394、USB、CAN、Blue tooth等)和相應(yīng)的網(wǎng)絡(luò)協(xié)議簇(TCP/IP、SNMP等)支持。而Linux與生俱來的優(yōu)秀網(wǎng)絡(luò)血統(tǒng),更為上網(wǎng)應(yīng)用的發(fā)展鋪平了一條寬廣平坦的道路。
(3)實(shí)現(xiàn)小尺寸、微功耗和低成本。在一定程度上講,嵌入式產(chǎn)品的微型化、低功耗和低成本與高的處理器的性能是一對不可調(diào)和的矛盾。所以要達(dá)到微型化,就要求相應(yīng)地降低處理器的性能;同時也就相應(yīng)地提高了對嵌入式軟件設(shè)計技術(shù)要求。對于系統(tǒng)的小型化,Linux可以說在眾多的嵌入式操作系統(tǒng)中是最優(yōu)秀的。Linux由于源代碼是公開免費(fèi)的,所以可以根據(jù)需要進(jìn)行裁減、修改等,從而實(shí)現(xiàn)系統(tǒng)軟件微型化。
(4)提供精巧的多媒體人機(jī)界面(HMI)。嵌入式設(shè)備之所以為億萬用戶樂于接受,重要因素之一是它們與使用者之間的親和力和自然的人機(jī)交互界面。人們與信息終端的交互要求以GUI屏幕為中心的多媒體界面。目前嵌入式Linux的GUI系統(tǒng)有Micro Windows、Open GUI、Qt/Embedded、Mini GUI等??傊?能有一個讓客戶非常滿意的人機(jī)界面,也是今后嵌入式系統(tǒng)的發(fā)展方向。
(5)嵌入式操作系統(tǒng)走向融合?,F(xiàn)在面對如此多的嵌入式操作系統(tǒng),開發(fā)者有時感覺到很不方便。這是因?yàn)?如果在基于OS1的操作系統(tǒng)上開發(fā)的應(yīng)用程序,現(xiàn)在想在OS2上用,則必須進(jìn)行移植才可使用。隨著嵌入式設(shè)備的不斷發(fā)展,將來必將會出現(xiàn)一個能支撐幾乎所有應(yīng)用程序的操作系統(tǒng)。或者說將來的嵌入式操作系統(tǒng)必將走向融合。而惟一能擔(dān)當(dāng)此任的無疑是Linux。因?yàn)樗峁┝艘粋€讓任何人都能自發(fā)地為其發(fā)展找尋出路的游戲規(guī)則。
3 結(jié)束語
根據(jù)一家專門進(jìn)行嵌入式Linux系統(tǒng)信息發(fā)布的網(wǎng)站http://www.Linuxdevices.com的調(diào)查,有52%的用戶決定在未來24個月內(nèi)使用Linux作為嵌入式系統(tǒng)的開發(fā)原型,而只有21%的人仍然使用專有操作系統(tǒng),19%的人仍然使用Windows系列操作系統(tǒng)做嵌入式系統(tǒng)開發(fā)。這充分說明了利用Linux開發(fā)嵌入式系統(tǒng)的生命力。由于Linux嵌入式系統(tǒng)的強(qiáng)大的生命力和利用價值,越來越多的公司和大學(xué)都不同程度地表現(xiàn)出對它的研究興趣。所以基于Linux的嵌入式系統(tǒng)必將是未來嵌入式領(lǐng)域的領(lǐng)導(dǎo)者。
參考文獻(xiàn)
1 李善平,劉文峰,王煥龍.Linux與嵌入式系統(tǒng).北京:清華大學(xué)出版社,2002
2 探矽工作室.嵌入式系統(tǒng)開發(fā)圣經(jīng).北京:中國青年出版社,2002
3 邵貝貝譯.嵌入式實(shí)時操作系統(tǒng)uc/os-Ⅱ(第2版).北京:北京航空航天大學(xué)出版社,2003
4 毛德操,胡希明.Linux內(nèi)核源代碼情景分析(上下).杭州:浙江大學(xué)出版社,2001