jffs與yaffs 文件系統的區別

源地址:http://www.cnblogs.com/simonshi/archive/2010/03/10/1682932.html

JFFS是由瑞典的Axis Communications Ab公司開發的(1999,以GNU發佈),針對flash設備的特性爲嵌入式設備開發的.(我邊上的兄弟曾想去那裏作畢業設計)

JFFS1和JFFS2的設計中都考慮到了FLASH的特性特別是滿足了上述3個條件,包括了垃圾回收,壞塊管理等功能. 這兩種文件系統屬於LFS(Log-structured File System).這種文件系統的特點是一旦數據出錯,容易恢復,但是系統運行是需要佔用一定的內存空間,這些空間就是用來存儲”log”的.

JFFS的缺點就是加載時間太長,因爲每次加載都需要將FLASH上的所有節點(JFFS的存儲單位)到內存,這樣也佔用了可觀的內存空間.除此之外,”circle log”設計使得在對文件數據進行所有的數據都會被重寫,這樣造成不必要的時間,同時也會減少FLASH的壽命.

JFFS2對JFFS1作了些改進,比如所需的內存變少了,垃圾回收機制也優化了.

針對JFFS1,JFFS2的缺點,JFFS3出現了.

YAFFS1 & YAFFS2
“Yet Another Flash File System”作者是新西蘭的Charles Manning爲一家名叫Alpha one 的公司(http://www.aleph1.co.uk/)設計的,是第一個爲NAND Flash設計的文件系統.共兩個版本YAFFS1 和YAFFS2.

YAFFS1支持512Bytes/Page的NAND Flash;後者YAFFS2支持2kBytes/Page的NAND Flash. YAFFS文件系統也屬於LFS.

跟其他文件系統比較,它具有更好的可移植性,甚至可以使用在沒有操作系統的設備上(called “YAFFS/Direct”). YAFFS採用模塊化設計,雖然最初是用在linux系統上的,但是也已經移植到其他系統比如wince.

還有個突出的優點是它在mount的時候需要很少的內存.(如果是小頁—512byte/page,每1MByte NAND大約需要4KBytes內存;大頁需要大概1KBytes RAM/1MByte NAND)

JFFS與YAFFS比較,兩者各有長處. 一般來說,對於小於64MBytes的NAND Flash,可以選用JFFS;如果超過64MBytes,用YAFFS比較合適.

http://www.yaffs.net/yaffs-internals
http://www.yaffs.net/yaffs-direct-user-guide



------------------------------------------------------------------我想說的話--------------------------------------------------------------------------------

目前我在做的AM1808移植項目中碰到的文件系統啓動過慢(10S)的原因,應該就在於此。

項目使用的AM1808片子上的nandflash是128M的,而demo提供的文件系統是jffs的。

接下來嘗試自己編譯一個yaffs的文件系統,看看能否顯著加快啓動速度。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章