
Mastering Embedded Linux Programming
By :

To use raw flash chips for mass storage, you have to use a filesystem that understands the peculiarities of the underlying technology. There are three such filesystems:
Journaling Flash File System 2, JFFS2: This was the first flash filesystem for Linux, and is still in use today. It works for NOR and NAND memory, but is notoriously slow during mount.
Yet Another Flash File System 2, YAFFS2: This is similar to JFFS2, but specifically for NAND flash memory. It was adopted by Google as the preferred raw flash filesystem on Android devices.
Unsorted Block Image File System, UBIFS: This is the latest flash-aware filesystem for both NOR and NAND memory, which is used in conjunction with the UBI block driver. It generally offers better performance than JFFS2 or YAFFS2, and so should be the preferred solution for new designs.
All of these use MTD as the common interface to flash memory.
The Journaling Flash File System had its beginnings in the software...