一、FLASH轉換層(FTL)數據結構
EXt2/EXT3/EXT4文件系統能夠經過FTL實現對flash的支持,由於FTL能夠將閃存flash模擬成磁盤結構。spa
在ext2文件系統的基礎上上,爲了保證數據的一致性ext3文件系統增長了日誌功能。日誌
在ext3文件系統的基礎上ext4文件系統增長了對大文件(T單位級的文件)的支持,另外對於每一個目錄下的文件個數沒有了限制。blog
二、JFFS、JFFS2文件系統(鏈表結構,典型的日誌文件系統)接口
書上是這樣說的:內存
JFFS2 是一個日誌結構(log-structured)的文件系統,它在閃存上順序地存儲包含數據和原數據(meta-data)的節點。 JFFS2 的日誌結構存儲方式使得它能對閃存進行 out-of-place 更新,而不是磁盤所採用的 in-place 更新方式。它提供的垃圾回收機制,使得咱們不須要立刻對擦寫越界的塊進行擦寫,而只須要對其設置一個標誌,標明爲「髒」塊。當可用的塊數不足時,垃圾回收機制纔開始回收這些節點。同時,因爲 JFFS2 基於日誌結構,在乎外掉電後仍然能夠保持數據的完整性,而不會丟失數據。所以, JFFS2 成爲了目前 Flash 上應用最普遍的文件系統。flash
JFFS2 掛載時須要掃描整塊 Flash 以肯定節點的合法性以及創建必要的數據結構,這使得 JFFS2 掛載時間比較長。又因爲 JFFS2 將節點信息保存在內存中,使得它所佔用的內存量和節點數目成正比。再
者,因爲 JFFS2 經過隨機方式來實現磨損平衡,它不能保證磨損平衡的肯定性 。
三、YAFFS、YAFFS2class
YAFFS2 可以更好地支持大容量的 NAND Flash 芯片,而前者只針對頁大小爲 512 字節的 NAND 。
基礎
四、UBIFS(Unsorted Block Images File System)垃圾回收
UBI:是一種相似於LVM的邏輯卷管理層,主要實現wear-leaving和volume management功能。
UBIFS:這是基於UBI的FLASH日誌文件系統。UBIFS並不直接工做於MTD之上而是工做於UBI卷之上。
涉及到三個子系統
一、MTD子系統,提供對flash芯片的訪問接口,MTD子系統提供了MTDdevice的概念,能夠被認爲是裸的flash(raw flash,區別於帶有FTL的flash或者SSD)
二、UBI subsystem,爲flashdevice提供了wear-leaving和volume management功能。UBI工做在MTD設備之上,提供了UBI volume;UBI是MTD設備的高層表示,對上層屏蔽了一些直接使用MTD設備須要處理的問題,好比wear-leaving以及壞塊管理
三、UBIFS文件系統,工做在UBI之上,其中壞塊管理,磨損均衡,錯誤預測等功能有UBI子系統完成,UBIFS不予關心。