How does YAFFS work?

YAFFS: the NAND-specific flash file system - Introductory Article

YAFFS stands for "yet another flash file system"(*). As far as I am aware, YAFFS is the only file system, under any operating system, that has been designed specifically for use with NAND flash. YAFFS is thus designed to work within the constraints of, and exploit the features of, NAND flash to maximise performance. YAFFS uses journaling, error correction and verification techniques tuned to the way NAND typically fails, to enhance robustness. The result is a file system that exploits low-cost NAND chips and is both fast and robust. YAFFS is highly portable and runs under Linux, ucLinux and Windows CE. YAFFS is an open source project.

YAFFS Direct User Guide

YAFFS has been designed in a very modular way, with the file-system-specific code kept separate from the main YAFFS file system code. This allowes YAFFS to be ported quite cleanly to other operating systems through operating system personality modules. One such personality module is the YAFFS Direct Interface (YDI) which allows YAFFS to be simply integrated with embedded systems, with or without an RTOS.

This document describes how to use the YAFFS Direct Interface with your OS/Environment, as well as providing sufficient information to allow a preliminary evaluation of YAFFS.

YAFFS Debugging

YAFFS provides a debugging mechanism which can be controlled at runtime, or set at build time. This page descirbes the options available and how to use them, for when you need to do some troubleshooting.

HOWTO incorporate YAFFS

Simple HOWTO for getting started with YAFFS and using it as a root filesystem. If you just want the quick start info - read this.

Comparison between YAFFS (YAFFS2) and JFFS2

If you are trying to decide between YAFFS and JFFS2 then this note will give you an idea of the relative advantages of each.

YAFFS Talk

Paper investigating a log management & crash recovery mechanism

This provides a link to a PDF of a paper by Taiwanese scholars.

YAFFS talk

Slides fom YAFFS - A NAND-flash filesystem. This was presented at FOSDEM on 23 February 2004, as part of the Embedded Track, and describes the YAFFS filesystem - it's origins, how it works, explains the differences between NAND and NOR flash and thus why a specialised NAND-flash filesystem is appropriate. It also covers embedded-system use with Yaffs Direct, presents some performance stats, and a comparison with JFFS2, and looks at supporting next-generation NAND with YAFFS2.

The Internal History of YAFFS

A brief look into the history of YAFFS through a look at the the internals.

Back to top