YAFFS

YAFFSファイルシステム



YAFFS(Yet Another Flash File System)は、Charles Manningによって設計され、Aleph Oneに所属しています。ニュージーランドのWhitecliffsを拠点とし、このプロジェクトはフラッシュメモリの特性に特化したファイルシステムを提供しています。YAFFS1が2002年に初めてリリースされ、それ以降、YAFFS2などの改良版が登場しました。

YAFFS1の特徴


YAFFS1は、512バイトのデータ領域と16バイトのOut-Of-Band(OOB)領域を利用した初のファイルシステムです。このシステムは、2〜3回書き換え可能な初期のNANDチップに対応しており、新たに記録する際に「ダーティーページ」を管理する仕組みを導入しています。ブロック毎の32ページがダーティとしてマークされ、これにより効率的なデータ管理が可能です。

新しいファイルが作成されると、そのメタデータ(タイムスタンプや名前など)が一つのページとして書き込まれ、同時に一意のオブジェクトIDが振り当てられます。このIDはファイル内の情報と紐づけられ、物理的な位置情報はRAM内のツリー構造で管理されます。古いページは無効化されるとダーティとしてマークされ、全体のブロックがダーティの場合は再利用のために消去されます。

YAFFS2の革新


YAFFS2は、YAFFS1の流れをくみつつも、より新しいNANDフラッシュ技術に対応しています。重要な違いは、内部データ構造が柔軟になり、書き込まれた各ページにシーケンス番号が付与される点です。これにより、古いページを論理的に上書きすることが可能になり、「ライトワンス」ルールに従った運用が実現されています。2003年後半にリリースされたYAFFS2は、下位互換性も考慮されています。

YAFFS2では、「縮小ヘッダー」の概念が導入され、ファイルサイズが小さくなる際のデータ管理が改善されています。従来の方式と異なり、影響を受けるすべてのページを無効にするのではなく、特定のページ数を示すことで効率的な記録が可能です。

パフォーマンスと適用範囲


YAFFSは、高いデータ完全性とパフォーマンスを追求したログ構造のファイルシステムです。LinuxMicrosoft Windows Embedded CERTEMSなど、さまざまなOS上で利用できるため、幅広い用途に対応しています。また、特に「YAFFS/Direct」は、OSなしの環境や組み込みOSでの使用に適した設計がなされています。

このシステムは、GPLおよびAleph Oneとのプロダクトライセンスの元で公開されており、オープンソースとして利用できます。YAFFSは、最新のフラッシュ技術に対応しつつ、効率的で高性能なデータ管理を実現するファイルシステムとして広く認知されています。

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。