Subject: Re: Flash translation layer
To: Alex Allan <firstname.lastname@example.org>
From: Perry E. Metzger <email@example.com>
Date: 10/04/2005 15:43:02
Alex Allan <firstname.lastname@example.org> writes:
> I'm a third-year computer science student at Nottingham University,
> UK. I'm about to start my final dissertation and am interested in
> researching operating systems wrt embedded devices.
> I have noticed that a 'flash translation layer' was suggested as part
> of the Google Summer of Code project but wasn't taken up as a project.
> I'd be interested in this and would be more than willing to spend the
> time on it.
> If anyone could offer me some pointers (or a mentorship!) or let me
> know if it was decided that this wasn't needed, had already been done,
> etc then it would be much appreciated!
I haven't looked at the web page for SoC, but the general problem is
to produce a set of drivers so that a chunk of flash memory can be
used effectively as a disk. As I recall, the primary issue is wear
leveling. There are, however, lots of references on the net for wear
leveling algorithms and you should be able to implement one pretty
You might also want to study how the Linux stuff works, if only to get
ideas for the interface, and check (I haven't in a while) whether
there is code to do any of this stuff in FreeBSD or OpenBSD that might
be of use.
In theory, one could produce a new file system specifically geared to
the needs of flash memory, and that might be a lot more efficient than
a wear leveling adaptation layer, but that is a much more ambitious
project and I would try the simpler one first.