CRAMFS檔案系統是專門針對快閃記憶體設計的唯讀壓縮的檔案系統,其容量上限為256M,採用zlib壓縮,檔案系統類型可以是EXT2或EXT3.
基本介紹
- 中文名:cramfs
- 針對:快閃記憶體
- 性質:檔案系統
- 容量上限:256M
對比優勢,特性,
對比優勢
如果使用RAMDISK方式來使用檔案系統,那么在系統運行之後,首先得把flash上的映像檔案全部解壓到ram中,構造ramdisk環境,才可以運行程式,但有一個致命的弱點,在正常情下,同樣的代碼不僅在flash占用了空間,而且還在ram中占用極大的空間,這違背了嵌入式中節省資源的原則.
cramfs檔案系統並不需要一次性地將檔案系統中的所有內容解壓到ram中,而只是當系統需要訪問某個位置的數據時,馬上計算出該數據在cramfs中的位置,將其解壓到ram中,然後通過記憶體訪問來獲取數據,cramfs中的解壓縮之後的記憶體中的數據存放位置都是由cramfs檔案系統本身來管理,用戶並不需要實現過程,因此增加了透明度,給開發人員節約了時間.
特性
採用實時解壓縮方式,但解壓縮的時候有延遲。
在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的目錄中,沒有“.”和“..”這兩項。因此,cramfs中的目錄的連結數通常也僅有一個。
cramfs中,不會保存檔案的時間戳(timestamps)信息。當然,正在使用的檔案由於inode保存在記憶體中,因此其時間可以暫時地變更為最新時間,但是不會保存到cramfs檔案系統中去。