如果使用RAMDISK方式來使用檔案系統,那么在系統運行之後,首先得把flash上的映像檔案全部解壓到ram中,構造ramdisk環境,才可以運行程式,但有一個致命的弱點,在正常情下,同樣的代碼不僅在flash占用了空間,而且還在ram中占用極大的空間,這違背了嵌入式中節省資源的原則.
cramfs檔案系統並不需要一次性地將檔案系統中的所有內容解壓到ram中,而只是是系統需要訪問某個位置的數據時,馬上計算出該數據在cramfs中的位置,將其解壓到ram中,然後通過記憶體訪問來獲取數據,cramfs中的解壓縮之後的記憶體中的數據存放位置都是由cramfs檔案系統本身來管理,用戶並不需要實現過程,因此增加了透明度,給開發人員節約了時間.
cramfs擁有以下一些特性:
採用實時解壓縮方式,但解壓縮的時候有延遲。
cramfs的數據都是經過處理、打包的,對其進先寫操作有一定困難。所以cramfs不支持寫操作,這個特性剛好適合嵌入式套用中使用Flash存儲檔案系統的場合。
在cramfs中,默認檔案最大不能超過16MB,可以通過修改cramfs-1.1/linux/ cramfs_fs.h下的CRAMFS_SIZE_WIDTH的大小來支持最大為256MB的單個檔案,當然linux核心參數也要修改(include/linux/cramfs_fs.h)成相同的參數。
支持組標識(gid),但是mkcramfs只將gid的低8位保存下來,因此只有這8位是有效的。
支持硬連結。但是cramfs並沒有完全處理好,硬連結的檔案屬性中,連結數仍然為1.
cramfs的目錄中,沒有“.”和“..”這兩項。因此,cramfs中的目錄的連結數通常也僅有一個。
cramfs中,不會保存檔案的時間戳(timestamps)信息。當然,正在使用的檔案由於inode保存在記憶體中,因此其時間可以暫時地變更為最新時間,但是不會保存到cramfs檔案系統中去。
當前版本的cramfs只支持PAGE_CACHE_SIZE為4096的核心。因此,如果發現cramfs不能正常讀寫的時候,可以檢查一下核心的參數設定。
相關詞條
-
cramfs
CRAMFS檔案系統是專門針對快閃記憶體設計的唯讀壓縮的檔案系統,其容量上限為256M,採用zlib壓縮,檔案系統類型可以是EXT2或EXT3。
-
根檔案系統
簡介首先要明白的是“什麼是檔案系統”,檔案系統是對一個存儲設備上的數據和元數據進行組織的機制。這種機制有利於用戶和作業系統的互動...
簡介 檔案系統 -
LSLN
採用cramfs格式,它是一種唯讀的快閃記憶體檔案系統。製作cramfs檔案...,運行"mkcramfs目錄名image名"就可以生成一個cramfs檔案...://sourceforge.net/projects/cramfs/。 4.2jfss2...
基本概述 參考資料 -
《ARM9嵌入式Linux開發實驗與實踐》
。第7章是Linux檔案系統及應用程式添加、調試實驗,包括cramfs檔案...系統及應用程式添加、調試實驗7.1 cramfs檔案系統2137.2...
基本信息 內容簡介 前言 目錄 -
ARM嵌入式Linux套用開發入門
建立cramfs根檔案系統映像 7.4.1 Cramfs工具包的使用 7.4.2 構建Cramfs根檔案系統 7.5 小結 第8章...
圖書信息 內容簡介 目錄 -
7-zip
:ARJ,CAB, CHM, CPIO, CramFS, DEB, DMG..., CramFS, DEB, DMG, FAT, HFS, ISO, LZH...
軟體特點 軟體優點 系統支持 操作過程 壓縮技巧 -
initrd
英文含義什麼是初始 RAM 磁碟初始RAM磁碟(initrd)是在實際根檔案系統可用之前掛載到系統中的一個初始根檔案系統。ini...
英文含義 所用工具 -
7zip
, CAB, CHM, CPIO, CramFS, DEB, DMG...
特點 軟體優點 操作過程 壓縮技巧 其他技巧 -
嵌入式產品
:Jffs2,Yaffs,Cramfs,Ramdisk,NFS等,配置核心時...Yaffs: 用於NandFlash,速度快,不支持數據壓縮Cramfs...
嵌入式產品開發流程 交叉工具鏈 核心製作 根檔案系統 ramdisk製作