快閃記憶體檔案系統

快閃記憶體檔案系統（），是一種為了在快閃記憶體裝置上存儲資料而設計的檔案系統，如JFFS2與YAFFS等。隨著行動裝置的日漸增加，快閃記憶體的存儲能力增加以及價格下降，這類型的檔案系統變得越來越普遍。

電腦上通行的大部份檔案系統，都是針對碟盤存儲裝置設計的，應用到快閃記憶體上並不適合。一般的檔案系統，可以透過快閃記憶體轉換層（Flash Translation Layer，FTL）寫入快閃記憶體，但是它的缺點是寫入的效率較差。因此，設計快閃記憶體檔案系統仍然是有必要的。
系統概述
快閃記憶體裝置跟碟盤存儲裝置，在硬體上有不同的特性，例如：
抺除區塊（Erasing blocks）：快閃記憶體的區塊（block）在寫入之前，要先做抹除（erase）的動作。抺除區塊的時間可能會很長，因此最好利用系統閒置的時間來進行抹除。
耗損平均技術（Wear leveling）：快閃記憶體的區塊有抺寫次數的限制，重複抺除、寫入同一個單一區塊將會造成讀取速度變慢，甚至損壞而無法使用，因此快閃記憶體裝置的驅動程式需要將抺寫的區塊分散，以延長快閃記憶體壽命。用於快閃記憶體的檔案系統，也需要設計出平均寫入各區塊的功能。
隨機存取（Random access）：一般的硬碟，讀寫資料時，需要旋轉磁碟，以找到存放的磁區，因此，一般使用於磁碟的檔案系統，會作最佳化，以避免搜尋磁碟的作用。但是快閃記憶體可以隨機存取，沒有尋找延遲時間，因此不需要這個最佳化。

設計快閃記憶體檔案系統的基本概念是，當儲存資料需要更新時，檔案系統將會把新的複本寫入一個新的快閃記憶體區塊，將檔案指標重新指向，並在閒置時期將原有的區塊抺除。例如JFFS2與YAFFS，都是這樣設計。

歷史
最早的快閃記憶體檔案系統之一，是微軟所研發的FFS2（Flash File System 2），在1990年代，它被應用在MS-DOS上。

在1994年間，PCMCIA組織，通過了快閃記憶體轉換層（Flash Translation Layer，FTL）的規格，允許Linear Flash裝置能夠看起來像是FAT磁碟裝置，但是仍然保有耗損平均技術的能力。應用相同概念，但為了避免專利爭議，資料光公司（Datalight）創造了FlashFX與FlashFX Pro，作為商業產品。

在Linux上實作的快閃記憶體轉換層，稱為MTD。MTD是一個硬體的抽象層，能夠讓快閃記憶體裝置看起來像是一種區塊裝置，因此能夠將既有的檔案系統，如FAT、Ext、XFS等，直接應用在快閃記憶體上。

範例

参考资料