μClinux

μClinux

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

基本介紹

  • 中文名:μClinux
  • 性質:公約的作業系統
  • 功能開放原始碼
  • 發音:you-see-linux
發展及特點,技術環節剖析,開發環境,

發展及特點

1991年,芬蘭大學生Linus Torvalds開發了一個自由的作業系統Linux,並通過Internet進行了發布。隨後,一大批編程人員加入到基於Linux作業系統開發過程中來,Linux要求所有的原始碼必須公開,後來技術的發展轉向GPL( GNUG eneral Public Licence),只要遵守GPL的規定,就可以免費獲得複製,因此Linux依然可以看做是一個免費軟體。隨著嵌入式套用的日益普及,人們迫切需要更加小巧的、無需龐大記憶體運行環境的迷你型的作業系統,於是,GPL組織開發了針對微型控制領域的Linux作業系統,這就是μClinux作業系統。μ表示Micro,即微小的,C表示Control,即控制,整個μClinux的含義可以理解為"適用於微型控制領域的Linux作業系統"。
μClinux的具體特點包括:
(1)適合嵌入式環境開發。一般而言,嵌入式系統自身所具有的簡約性,導致對於所選用的作業系統的多任務、大記憶體管理等方面的功能都沒有明確需求。因此,μClinux不支持MMU等記憶體管理功能。小巧玲瓏的特點使得該系統在嵌入式開發領域具有得天獨厚的優勢。
(2)傳承了Linux的優點。Linux 作業系統最突出優點是強大的網路管理功能,基本上所有的網路協定和網路接口都可以在Linux上找到,Linux的核心比標準的UNIX處理網路協定更加高效,系統的網路吞吐性能更好,這也是Linux網路伺服器市場上占據較大的市場分額的重要原因。對於小型的SOHO路由器,Linux的網路技術無疑是其開發運行的最佳選擇,Linux完全能對給其提供全方位的網路技術支持。μClinux是基於Linux開發的,繼承了Linux的強大網路管理功能,許多資料可以在Internet上方便下載。
(3)支持功能擴展。雖然與Linux相比,μClinux經過了大幅度的瘦身,但是這並沒有妨礙μClinux提供豐富的功能擴展接口。比如,雖然μClinux多任務支持模式較為簡單,但是在必須需要複雜多任務環境的時候,可以進行方便的擴展。
(4)提供強大的系統管理能力。雖然嵌入式系統的應用程式,一般可以在裸板上運行,但為了使系統具有任務管理存儲器管理、設備管理、事件管理、訊息管理、佇列管理和中斷處理等全方位的能力,更好地分配系統資源,用戶就需要針對自己的硬體平台和實際套用選擇適當的嵌入式作業系統。μClinux就是一種不錯的選擇。
(5)可以根據不同的套用需求量身定做作業系統。這就是定製μClinux的剪裁技術。要讓uClinux支持一個新硬體體系,首先需要收集構建代碼的工具,然後開始剪裁和編譯核心,使構建的作業系統適合具體的硬體需求。一旦核心支持設計的處理器功能,作業系統就可以正常運行了。在此基礎上,還要增加必要的驅動程式的支持,以便各種硬體設備能夠高效能地發揮作用。典型的驅動程式集合中包括了諸如控制台終端、基本串、並行設備、包含了根檔案系統塊設備的存儲設備驅動以及其他特殊設備的驅動程式等。

技術環節剖析

GNU通用公共許可證的授權下,μClinux作業系統的用戶可以使用幾乎所有LinuxAPI函式,不會因為沒有記憶體管理單元MMU而受到影響;而且,μClinux在標準的Linux基礎上進行了適當的裁剪和最佳化,形成了一個高度最佳化的、代碼緊湊的嵌入式Linux,體積小了,但是仍然保留了Linux的大多數的優點,比如穩定性好、強大的網路功能、良好的可移植性、完備的檔案系統支持功能、以及標準豐富的應用程式接口API等,可以支持類似ARM7TDMI等類型多的小巧玲瓏的中央處理器。下面對μClinux二此開法過程中涉及到的主要功能部件以及各部分的技術內涵,進行較為深入的分析和討論,以便網路管理人員在套用μClinux進行系統功能擴展時參考:
(1)系統載入模組,該模組又稱BootLoader。它是負責μClinux作業系統核心啟動的基本功能模組。具體來說,該功能模組可以完成建立uCLinux核心運行環境和從快閃記憶體Flash中裝載初始化核心鏡象。
(2)系統核心初始化模組,該模組又稱SystemInit。啟動μClinux核心時,首先受到調用的功能函式是StartKernel()函式。該函式的主要任務是初始化核心的其他部分。具體包括:捕獲終端請求IRQ進程調度、設備驅動程式載入、標定延遲循環,進而調用fork的"init"進程,以啟動任務管理環境。
(3)系統調用模組,該模組又稱為SystemCall模組。在μClinux系統執行完"init"程式後,核心對程式流不再有直接的控制權,它此後的作用僅限於處理捕獲到的中斷請求事件(例如硬體中斷),並為系統調用提供服務進程。
(4)設備驅動模組,又稱為DeviceDriver模組。在幾乎所有的作業系統中,設備驅動都占據大部分的系統空間,μClinux也不例外。同其他各類作業系統一樣,μClinux的設備驅動程式,為系統連線和控制的硬體設備與作業系統之間提供通訊接口。同時,各設備發出的中斷請求系統調用模組負責安排回響時間,並提供服務程式的入口地址。
(5)檔案系統,又稱為FileManagement模組。任何一個作業系統,包括μClinux在內,它們最重要的任務之一就是對多種檔案系統進行有效的管理。μClinux在檔案管理方面具有很強的兼容性,很容易同其他作業系統共存、共享各類常用檔案。特別值得推崇的是,μClinux可以透明地支持許多不同類型的檔案系統,將各種安裝的檔案和檔案系統以一個完整的虛擬檔案系統的形式呈現給用戶。同時,μClinux還帶有一個完整的TCP/IP協定,可以支持各種流行的網路協定,方便用戶使用系統訪問網路資源,是一個功能豐富、簡便易用的網路作業系統。

開發環境

了解了μClinux作業系統的基本技術細節,對於網管人員在完成基本管理職能的基礎上,使用開發環境進一步完善和提高自身的網路管理技能,具有非常重要的指導意義。在具有嵌入式開發支持功能的路由器等網路產品方面,經常使用的μClinux開發平台是GNU開發套件。
該開發套件包括:
(1)常規C編譯器GCC,可以使用標準C進行系統功能的二次開發
(2)C++編譯器GCC++,可以使用面向對象開發模式完成系統功能的二次開發。
(3)彙編器AS和連結LD,可以使用彙編語言進行系統功能的二次開發。
(4)其它工具軟體,包括:二進制轉換工具(OBJCOPY,OBJDUMP),軟體調試工具(GDB.GD BSERVER,KGDB)和基於不同硬體平台的開發庫。
上述開發環境的技術特點如下:
(1)代碼效率高。在GNU GCC/GCC++語言環境的支持下,用戶可以使用流行的C/C++語言開發應用程式。該開發模式下,網路管理人員可以輕鬆介入到開發工作中,並可以生成高效率運行代碼。
(2)靈活性強。GNU開發工具都是採用命令行的方式,用戶掌握起來相對比較困難,不如基於Windows系統的開發工具好用,但是GNU工具的複雜性是由於它更貼近編譯器和作業系統的底層,並提供了更大的靈活性。
(3)豐富的網上免費資源。上述工具都是按GPL著作權聲明發布的,任何人都可以從網上免費獲取全部的原始碼,無需任何費用的投入,對於一般小型單位的網路質量的提升可以起到投入少、見效快的神奇效果。GNU開發套件作為通用的Linux開放套件,包括一系列的開發調試工具。
(4)易學易用。網路管理人員一般都具有計算機以及相關專業的背景,都經歷過軟體的初步培訓過程,這些技術人員一旦學習和掌握了相關工具後,就可以掌握網路系統設計和二次開發的基礎知識。運行於Linux作業系統下的自由軟體GNU gcc編譯器,不僅可以編譯Llnux作業系統下運行的應用程式,還可以編譯Linux核心本身,甚至可以作交叉編譯,編譯運行於其它CPU上的程式。

相關詞條

熱門詞條

聯絡我們