Yaffs
Yaffs is a very robust low-level file system designed specifically for use with Flash memory.
Yaffs has been used in embedded applications like disk controllers, and at operating-system level in extreme environments where radiation can create damage to one or many bits, meaning that its extreme reliability is especially important. For example, the Transiting Exoplanet Survey Satellite (TESS) operated by NASA uses it.
It features: effective recovery from power-loss; wear-levelling; error correction for Flash unreliability; over-provision and bad-block remapping; block refreshing; garbage collection with block erase; and guards against write amplification. Write amplification, where a single small write can cause a cascade of further writes, is especially important to avoid for Flash because of its nature.
Yaffs has been used on Linux, Android, eCos, Windows CE, ThreadX, pSOS and vXworks and is available as GPL software and under commercial terms from us. Our Yaffs website contains much more information.
We encourage potential users to take a copy of Yaffs from the web site and try before you buy. You will do so under the GPL v2 which entails the obligation to release the source code of any derivative works involving Yaffs that you make available to others. Check the GPL v2 for exact details.
We sell proprietary licences to customers who do not wish to disclose their own code, and supply a version of Yaffs under this licence.