Userspace filesystems (WAS: Encrypted Filesystem)

From: Miklos Szeredi
Date: Wed Jan 28 2004 - 08:51:27 EST



Adam Sampson <azz@xxxxxxxxxx> wrote:

> Is there a technical reason that none of the userspace filesystem
> layers have been included in the stock kernel, or is it just that
> nobody's submitted any of them for inclusion yet?

I'm planning on submitting FUSE for inclusion into 2.7 (and maybe 2.6
if that is acceptable). I feel that FUSE has been maturing lately
with some very interesting applications [1].

Here are the reasons for _not_ including it:

1) There are already two filesystems in kernel that are perfectly
usable for this purpose: NFS and CODA

2) There are currently two competing userspace filesystem layers that
have about the same "market share": LUFS and FUSE. Why should we
prefer one over the other

I'll try to refute myself on these points:

1) Both NFS and CODA were designed for something different. IOW they
are not optimized for the purpose of supporting userspace
filesystems. NFS is slow and there are problems with coherency of
the underlying and the mounted filesystem. CODA does not support
random file access (or even streaming), only reading whole files.
It also has a miriad of small problems when used for exporting a
userspace fs (I've been personally burned many times while doing
AVFS over CODA).

2) This one is harder to get rid of, especially because I don't want
to delve into the technical merits of one or the other (I'd be a
bit biased). But I have compared both the kernel interface and
the library API of LUFS and FUSE and they are very similar. And
that is a good thing, because it makes possible to support LUFS
filesystems with the FUSE kernel module and vica versa.


Miklos

[1] For a list of applications using FUSE see:

<http://www.inf.bme.hu/~mszeredi/fuse/Filesystems>
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/