title="Flash translation layer"
Implement a flash translation layer.
A flash translation layer does block remapping, translating from
visible block addresses used by a file system to physical cells on
one or more flash chips.
This provides wear leveling, which is essential for effective use of
flash, and also typically some amount of read caching and write
(And it takes care of excluding cells that have gone bad.)
This allows FFS, LFS, msdosfs, or whatever other conventional file
system to be used on raw flash chips. (Note that SSDs and USB flash
drives and so forth contain their own FTLs.)
FTLs involve quite a bit of voodoo and there is a lot of prior art and
research; do not just sit down and start coding.
There are also some research FTLs that we might be able to get the
code for; it is probably worth looking into this.
CVSweb for NetBSD wikisrc <wikimaster@NetBSD.org> software: FreeBSD-CVSweb