How does YAFFS work?

HOWTO incorporate YAFFS in Linux

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

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: 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 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.

YAFFS Tuning and Configuration.

YAFFS has a wide variety of settings that are used for tuning it to various applications, as well as debugging settings to help with integration. This document helps to explain those settings. The latest PDF of the document is found HERE.

How YAFFS works: the internals

Details of how YAFFS works, including the internal structures that YAFFS uses.

Using GIT

We now operate a GIT server for our active projects. Here we give details of the setup:-

If you just want to browse or download code then it's easiest to access the repository over the web.

If you want to use GIT directly from the command line then public read-only access is available, using the (bash) command:

git clone git://www.aleph1.co.uk/yaffs2

YAFFS talk - slides from a presentation to FOSDEM in 2004

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.

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.

Back to top