[GSoC][RFC] Case Insensitive Filesystem
Marc Andre Tanner
mat at brain-dump.org
Tue Mar 25 16:33:51 CDT 2008
Hi,
During the last week i have been playing around with the idea
of writing a case insensitive fuse filesystem and i am know
at the point were i can demonstrate a proof of concept
implementation. And yes i have seen that there is already
someone else interested in doing this but i thought it was fun
anyways.
The filesystem converts every path to lower case before further
operations take place. On file creation the original filename is
stored in an extended attribute and later returned upon request.
This means you will have a directory on a regular POSIX filesystem
with all filenames in lower case, this directory can then be mounted
in case insensitive fashion.
In order to compile the code you will need the fuse and libattr[1]
development files. Furthermore you will have to make sure that the
underlying filesystem supports extended attributes (for example
for ext{2,3} you need a kernel with CONFIG_EXT{2,3}_FS_XATTR enabled).
You probably also want to mount the underlying filesystem with the
user_xattr option which allows non root users to create extended
attributes.
So fetch the code from the url below, extract the archive and type
make. This should generate a binary named ciopfs (which stands for
Case Insenstive On Purpose File System, alternative naming suggestions
are welcome ;).
http://www.brain-dump.org/projects/ciopfs/ciopfs-25.03.2008.tar.gz
Mounting the file system is straight forward, see `ciopfs -h` for
further options. But be carefull i haven't yet done any serious
testing, so only use it with unimportant data [insert standard
warning about possible data loss here].
ciopfs /path/to/my/directory /path/to/my/mountpoint
As i said before the current implementation is just a proof of
concept. That's why it currently only supports ascii filenames, or
whatever tolower(3) can cope with. This brings us to another
problem[2,3], in certain languages there isn't a direct mapping
between upper and lower case characters and case insensitivity in
filesystem is generally a bad thing.
Any comments are appreciated.
Regards,
Marc
[1] http://acl.bestbits.at/download.html#Attr
[2] http://www.somethinkodd.com/oddthinking/2005/10/25/the-world-of-upper-lower-case-mappings/
[3] http://drewthaler.blogspot.com/2007/12/case-against-insensitivity.html
--
Marc Andre Tanner >< http://www.brain-dump.org/ >< GPG key: CF7D56C0
More information about the wine-devel
mailing list