基于uClinux和Linux的對比分析
uCLinux是一種優(yōu)秀的嵌入式Linux版本,是micro-Conrol-Linux的縮寫。它秉承了標(biāo)準(zhǔn)Linux的優(yōu)良特性, 經(jīng)過各方面的小型化改造,形成了一個高度優(yōu)化的、代碼緊湊的嵌入式Linux.雖然它的體積很小,卻仍然保留了Linux的大多數(shù)的優(yōu)點(diǎn):穩(wěn)定、良好的移植性、優(yōu)秀的網(wǎng)絡(luò)功能、對各種文件系統(tǒng)完備的支持和標(biāo)準(zhǔn)豐富的API.
Linux是一種很受歡迎的操作系統(tǒng),它與UNIX系統(tǒng)兼容,開放源代碼。它原本被設(shè)計為桌面系統(tǒng),現(xiàn)在廣泛應(yīng)用于服務(wù)器領(lǐng)域。而更大的影響在于它正逐漸的應(yīng)用于嵌入式設(shè)備。
uClinux從Linux 2.0/2.4內(nèi)核派生而來[1],沿襲了Linux的絕大部分特性。它是專門針對沒有MMU(內(nèi)存管理單元)的CPU,并且為嵌入式系統(tǒng)做了許多小型化的工作。它通常用于具有很少內(nèi)存或Flash的嵌入式操作系統(tǒng)。在GNU通用許可證的保證下,運(yùn)行uClinux操作系統(tǒng)的用戶可以使用幾乎所有的Linux API函數(shù)。由于經(jīng)過了裁剪和優(yōu)化,它形成了一個高度優(yōu)化,代碼緊湊的嵌入式Linux.它具有體積小、穩(wěn)定、良好的移植性、優(yōu)秀的網(wǎng)絡(luò)功能、完備的對各種文件系統(tǒng)的支持,以及豐富的API函數(shù)等優(yōu)點(diǎn)。uClinux與Linux在兼容性方面表現(xiàn)出色,uClinux除了不能實(shí)現(xiàn)fork()外,其余uClinux的API函數(shù)與標(biāo)準(zhǔn)Linux完全相同。
uClinux的內(nèi)核有兩種可選的運(yùn)行方式:可以在flash上直接運(yùn)行,也可以加載到內(nèi)存中運(yùn)行;內(nèi)核加載方式:把內(nèi)核的壓縮文件存放在flash上,系統(tǒng)啟動時讀取壓縮文件在內(nèi)存里解壓,然后開始執(zhí)行,這種方式相對復(fù)雜一些,但是運(yùn)行速度可能更快。
uClinux系統(tǒng)多采用Romfs文件系統(tǒng),Romfs是一種相對簡單、占用空間較少的文件系統(tǒng)??臻g的節(jié)約來自于兩個方面:首先內(nèi)核支持Romfs文件系統(tǒng)比支持ext2文件系統(tǒng)需要更少的代碼;其次romfs文件系統(tǒng)相對簡單,在建立文件系統(tǒng)超級塊需要更少的存儲空間。Romfs是只讀的文件系統(tǒng),禁止寫操作,因此系統(tǒng)同時需要虛擬盤支持臨時文件和數(shù)據(jù)文件的存儲。
uClinux本身并沒有關(guān)注實(shí)時問題,它并不是為了Linux的實(shí)時性而提出的。另外有一種Linux--Rt-linux關(guān)注實(shí)時問題。Rt-linux執(zhí)行管理器把普通Linux的內(nèi)核當(dāng)成一個任務(wù)運(yùn)行,同時還管理了實(shí)時進(jìn)程。而非實(shí)時進(jìn)程則交給普通Linux內(nèi)核處理。這種方法已經(jīng)應(yīng)用于很多的操作系統(tǒng)用于增強(qiáng)操作系統(tǒng)的實(shí)時性,包括一些商用版UNIX系統(tǒng),Windows NT等等。這種方法優(yōu)點(diǎn)之一是實(shí)現(xiàn)簡單,且實(shí)時性能容易檢驗(yàn)。優(yōu)點(diǎn)之二是由于非實(shí)時進(jìn)程運(yùn)行于標(biāo)準(zhǔn)Linux系統(tǒng),同其它Linux商用版本之間保持了很大的兼容性。優(yōu)點(diǎn)之三是可以支持硬實(shí)時時鐘的應(yīng)用。uClinux可以使用Rt-linux的patch,從而增強(qiáng)uClinux的實(shí)時性,使得uClinux可以應(yīng)用于工業(yè)控制、進(jìn)程控制等一些實(shí)時要求較高的應(yīng)用。