uCLinux是一種優秀的嵌入式Linux版本,是micro-Controller-Linux的縮寫。它秉承了標準Linux的優良特性, 經過各方面的小型化改造,形成了一個高度優化的、代碼緊湊的嵌入式Linux。雖然它的體積很小,卻仍然保留了Linux的大多數的優點:穩定、良好的移植性、優秀的網絡功能、對各種文件系統完備的支持和標準豐富的API。它專為嵌入式系統做了許多小型化的工作,目前已支持多款CPU。 其編譯后目標文件可控制在幾百KB數量級,并已經被成功地移植到很多平臺上。
本文引用地址:http://www.eepw.com.cn/article/201808/388128.htmuClinux從Linux 2.0/2.4內核派生而來[1] ,沿襲了Linux的絕大部分特性。它是專門針對沒有MMU(內存管理單元)的CPU,并且為嵌入式系統做了許多小型化的工作。它通常用于具有很少內存或Flash的嵌入式操作系統。在GNU通用許可證的保證下,運行uClinux操作系統的用戶可以使用幾乎所有的Linux API函數。由于經過了裁剪和優化,它形成了一個高度優化,代碼緊湊的嵌入式Linux。它具有體積小、穩定、良好的移植性、優秀的網絡功能、完備的對各種文件系統的支持,以及豐富的API函數等優點。uClinux與Linux在兼容性方面表現出色,uClinux除了不能實現fork()外,其余uClinux的API函數與標準Linux完全相同。
特點
標準Linux可能采用的小型化方法
1. 重新編譯內核
Linux內核采用模塊化的設計,即很多功能塊可以獨立的加上或卸下,開發人員在設計內核時把這些內核模塊作為可選的選項,可以在編譯系統內核時指定。因此一種較通用的做法是對Linux內核重新編譯,在編譯時仔細的選擇嵌入式設備所需要的功能支持模塊,同時刪除不需要的功能。通過對內核的重新配置,可以使系統運行所需要的內核顯著減小,從而縮減資源使用量。
2. 制作root文件系統映象
Linux系統在啟動時必須加載根(root)文件系統,因此剪裁系統同時包括root file system的剪裁。在x86系統下,Linux可以在Dos下,使用Loadlin文件加載啟動,
uClinux采用的小型化方法
1.uClinux的內核加載方式
uClinux的內核有兩種可選的運行方式:可以在flash上直接運行,也可以加載到內存中運行。這種做法可以減少內存需要。
Flash運行方式:把內核的可執行映象燒寫到flash上,系統啟動時從flash的某個地址開始逐句執行。這種方法實際上是很多嵌入式系統采用的方法。
內核加載方式:把內核的壓縮文件存放在flash上,系統啟動時讀取壓縮文件在內存里解壓,然后開始執行,這種方式相對復雜一些,但是運行速度可能更快(ram的存取速率要比flash高)。同時這也是標準Linux系統采用的啟動方式。
2.uClinux的根(root)文件系統
uClinux系統采用romfs文件系統,這種文件系統相對于一般的ext2文件系統要求更少的空間??臻g的節約來自于兩個方面,首先內核支持romfs文件系統比支持ext2文件系統需要更少的代碼,其次romfs文件系統相對簡單,在建立文件系統超級塊(superblock)需要更少的存儲空間。Romfs文件系統不支持動態擦寫保存,對于系統需要動態保存的數據采用虛擬ram盤的方法進行處理(ram盤將采用ext2文件系統)。
3.uClinux的應用程序庫
uClinux小型化的另一個做法是重寫了應用程序庫,相對于越來越大且越來越全的glibc庫,uClibc對libc做了精簡。uClinux對用戶程序采用靜態連接的形式,這種做法會使應用程序變大,但是基于內存管理的問題,不得不這樣做(這將在下文對uClinux內存管理展開分析時進行說明),同時這種做法也更接近于通常嵌入式系統的做法。
缺點
正如中國古語云“人無完人”,uClinux也有一些不足之處:
文檔的不足
與Linux及其他自由軟件類似,uClinux的文檔十分不足:缺乏組織和一致的文檔、熱門技術和分類文檔眾多而雜亂無章、非熱點部分文檔缺失甚至沒有文檔。對于開發人員而言,往往要深入程序的源代碼找尋有用的資料。
Bug問題
uClinux與硬件平臺直接相關。對于有商業公司贊助的硬件平臺,其相關代碼和Bug更新較快,編譯和執行都十分順利;但對于非商業支持的硬件平臺,其內核和應用程序代碼都得不到及時更新和排錯。這種現象在內核源代碼樹還不是十分普遍,但在uClinux自帶的應用程序庫中卻經常發生編譯錯誤,往往是增加了一個應用程序或改變了運行庫便導致無法編譯。這就需要開發者投入足夠的時間和精力進行排錯和修改,也會導致開發進度的延誤。
與Linux一樣,uClinux本身并不支持實時性應用,但通過實時性的修改(RTLinux或RTAI)可以提供基于內核空間和用戶空間的硬實時和軟實時的系統調用。
嵌入式操作系統uCfinux的應用開發
下面通過本系統的一個具體實例來描述如何將應用程序添加~UuClinux,主要的標準方法有如下幾點:
(1)編寫自己的源程序代碼和相應Makefile文件。uClinux/Linux的應用程序通常放在OS—HOME/user目錄下,我們在該目錄下創建一個XDQ目錄.且在該目錄下創建源文件xdq.c及它相應的Makefile文件。
(2)修改uClinux—Samsung/config/config.ink件。在該文件合適的位置增加如下內容:
mainmenu_ opTIon next comment
comment ‘xdq’
bool ‘xdq’ CONFIG_ USER_ XDQ_XDQ
endmenu
目的是在Make menuconfig時,uCLinux就會提示你是否需要編譯這個新的應用程序。
(3)修改uClinux—Samsung/user/Makefile 件。在該文件合適的位置增加下面一句:
dir-$(CONFIG_USER—XDQ—XDQ)+=xdq
加上這句后,如果你在Make menuconfig時選擇了這個新應用程序。則編譯時就會編譯這個新的應用程序。
把修改工作完成后要進行內核的編譯工作,按照以前編譯uClinux內核的步驟進行就可以了。
值得注意的一點是在第一步make menuconfig進行內核配置的時候.在Target Platform SelecTIon,要選中Customize Vendor/User SetTIngs fNEW),選中了該選項后,與最初我們配置內核過程不同的是.它還會在make menuconfig的最后出現一個對話框,在此進行用戶應用程序的配置,在對話框里出現的文字是在config.in文件中添加的文字,選中要編譯的應用程序所在路徑,就會出現另一個對話框,選中要編譯的文件名,保存好內核配置后退出。用這種方法生成的可執行文件在romfs/bin目錄下。
網站首頁 |網站簡介 | 關于我們 | 廣告業務 | 投稿信箱
Copyright © 2000-2020 www.xnbt.net All Rights Reserved.
中國網絡消費網 版權所有 未經書面授權 不得復制或建立鏡像
聯系郵箱:920 891 263@qq.com
主站蜘蛛池模板: 国产a级特黄的片子视频| 波多野结衣女教师6bd| 亚洲最大成人网色| 日女人p| 国产乱子伦在线观看不卡| 国产一区二区在线观看视频| 香港台湾日本三级纶理在线视| 国产精品久久国产三级国不卡顿| 最新国产精品精品视频| 色www视频永久免费男的天堂| 717影院理伦午夜论八戒| 女的和男的一起怼怼| 蜜汁肉桃h全篇| 一本色道久久综合亚洲精品| 性生活2| 大陆老太交xxxxⅹhd| 丰乳娇妻镇| 欧美天堂视频| 殴美黄色| 亚韩在线| maya玛雅□一亚洲电影| 日韩一卡2卡3卡4卡| 亚洲免费观看在线视频| 亚韩在线| 免费观看女人与狥交视频在线 | 嗨动漫在线观看| 毛片福利视频| 精品精品国产高清a毛片| 欧美性视频18~19| 把腿抬起来就可以吃到扇贝了| 伊人精品久久久大香线蕉99| 久久亚洲精品人成综合网| 中文字幕一精品亚洲无线一区| 久久综合久久综合九色| 欧美无卡| 中文字幕亚洲综合久久菠萝蜜| 国产综合久久久久| 福利片一区| 国产欧美日韩精品专区| 女人扒开| 最新欧美精品一区二区三区|