JFFS
読み:ジェイエフエフエス
外語:JFFS: Journaling Flash File System
かつて、フラッシュメモリー用としてLinuxで使われていたファイルシステム。
概要
NOR型フラッシュメモリー用に設計されたファイルシステムである。
初期に登場したJFFSは、フラッシュメモリーにまつわる各種の問題(イレースの回数制限、リードの回数制限)への対応として、様々な特徴的な動作を試みている。
特徴
仕様
フラッシュメモリーは、従来の磁気ディスクなどと違い、様々な特徴がある。特にファイルシステムを載せる上で問題となる特徴として、次のようなものがあげられる。
- 読み書きの回数に制限がある
- 一つのブロック(セクターに相当)が非常に大きい (64Kiバイト程度)
- 遅い
ext2など従来のファイルシステムではウェアレベリングを考慮していないため、inodeやディレクトリの情報などを頻繁に更新する。このため、従来のファイルシステムはフラッシュメモリーに向いていない。
JFFSはウェアレベリングの問題に対応するために、デバイスをブロックの循環ログとして管理する方式を採用した。
ファイル等への更新は、末尾のブロックに書き込まれ、先頭のブロックは再利用される。先頭と末尾の間のフリースペースが少なくなると、ガベージコレクションが実行される。この時、有効なブロックのみがログ末尾へと移され、未使用のブロックは消去される。
欠点
このシステムの根本的な問題は、書き換えが頻繁に発生し、デバイスの劣化が早いという問題であった。
また、inodeチェーンの全てをマウント時にメモリー上に読み込んでおく必要があり、これがマウントの遅さという問題の他、メモリーの消費を招くという問題も招いた。
再検索