フラッシュファイルシステム

フラッシュファイルシステム（）は、フラッシュメモリを使用した記憶装置にファイルを格納するためのファイルシステムである。
フラッシュファイルシステムは一般的なファイルシステムと密接に関連があるが、フラッシュメモリの性質と特性に合わせて最適化されており（ライトアンプリフィケーションの回避など）、特定のオペレーティングシステムの中で使用されている。
概要.
汎用ファイルシステムがフラッシュベースの記憶装置で使えるように、ブロックデバイス層はディスクドライブをエミュレートすることができるが、これは、以下の理由により最適状態に及ばない。
ログ構造ファイルシステムの特性は、フラッシュファイルシステムに望ましい。そのようなファイルシステムにはJFFS2、YAFFSがある。
フラッシュメモリの特性のため、ウェアレベリングと誤り訂正を実施するか、メディア全体に渡って書き込みを行いNANDフラッシュブロックの長い消去時間を考慮して設計されたフラッシュファイルシステムが最も使われる。フラッシュ・ファイルシステムの基本的な概念は、次の通りである。フラッシュのデータを更新するとき、ファイルシステムはそのフラッシュブロックの変更後のデータを別のブロックに書き込み、ファイルへのポインタを変更し、後で時間があるときに古いブロックを消去する。
実際には、フラッシュファイルシステムはMemory Technology Device（MTD）のために使用される。MTDはフラッシュメモリに組み込まれており、コントローラは持たない。取り外し可能なフラッシュメモリーカードやUSBメモリは、専用のアルゴリズムでMTDを管理するために、内蔵コントローラを持っている。
モバイル機器の数が増加し、メモリ容量当たりの単価が減少し、フラッシュメモリ・チップの容量は増加するにつれ、フラッシュベースのメモリデバイスはより一般的になっている。
歴史.
世界初のフラッシュファイルシステムは、イスラエルのが開発したTrueFFSであった。これはフラッシュの配列を自由に書き込みのできるディスクのように管理するものである。1992年7月にカリフォルニア州サンタクララで開かれたPCカードエキスポで発表され、1993年に特許が取られた。
最も古いフラッシュファイルシステムの一つに、1992年秋にリリースされたMS-DOSで使われたマイクロソフトのFFS2がある。FFS2はそれ以前の製品である"FFS"の後継であるが、FFSはフラッシュファイルシステムと呼べるものではなかった。FFSはフラッシュの配列を、自由に書き込みのできるディスクではなくWORM（write once, read many: 書き込みは一度だけ、読み出しは何度でも可能）な空間として管理していた。
1994年ごろ、業界団体PCMCIAが、M-SystemsのTrueFFSの設計を元にした"Flash Translation Layer"（FTL、フラッシュ変換レイヤ）の仕様を採択した。この仕様は、M-SystemsとSCMマイクロシステムズが共同で執筆し提案したものである。SCMマイクロシステムズはFTLの初の動作する実装も提供した。インテルの支持により、FTLはPCMCIA以外のメディアでも一般的なフラッシュファイルシステムとなった。