Download stable release
API reference (experimental)
Mailing list archives on SourceForge
Mailing list archives on GMane
Subscribe mailing list
SourceForge project page
Filesystems based on FUSE
Supported Operating Systems
~/fuse/example$ mkdir /tmp/fuse
Some projects include the whole FUSE package (for simpler
installation). In other cases or just to try out the examples
FUSE must be installed first. The installation is simple, after
If this produces an error, please read on.
The configure script will try to guess the location of the
kernel source. In case this fails, it may be specified using the --with-kernel
parameter. Building the kernel module needs a configured
kernel source tree matching the running kernel. If you build your
own kernel this is no problem. On the other hand if a precompiled
kernel is used, the kernel headers used by the FUSE build process must
first be prepared. There are two possibilities:
After installation, you can try out the filesystems in the example directory. To see
what is happening try adding the -d
option. This is the output produced by running cat /tmp/fuse/hello in another
~/fuse/example> ./hello /tmp/fuse -d
More operations can be tried out with the fusexmp example filesystem.
This just mirrors the root directory similarly to mount --bind / /mountpoint.
This is not very useful in itself, but can be used as template for
creating a new filesystem.
By default FUSE filesystems run multi-threaded. This can
be verified by entering the mountpoint recursively in the fusexmp filesystem.
Multi-threaded operation can be disabled by adding the -s option.
Some options can be passed to the FUSE kernel module and the library. See the output of fusexmp -h for the list of these
The following figure shows the path of a filesystem call
(e.g. stat) in the above hello world
The FUSE kernel module and the FUSE library communicate via a
special file descriptor which is obtained by opening /dev/fuse. This file
can be opened multiple times, and the obtained file descriptor is
passed to the mount syscall, to match up the descriptor with the