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