Introducing FUSE: Filesystem in USErspace

Miklos Szeredi (Miklos.Szeredi@eth.ericsson.se)
Mon, 12 Nov 2001 12:28:27 +0100 (MET)


Had enough of life? Nothing to do? Write a filesystem!

What is FUSE?

FUSE (Filesystem in USErspace) provides a simple interface for
userspace programs to export a virtual filesystem to the Linux
kernel. FUSE also aims to provide a secure method for non
privileged users to create and mount their own filesystem
implementations.

There's NFS or CODA. Why FUSE?

Yes both NFS and CODA make it possible to create userspace
filesystems. But none of them were designed for this task. The
design of FUSE differs from the above in the following:

- Ability to provide a _very_ simple userspace library interface.

- Thin layer in kernel. Minimal caching, predictable behavior.

- Communication is not over a network, and is optimized for local
data transfer

- Secure environment even if userspace client is non-cooperative.

All this is nice, but does it work?

I've tested fuse with a simple 'loopback' test program, and also
with AVFS (http://www.inf.bme.hu/~mszeredi/avfs/), for which FUSE
was designed for. That doesn't mean that there are no bugs in it,
but it's a good sign...

Is it available?

Yes it can be downloaded from

http://sourceforge.net/projects/avf

How can it be installed?

FUSE currently works only on 2.4.X kernels. Installation requires
the kernel source to be present. The kernel does not need to be
patched or recompiled: the kernel part of FUSE is installed as a
module. The FUSE module is SMP safe.

There is also a kernel patch (for kernels 2.4.12 and up) included in
the distribution, which makes mounting by non-privileged users
secure.

Comments on design, implementation, and on my state of mind are
welcome.

Miklos
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/