<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > cramfs文件系統

cramfs文件系統

作者: 時(shí)間:2011-02-25 來(lái)源:網(wǎng)絡(luò ) 收藏

1、cramfs的特點(diǎn)

的環(huán)境之下,內存和外存資源都需要節約使用。如果使用RAMDISK方式來(lái)使用文件系統,那么在系統運行之后,首先要把外存(Flash)上的映像文件解壓縮到內存中,構造起RAMDISK環(huán)境,才可以開(kāi)始運行程序。但是它也有很致命的弱點(diǎn)。在正常情況下,同樣的代碼不僅在外存中占據了空間(以壓縮后的形式存在),而且還在內存中占用了更大的空間(以解壓縮之后的形式存在),這違背了環(huán)境下盡量節省資源的要求。

使用cramfs就是一種解決這個(gè)問(wèn)題的方式。cramfs是一個(gè)壓縮式的文件系統,它并不需要一次性地將文件系統中的所有內容都解壓縮到內存之中,而只是在系統需要訪(fǎng)問(wèn)某個(gè)位置的數據的時(shí)侯,馬上計算出該數據在cramfs中的位置,將其實(shí)時(shí)地解壓縮到內存之中,然后通過(guò)對內存的訪(fǎng)問(wèn)來(lái)獲取文件系統中需要讀取的數據。cramfs中的解壓縮以及解壓縮之后的內存中數據存放位置都是由cramfs文件系統本身進(jìn)行維護的,用戶(hù)并不需要了解具體的實(shí)現過(guò)程,因此這種方式增強了透明度,對開(kāi)發(fā)人員來(lái)說(shuō),既方便,又節省了存儲空間。

cramfs擁有以下一些特性:

采用實(shí)時(shí)解壓縮方式,但解壓縮的時(shí)侯有延遲。

cramfs的數據都是經(jīng)過(guò)處理、打包的,對其進(jìn)先寫(xiě)操作有一定困難。所以cramfs不支持寫(xiě)操作,這個(gè)特性剛好適合應用中使用Flash存儲文件系統的場(chǎng)合。

在cramfs中,文件最大不能超過(guò)16MB。

支持組標識(gid),但是mkcramfs只將gid的低8位保存下來(lái),因此只有這8位是有效的。

支持硬鏈接。但是cramfs并沒(méi)有完全處理好,硬鏈接的文件屬性中,鏈接數仍然為1.

cramfs的目錄中,沒(méi)有“.”和“..”這兩項。因此,cramfs中的目錄的鏈接數通常也僅有一個(gè)。

cramfs中,不會(huì )保存文件的時(shí)間戳(timestamps)信息。當然,正在使用的文件由于inode保存在內存中,因此其時(shí)間可以暫時(shí)地變更為最新時(shí)間,但是不會(huì )保存到cramfs文件系統中去。

當前版本的cramfs只支持PAGE_CACHE_SIZE為4096的內核。因此,如果發(fā)現cramfs不能正常讀寫(xiě)的時(shí)侯,可以檢查一下內核的參數設置。


2、使用cramfs

可以從http://sourceforge.net/projects/cramfs/下載cramfs-1.1.tar.gz。然后執行

tar zxvf cramfs-1.1.tar.gz

進(jìn)入解包之后生成cramfs-1.1目錄,執行編譯命令:

make

編譯完成之后,會(huì )生成mkcramfs和cramfsck兩個(gè)工具,其中cramfsck工具是用來(lái)創(chuàng )建cramfs文件系統的,而mkcramfs工具則用來(lái)進(jìn)行cramfs文件系統的釋放以及檢查。

下面是mkcramfs的命令格式:

mkcramfs [-h] [-e edition] [-i file] [-n name] dirname outfile

mkcramfs的各個(gè)參數解釋如下:

-h:顯示幫助信息

-e edition:設置生成的文件系統中的版本號

-i file:將一個(gè)文件映像插入這個(gè)文件系統之中(只能在Linux2.4.0以后的內核版本中使用)

-n name:設定cramfs文件系統的名字

dirname:指明需要被壓縮的整個(gè)目錄樹(shù)

outfile:最終輸出的文件


cramfsck的命令格式:

cramfsck [-hv] [-x dir] file

cramfsck的各個(gè)參數解釋如下:

-h:顯示幫助信息

-x dir:釋放文件到dir所指出的目錄中

-v:輸出信息更加詳細

file:希望測試的目標文件


本段摘自于:《Linux與》,這本書(shū)由李善平 劉文峰 王煥龍等編著(zhù)。

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)


評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>