JFFS : The Journalling Flash File System

Until recently, the common approach to using Flash memory technology in
embedded devices has been to use a pseudo-filesystem on the flash
chips to emulate a standard block device and provide wear levelling,
and to use a normal file system on top of that emulated block
device.

JFFS is a log-structured file system designed by Axis Communications AB
in Sweden specifically for use on flash devices in embedded systems,
which is aware of the restrictions imposed by flash technology and
which operates directly on the flash chips, thereby avoiding the
inefficiency of having two journalling file systems on top of each
other.

This paper will give an overview of the restrictions imposed by
flash technology and hence the design aims of JFFS, and the
implementation of both JFFS and the improvements made in version 2,
including compression and more efficient garbage collection.