Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 25 May 2006 14:10:12 -0600 (MDT)
From:      "M. Warner Losh" <imp@bsdimp.com>
To:        olivier@gautherot.net
Cc:        Alexander@Leidinger.net, phk@phk.freebsd.dk, atrens@nortel.com, small@freebsd.org, current@freebsd.org
Subject:   Re: FreeBSD's embedded agenda
Message-ID:  <20060525.141012.1683993116.imp@bsdimp.com>
In-Reply-To: <1148580598.4475f2f677197@imp2-g19.free.fr>
References:  <3981.1148578569@critter.freebsd.dk> <4475EFC1.1020504@nortel.com> <1148580598.4475f2f677197@imp2-g19.free.fr>

next in thread | previous in thread | raw e-mail | index | archive | help
In message: <1148580598.4475f2f677197@imp2-g19.free.fr>
            Olivier Gautherot <olivier@gautherot.net> writes:
: Hi Andrew!
: 
: > [...]
: > > The reason Flash Adaptation Layers came about in the first place
: > > is that W95 didn't support anything but FAT.
: >
: >
: > Hmm. I was thinking about partitioning the problem actually. Make flash
: > look like a disk and then you can put any filesystem on it that you
: > want. Seems a heck of a lot simpler .. and I'm not sure if I see any
: > drawbacks to doing it that way ...
: 
: The drawback is the following: what would happen if you had an application
: opening-writing-closing a file in /var/log on a regular basis? The block
: would decay with time, with chances that your log even gets corrupted.
: That's why Flash drivers have to spread write accesses across the device
: (what FFS doesn't naturally do). Also, there is a constraint regarding
: the changes allowed: on NAND flash, you can write a 0 on a bit but have
: to erase the full block to write a 1 back.
: 
: Don't forget that Flash doesn't suffer from mechanical delays so there
: is no harm in fragmenting the filesystem: this would be another feature.

There's at least one implementation of a geom_nand layer that tries to
wear average blocks from a pool it keeps.  However, it would be far
better if it could get hints from the file system layer when blocks
were freed.  Once you get to that level of abstraction, you might as
well just do all the work yourself.  It gets kinda hairy to do it
generically for any filesystem.

Warner



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20060525.141012.1683993116.imp>