當前位置:首頁 > 百科知識 > 電子工程 > 正文

μClinux

μClinux是一個完全符合GNU/GPL公約的操作系統,完全開放源代碼,現在由Line公司支持維護。μClinux的發(fā)音是you-see-linux,它的名字來自于希臘字母μ和英文大寫字母C結合。μ代表“微小”之意,字母C代表“控制器”,所以從字面上就可以看出它的含義,即“微控制領域中的Linux系統”。

  μClinux的發(fā)展及特點

  1991年,芬蘭大學生Linus Torvalds開發(fā)了一個自由的操作系統Linux,并通過Internet進行了發(fā)布。隨后,一大批編程人員加入到基于Linux操作系統開發(fā)過程中來,Linux要求所有的源代碼必須公開,后來技術的發(fā)展轉向GPL( GNUG eneral Public Licence),只要遵守GPL的規(guī)定,就可以免費獲得復制,因此Linux依然可以看做是一個免費軟件。隨著嵌入式應用的日益普及,人們迫切需要更加小巧的、無需龐大內存運行環(huán)境的迷你型的操作系統,于是,GPL組織開發(fā)了針對微型控制領域的Linux操作系統,這就是μClinux操作系統。μ表示Micro,即微小的,C表示Control,即控制,整個μClinux的含義可以理解為"適用于微型控制領域的Linux操作系統"。

  μClinux的具體特點包括:

 ?。?)適合嵌入式環(huán)境開發(fā)。一般而言,嵌入式系統自身所具有的簡約性,導致對于所選用的操作系統的多任務、大內存管理等方面的功能都沒有明確需求。因此,μClinux不支持MMU等內存管理功能。小巧玲瓏的特點使得該系統在嵌入式開發(fā)領域具有得天獨厚的優(yōu)勢。

 ?。?)傳承了Linux的優(yōu)點。Linux 操作系統最突出優(yōu)點是強大的網絡管理功能,基本上所有的網絡協議和網絡接口都可以在Linux上找到,Linux的內核比標準的UNIX處理網絡協議更加高效,系統的網絡吞吐性能更好,這也是Linux網絡服務器市場上占據較大的市場分額的重要原因。對于小型的SOHO路由器,Linux的網絡技術無疑是其開發(fā)運行的最佳選擇,Linux完全能對給其提供全方位的網絡技術支持。μClinux是基于Linux開發(fā)的,繼承了Linux的強大網絡管理功能,許多資料可以在Internet上方便下載。

 ?。?)支持功能擴展。雖然與Linux相比,μClinux經過了大幅度的瘦身,但是這并沒有妨礙μClinux提供豐富的功能擴展接口。比如,雖然μClinux多任務支持模式較為簡單,但是在必須需要復雜多任務環(huán)境的時候,可以進行方便的擴展。

 ?。?)提供強大的系統管理能力。雖然嵌入式系統的應用程序,一般可以在裸板上運行,但為了使系統具有任務管理、存儲器管理、設備管理、事件管理、消息管理、隊列管理和中斷處理等全方位的能力,更好地分配系統資源,用戶就需要針對自己的硬件平臺和實際應用選擇適當的嵌入式操作系統。μClinux就是一種不錯的選擇。

  (5)可以根據不同的應用需求量身定做操作系統。這就是定制μClinux的剪裁技術。要讓uClinux支持一個新硬件體系,首先需要收集構建代碼的工具,然后開始剪裁和編譯內核,使構建的操作系統適合具體的硬件需求。一旦內核支持設計的處理器功能,操作系統就可以正常運行了。在此基礎上,還要增加必要的驅動程序的支持,以便各種硬件設備能夠高效能地發(fā)揮作用。典型的驅動程序集合中包括了諸如控制臺終端、基本串、并行設備、包含了根文件系統的塊設備的存儲設備驅動以及其他特殊設備的驅動程序等。

  μClinux操作系統的核心技術環(huán)節(jié)剖析

  在GNU通用公共許可證的授權下,μClinux操作系統的用戶可以使用幾乎所有Linux的API函數,不會因為沒有內存管理單元MMU而受到影響;而且,μClinux在標準的Linux基礎上進行了適當的裁剪和優(yōu)化,形成了一個高度優(yōu)化的、代碼緊湊的嵌入式Linux,體積小了,但是仍然保留了Linux的大多數的優(yōu)點,比如穩(wěn)定性好、強大的網絡功能、良好的可移植性、完備的文件系統支持功能、以及標準豐富的應用程序接口API等,可以支持類似ARM7TDMI等類型多的小巧玲瓏的中央處理器。下面對μClinux二此開法過程中涉及到的主要功能部件以及各部分的技術內涵,進行較為深入的分析和討論,以便網絡管理人員在應用μClinux進行系統功能擴展時參考:

  (1)系統加載模塊,該模塊又稱BootLoader。它是負責μClinux操作系統內核啟動的基本功能模塊。具體來說,該功能模塊可以完成建立uCLinux內核運行環(huán)境和從閃存Flash中裝載初始化內核鏡象。

 ?。?)系統內核初始化模塊,該模塊又稱SystemInit。啟動μClinux內核時,首先受到調用的功能函數是StartKernel()函數。該函數的主要任務是初始化內核的其他部分。具體包括:捕獲終端請求IRQ、進程調度、設備驅動程序加載、標定延遲循環(huán),進而調用fork的"init"進程,以啟動任務管理環(huán)境。

 ?。?)系統調用模塊,該模塊又稱為SystemCall模塊。在μClinux系統執(zhí)行完"init"程序后,內核對程序流不再有直接的控制權,它此后的作用僅限于處理捕獲到的中斷請求事件(例如硬件中斷),并為系統調用提供服務進程。

 ?。?)設備驅動模塊,又稱為DeviceDriver模塊。在幾乎所有的操作系統中,設備驅動都占據大部分的系統空間,μClinux也不例外。同其他各類操作系統一樣,μClinux的設備驅動程序,為系統連接和控制的硬件設備與操作系統之間提供通訊接口。同時,各設備發(fā)出的中斷請求由系統調用模塊負責安排響應時間,并提供服務程序的入口地址。

 ?。?)文件系統,又稱為FileManagement模塊。任何一個操作系統,包括μClinux在內,它們最重要的任務之一就是對多種文件系統進行有效的管理。μClinux在文件管理方面具有很強的兼容性,很容易同其他操作系統共存、共享各類常用文件。特別值得推崇的是,μClinux可以透明地支持許多不同類型的文件系統,將各種安裝的文件和文件系統以一個完整的虛擬文件系統的形式呈現給用戶。同時,μClinux還帶有一個完整的TCP/IP協議,可以支持各種流行的網絡協議,方便用戶使用系統訪問網絡資源,是一個功能豐富、簡便易用的網絡操作系統。

  μClinux下的系統開發(fā)環(huán)境

  了解了μClinux操作系統的基本技術細節(jié),對于網管人員在完成基本管理職能的基礎上,使用開發(fā)環(huán)境進一步完善和提高自身的網絡管理技能,具有非常重要的指導意義。目前在具有嵌入式開發(fā)支持功能的路由器等網絡產品方面,經常使用的μClinux開發(fā)平臺是GNU開發(fā)套件。

  該開發(fā)套件包括:

 ?。?)常規(guī)C編譯器GCC,可以使用標準C進行系統功能的二次開發(fā)。

 ?。?)C++編譯器GCC++,可以使用面向對象開發(fā)模式完成系統功能的二次開發(fā)。

 ?。?)匯編器AS和鏈接LD,可以使用匯編語言進行系統功能的二次開發(fā)。

 ?。?)其它工具軟件,包括:二進制轉換工具(OBJCOPY,OBJDUMP),軟件調試工具(GDB.GD BSERVER,KGDB)和基于不同硬件平臺的開發(fā)庫。

  上述開發(fā)環(huán)境的技術特點如下:

  (1)代碼效率高。在GNU GCC/GCC++語言環(huán)境的支持下,用戶可以使用流行的C/C++語言開發(fā)應用程序。該開發(fā)模式下,網絡管理人員可以輕松介入到開發(fā)工作中,并可以生成高效率運行代碼。

 ?。?)靈活性強。GNU開發(fā)工具都是采用命令行的方式,用戶掌握起來相對比較困難,不如基于Windows系統的開發(fā)工具好用,但是GNU工具的復雜性是由于它更貼近編譯器和操作系統的底層,并提供了更大的靈活性。

 ?。?)豐富的網上免費資源。上述工具都是按GPL版權聲明發(fā)布的,任何人都可以從網上免費獲取全部的源代碼,無需任何費用的投入,對于一般小型單位的網絡質量的提升可以起到投入少、見效快的神奇效果。GNU開發(fā)套件作為通用的Linux開放套件,包括一系列的開發(fā)調試工具。

 ?。?)易學易用。網絡管理人員一般都具有計算機以及相關專業(yè)的背景,都經歷過軟件的初步培訓過程,這些技術人員一旦學習和掌握了相關工具后,就可以掌握網絡系統設計和二次開發(fā)的基礎知識。運行于Linux操作系統下的自由軟件GNU gcc編譯器,不僅可以編譯Llnux操作系統下運行的應用程序,還可以編譯Linux內核本身,甚至可以作交叉編譯,編譯運行于其它CPU上的程序。
 


內容來自百科網