一、什么是文件系統(tǒng) (Filesystem)
文件系統(tǒng)是包括在一個磁盤(包括光盤、軟盤、閃盤及其它存儲設(shè)備)或分區(qū)的目錄結(jié)構(gòu);一個可應(yīng)用的磁盤設(shè)備可以包含一個或多個文件系統(tǒng);如果您想進(jìn)入一個文件系統(tǒng),首先您要做的是掛載(mount)文件系統(tǒng);為了掛載(mount)文件系統(tǒng),您必須指定一個掛載點(diǎn)。
二、主要嵌入式采用的文件系統(tǒng)
* Linux 中,rootfs 是必不可少的。PC 上主要實(shí)現(xiàn)有 ramdisk 和直接掛載 HD(Harddisk,硬盤) 上的根文件系統(tǒng);嵌入式中一般不從 HD 啟動,而是從 Flash 啟動,最簡單的方法是將 rootfs load 到 RAM 的 RAMDisk,稍復(fù)雜的就是 直接從Flash 讀取的 Cramfs,更復(fù)雜的是在 Flash 上分區(qū),并構(gòu)建 JFFS2 等文件系統(tǒng)。
* RAMDisk 將制作好的 rootfs 壓縮后寫入 Flash,啟動的時候由 Bootloader load 到RAM,解壓縮,然后掛載到 /。這種方法操作簡單,但是在 RAM 中的文件系統(tǒng)不是壓縮的,因此需要占用許多嵌入式系統(tǒng)中稀有資源 RAM。
ramdisk 就是用內(nèi)存空間來模擬出硬盤分區(qū),ramdisk通常使用磁盤文件系統(tǒng)的壓縮存放在flash中,在系統(tǒng)初始化時,解壓縮到SDRAM并掛載根文件系統(tǒng), 在linux系統(tǒng)中,ramdisk有二種,一種就是可以格式化并加載,在linux內(nèi)核2.0/2.2就已經(jīng)支持,其不足之處是大小固定;另一種是 2.4的內(nèi)核才支持,通過,ramfs來實(shí)現(xiàn),他不能被格式化,但用起來方便,其大小隨所需要的空間增加或減少,是目前l(fā)inux常用的ramdisk技術(shù).
* initrd 是 RAMDisk 的格式,kernel 2.4 之前都是 image-initrd,Kernel 2.5 引入了 cpio-initrd,大大簡化了 Linux 的啟動過程,附合 Linux 的基本哲學(xué):Keep it simple, stupid(KISS). 不過cpio-initrd 作為新的格式,還沒有經(jīng)過廣泛測試,嵌入式 Linux 中主要采用的還是 image-initrd。
* Cramfs 是 Linus 寫的很簡單的文件系統(tǒng),有很好的壓縮綠,也可以直接從 Flash 上運(yùn)行,不須 load 到 RAM 中,因此節(jié)約了 RAM。但是 Cramfs 是只讀的,對于需要運(yùn)行時修改的目錄(如: /etc, /var, /tmp)多有不便,因此,一般將這些目錄做成ramfs 等可寫的 fs。
* SquashFS 是對 Cramfs 的增強(qiáng)。突破了 Cramfs 的一些限制,在 Flash 和 RAM 的使用量方面也具有優(yōu)勢。不過,據(jù)開發(fā)者介紹,在性能上可能不如 Cramfs。這也是一種新方法,在嵌入式系統(tǒng)采用之前,需要經(jīng)過更多的測試
新聞熱點(diǎn)
疑難解答
圖片精選