1. 程式人生 > >嵌入式Linux檔案系統-jffs2,yaffs2,ubifs,ramfs,網路檔案系統,

嵌入式Linux檔案系統-jffs2,yaffs2,ubifs,ramfs,網路檔案系統,

綜述:

常見的檔案系統有統的格式有:jffs2,yaffs2,ubifs等。但可基於儲存或者執行的位置可分為

flash型檔案系統,Ram型檔案系統,網路檔案系統

Flash型檔案系統:

Flash因為其特殊的硬體結構,普通的檔案系統如ext2,ext3等不適合使用。常見的檔案系統的格式有:jffs2,yaffs2,ubifs等。

jffs2

主要適用於NorFlash,不太適用與Nand。因為Nand快閃記憶體容量一般比較大,jffs為維護日誌節點佔用的記憶體空間迅速增大,同時jffs檔案系統在掛載時,需要掃描整個flash內容,尋找日誌節點,建立檔案結構,較耗時。

yaffs2

主要為nand設計的日誌型檔案系統,自帶NAND晶片的驅動,並且為嵌入式系統提供了直接訪問檔案系統的API,使用者可以不使用Linux中的MTD與VFS,直接對檔案系統操作。當然,yaffs也可與MTD驅動程式配合使用。yaffs與yaffs2的主要區別在於,前者僅支援小頁(512 Bytes) NAND快閃記憶體,後者則可支援大頁(2KB) NAND快閃記憶體。同時,yaffs2在記憶體空間佔用、垃圾回收速度、讀/寫速度等方面均有大幅提升。

Cramfs

一種只讀的壓縮檔案系統,每一頁(4KB)被單獨壓縮,可以隨機頁訪問,其壓縮比高達2:1,為嵌入式系統節省大量的Flash儲存空間,使系統可通過更低容量的FLASH儲存相同的檔案,從而降低系統成本。它也基於MTD驅動程式。以壓縮方式儲存,在執行時解壓縮,所以不支援應用程式以XIP方式執行,所有的應用程式要求被拷到RAM裡去執行。速度快,效率高,其只讀的特點有利於保護檔案系統免受破壞,提高了系統的可靠性。

ubifs

後續接著寫。

 

Ram型檔案系統

Ramfs是Linus Torvalds開發的一種基於記憶體的檔案系統,工作於虛擬檔案系統(VFS)層,不能格式化,可以建立多個,在建立時可以指定其最大能使用的記憶體大小。Ramfs/tmpfs檔案系統把所有的檔案都放在RAM中,所以讀/寫操作發生在RAM中,可以用ramfs/tmpfs來儲存一些臨時性或經常要修改的資料,例如/tmp和/var目錄,這樣既避免了對Flash儲存器的讀寫損耗,也提高了資料讀寫速度。Ramfs/tmpfs相對於傳統的Ramdisk的不同之處主要在於:不能格式化,檔案系統大小可隨所含檔案內容大小變化。

 

網路檔案系統

NFS是在不同機器、不同作業系統之間通過網路共享檔案的技術。在嵌入式Linux系統的開發除錯階段,可以利用該技術在主機上建立基於NFS的根檔案系統,掛載到嵌入式裝置,可以很方便地修改根檔案系統的內容。