歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> 更多Linux >> 嵌入式Linux技術

嵌入式Linux技術

日期:2017/2/27 9:25:19   编辑:更多Linux
  操作系統是管理計算機上的資源,為用戶使用計算機及其外部設備提供最基本接口的程序。 自從計算機誕生以來,隨著計算機、網絡技術的快速發展,操作系統一直處於不斷發展和改進之中,人們將越來越多的功能加入到操作系統中,導致操作系統越來越大。但是,隨著應用領域的擴大,為了適應不同的應用場合,考慮到系統的靈活性、可伸縮性以及可裁減性,一種以應用為中心、以計算機技術為基礎、軟件硬件可裁剪、適應應用系統對功能、可靠性、成本、體積、功耗要求嚴格的專用計算機系統---嵌入式操作系統便隨之延生。 嵌入式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增加了從由到左的的書寫方式,以支持阿拉伯語和希伯來語等,增加了從上到下的書寫方式,以支持中文和日文等的書寫方向 支



Linxu的國際中最主要的是X windows 的國際化,早期的X11R4版本中,僅僅含有支持單字節和雙字節字體的函數,所以它不能算是國際化的函數庫. 此後,一個叫做"mltalk"的X協會成立並著手研究X窗口系統的國際化問題. 眾多的X窗口系統供應商也 參與了該組織。 按國際化的級別來分,下列幾種情況都屬於國際化: 語言可以切換. 在系統啟動時可以設置某種語言 使用不同語言的軟件可以同時使用,在應用軟件啟動時可以設置某種語言 使用不同語言的軟件可以同時使用,而且應用軟件的語言可以動態切換 使用不同語言的軟件可以同時使用,而且在應用軟件中可以同時使用不同語言 最新的X11R6 解決了X11R4中存在的問題,主要的變化有, 定義了標准的輸入協議、Locale數據格式定義 只采用了一種國際化工具的樣本應用模塊 在輸出上,X11R6增加了從由到左的的書寫方式,以支持阿拉伯語和希伯來語等,增加了從上到下的書寫方式,以支持中文和日文等的書寫方向 支



Copyright © Linux教程網 All Rights Reserved