嵌入式Linux技術

火星人 @ 2014-03-12 , reply:0


  操作系統是管理計算機上的資源,為用戶使用計算機及其外部設備提供最基本介面的程序。

自從計算機誕生以來,隨著計算機、網路技術的快速發展,操作系統一直處於不斷發展和改進之中,人們將越來越多的功能加入到操作系統中,導致操作系統越來越大。但是,隨著應用領域的擴大,為了適應不同的應用場合,考慮到系統的靈活性、可伸縮性以及可裁減性,一種以應用為中心、以計算機技術為基礎、軟體硬體可裁剪、適應應用系統對功能、可靠性、成本、體積、功耗要求嚴格的專用計算機系統---嵌入式操作系統便隨之延生。

嵌入式Linux是按照上面所說的嵌入式操作系統的要求設計的一種小型操作系統。由一個kernel(內核)及一些根據需要進行定製的系統模塊組成。其Kernel很小,一般只有幾百K左右,即使加上其它必要的模塊和應用程序,所需的存儲空間也很小,多任務多進程的系統特徵,有些還有具有實時性。

一個小型的嵌入式Linux系統只需要下面三個基本元素:

引導程序
Linux微內核(由內存管理、進程管理和事務處理構成)
初始化進程
如果要讓它有更多的功能且繼續保持小型化,可以加上:

文件系統(可以在ROM,RAM,FLASH或Disk Onchip中)
TCP/IP網路支持
存儲更多數據用的磁碟。
提供設計精簡的應用程序。
由於嵌入式Linux操作系統的高度靈活性,開發者可以很容易地對它進行定製或作適當開發,來滿足實際應用需要。

Linux在嵌入式系統中的優勢

嵌入式操作系統主要有 Palm OS,Windows CE,EPOC,LinuxCE,QNX,ECOS,LYNX,高端嵌入式系統要求許多高級的功能,如圖形用戶界面和網路支持 。很多高端RTOS供應商已經提供了這些功能,但其價格也很高端,一般人難以接受。微軟的Windows CE也有此類功能,卻不具備大多數嵌入式系統要求的實時性能,而且難以移植,也曾經有人想以DOS為基礎用單獨的第三方工具拼湊一個系統,但這種努力將是白費。眾所周知,Micro$oft的東西向來都是以昂貴和不穩定出名,而現在需要的是一個便宜、成熟並且提供高端嵌入式系統所必須特性的操作系統,嵌入式Linux操作系統以價格低廉、功能強大又易於移植而正在被廣泛採用,成為新興的力量,所以,眾多商家紛紛轉向了嵌入式linux。

Linux為嵌入操作系統提供了一個極有吸引力的選擇,她是個和Unix相似、以核心為基礎的、完全記憶體保護、多任務多進程的操作系統。支持廣泛的計算機硬體,包括X86,Alpha,Sparc,MIPS,PPC,ARM,NEC,MOTOROLA等現有的大部分蕊片。程式源碼全部公開,任何人可以修改並在GNU通用公共許可證(GNU General Public License)下發行,這樣,開發人員可以對操作系統進行定製,再也不必擔心像M$ windows操作系統中「後門」的威脅(後門不是我們常說的走後門,是指嵌入到軟體中的一個特殊程序,它有一些不道德的額外功能,例如可以把使用者的數據送到指定的地址)。同時由於有GPL的控制,大家開發的東西大都相互兼容,不會走向分裂之路。Linux用戶遇到問題時可以通過Internet向網上成千上萬的Linux開發者請教,這使最困難的問題也有辦法解決。

Linux帶有Unix用戶熟悉的完善的開發工具,幾乎所有的Unix系統的應用軟體都已移植到了Linux上。Linux還提供了強大的網路功能,有多種可選擇窗口管理器(X windows)。其強大的語言編譯器gcc、g++等也可以很容易得到。不但成熟完善、而且使用方便。

嵌入式linux操作系統與硬體設備的關係

運行嵌入式Linux的CPU可以是 X86,Alpha,Sparc,MIPS,PPC,MOTOROLA,NEC,ARM。與這些蕊片搭配的主板都很小,與一張PCI卡大小相當,有的甚至更小!

嵌入式linux所需的存儲器不是軟磁碟、硬碟、ZIP盤、CD-ROM、DVD這些眾所周知的常規存儲器,它使用Rom,CompactFlash,M-Systems的DiskOnChip,SONY的MemoryStick,IBM 的MicroDrive等體積極小---與主板上的Bios大小相近,存儲容量不太大的存儲器。它的「內存」可以使用普通的內存也可以使用專用的RAM。

PC平台上通常有鍵盤、滑鼠、顯卡、顯示器等輸入輸出設備及各種存儲設備,有ISA、PCI、AGP、USB等介面。在嵌入式系統中,往往不面要上述設備和介面的支持,而使用嵌入式系統特有的介面和設備,如PCMCIA介面、LCD顯示屏、觸摸屏,DOC(DiskOnChip)等。

在一個簡單的系統里,當系統啟動后,內核和所有的應用程序都在內存里。這就是大多數傳統的嵌入式系統工作模式,它可以被Linux支持。因此嵌入式系統可以沒有磁碟。許多嵌入式系統沒有磁碟或者文件系統。Linux不需要它們也能運行。有多種途徑可以消除對磁碟的依賴,這要看系統的複雜性和硬體的設計。

在PC機上都需要Bios ,當CPU啟動的時候,它開始在預先設置的地址上讀取指令,執行了一些低水平的CPU初始化和其它硬體的配置。再由BIOS繼續引導操作系統,由操作系統引導其它應用程序。實際上,這非常複雜,但對我們的目標來說也非常重要。在PC上運行的Linux也要依靠PC上的BIOS來啟動。

與PC機不同的是,嵌入式系統里經常沒有這種BIOS。這樣你就要提供同等的啟動代碼,這看起來使系統的引導啟動變得更加複雜。幸好,嵌入式系統並不需要PC 機Bios引導程序那樣大的靈活性,因為嵌入式設備的硬體配置通常是不變的,嵌入式引導程序只需要處理一種硬體的配置。這使代碼更簡單也更枯燥。它只是一指令清單,將固定的數字塞到硬體寄存器中去。然而,這是關鍵的代碼,因為這些數值要與你的硬體相符而且要按照特定的順序進行。所以在大多數情況下,一個最小的通電自檢模塊,可以檢查內存的正常運行、讓LED閃爍,並且驅動其它必須的硬體以使主Linux OS啟動和運行。這些啟動代碼完全根據硬體決定,不可隨意改變。

要選擇與嵌入式Linux系統相結合的硬體產品是一個複雜的工作,不但要考慮到硬體的成本,體積,可靠性,還受到其他非技術因素的影響,如政治、偏見、傳統等等。這一工作必須嚴肅對待,因為它也是開發的重點。

嵌入式linux 的技術發展

嵌入式系統的商品化操作系統在70年代後期才出現,許多是用彙編語言寫成的,並且只能用於特定的處理器,更換新處理器,它的操作系統就必須更新以適應新的系統。當C語言出現時,操作系統編寫的效率、穩定性、可移植性都有了很大的提高。這一點在管理上立刻表現出來,它為微處理器被淘汰時保護軟體投資帶來了希望。對於市場來說這是一個好消息。用C語言寫成的操作系統今天越來越普遍。一般來說,可重複使用的軟體已經佔了主導地位並越做越好。

許多嵌入式系統根本沒有操作系統,只有循環控制。對於一些簡單設備這是足夠的,但是隨著系統越來越複雜,更多嵌入式系統需要與各類網路聯接,因此需要網路功能。增加網路功能將導致系統複雜程度提高以致要求操作系統。

傳統的嵌入式系統是基於單片機的,而新一代的嵌入式系統將以如下為特點:以IP核模塊(Intellectual Property Kernel知識產權核模塊)為核心,用混合ASIC/CPLD/FPGA生成的矽片直接構成整塊的單片嵌入式產品(SOC)。

隨著嵌入式操作系統的快速發展,應用的範圍不斷擴大,使用者日益增加,一個非常關鍵,必須解決的重大問題出現了。

很久以前, 一般的編程語言,編譯,開發只能支持英文的,不能支持它國語言,比如拿一個只支持英文的瀏覽器去訪問中文的網站,顯示出來的東西將是混亂不可閱讀,嵌入式Linux也同樣不能避免這種問題,它直接影響到系統開發的路線。

為了使Linux支持中文,國人做了許多的努力,基本上解決了中文支持的問題。1999年是中國Linux發展和普及過程中最重要的一年,其中湧現了許多製作中文 Linux發布版本的公司,加速 Linux的中文化過程並推動Linux在中國的普及。如今這些公司又紛紛轉向了中文嵌入式Linux操作系統的開發,如Turbo,紅旗,還有一些一開始就開發嵌入式Linux公司,如網虎,博利思等,其中,博利思於5月份最先推出其中文嵌入式Linux操作系統。

為了適應更廣的語言和文化習俗,軟體有必要在設計結構和機制上支持多語言的擴展特性,這一過程稱為國際化,。越來越多的軟體開發者了解到, 如果他們設計的產品一開始就考慮到多語環境的使用, 這些產品將用更少的花費, 更快達到全球市場, 比那些照 "糟糕的老方法" 設計的產品更成功。有了國際化,你不需要一個日文版的 Netscape 去瀏覽日本的網頁. 你能使用英文的, 法文的或者任何版本的Netscape 來瀏覽日本的網頁, 反之亦然,而實現這些的唯一條件只要有適當的字型檔支持。

Linxu的國際中最主要的是X windows 的國際化,早期的X11R4版本中,僅僅含有支持單位元組和雙位元組字體的函數,所以它不能算是國際化的函數庫. 此後,一個叫做"mltalk"的X協會成立並著手研究X窗口系統的國際化問題. 眾多的X窗口系統供應商也 參與了該組織。

按國際化的級別來分,下列幾種情況都屬於國際化:

語言可以切換. 在系統啟動時可以設置某種語言
使用不同語言的軟體可以同時使用,在應用軟體啟動時可以設置某種語言
使用不同語言的軟體可以同時使用,而且應用軟體的語言可以動態切換
使用不同語言的軟體可以同時使用,而且在應用軟體中可以同時使用不同語言
最新的X11R6 解決了X11R4中存在的問題,主要的變化有,

定義了標準的輸入協議、Locale數據格式定義
只採用了一種國際化工具的樣本應用模塊 在輸出上,X11R6增加了從由到左的的書寫方式,以支持阿拉伯語和希伯來語等,增加了從上到下的書寫方式,以支持中文和日文等的書寫方向
支持國際化的高層庫 OSF/Motif Qt/kdelib gtk+/gnome-lib Perl Java
支持多語言的典型軟體 瀏覽器 Netscape 編輯器 XEmacs 編輯器 Mule 編輯器 vim 終端 rxvt 排版軟體 LaTeX/lyx PostScript/PDF: gs/acroread 圖像處理: gimp 幻燈片製作 mgp 即將完成: StarOffice, Koffice
支持Unicode的軟體 高級圖形庫函數 Qt 2.x Java 語言開發工具 JDK 編輯器 yudit 專用的支持Unicode的 X 終端 基於GTK+的文本處理器 Gscript
因為對國際化的研究開始不久,所以mltalk (X國際化協會)提出的了 一個基本問題: 什麼是X窗口系統的國際化? 對它的解釋也各不相同。 實際上,即使是現在,人們對國際化的定義仍然存在分歧,分歧的焦點主要集中於對軟體或系統怎樣程度的國際化才算是真正的國際化。但不管怎樣,國際化的問題已經有了巨大的進展,這必將促進嵌入式Linux的不斷成長,成熟。

在Linux日益流行的同時,嵌入式Linux也漸漸得到許多程序員的關注。由於其用途之廣達到了前所未有的地步:從移動計算平台、 信息家電(機頂盒,數字電視)、媒體手機、到工業、商業控制(智能工控設備,POS/ATM機)、 電子商務平台、甚至軍事應用!由此可見,嵌入式Linux的吸引力是巨大的。 同時嵌入式板的生產商得來了越來越多的引起全世界注意的標準,許多廠商都注意到了嵌入式Linux的適用性之廣,有不少公司正在開發嵌入式Linux,想信不久,嵌入式Linux在嵌入式板的生產商中將大受歡迎。

在國外,發展成熟並且已經商品化的嵌入式操作系統可供選擇的有VxWorks, pSOS, Neculeus、QNX、LYNX和Windows CE。目前,國內只有博利思,網虎,Turbo這有數的幾家公司推出了嵌入式Linux操作系統,但相信不久,中國的嵌入式Linux產品將會如雨後春筍般出現!





[火星人 via ] 嵌入式Linux技術已經有526次圍觀

http://www.coctec.com/docs/service/show-post-73870.html