YAFFS
| Developer | Charles Manning |
|---|---|
| Full name | Yet Another Flash File System |
| Other | |
| Supported operating systems | Android, Firefox OS, Linux, Windows CE, pSOS, RTEMS, eCos, ThreadX, LCOS |
| Website | https://yaffs.net |
YAFFS (Yet Another Flash File System) is a file system designed and written by Charles Manning for the company Aleph One.
YAFFS1 was the first version of this file system and was designed for the then-current NAND chips with 512 byte page size (+ 16 byte spare (OOB; Out-Of-Band) area). Work started in 2002, and it was first released later that year. The initial work was sponsored by Toby Churchill Ltd, and Brightstar Engineering.
YAFFS is a robust log-structured file system that holds data integrity as a high priority. A secondary YAFFS goal is high performance. YAFFS will typically outperform most alternatives. It is also designed to be portable and has been used on Linux, Android, WinCE, pSOS, RTEMS, eCos, ThreadX, and various special-purpose OSes. A variant 'YAFFS/Direct' is used in situations where there is no OS, embedded OSes or bootloaders: it has the same core filesystem but simpler interfacing to both the higher and lower level code and the NAND flash hardware.
The YAFFS codebase is licensed both under the GPL and under per-product licenses available from Aleph One.
YAFFS is locked on a per-partition basis at a high level, allowing only one thread to write at any given time.