3.1.0 / 8 July 2017; 6 months ago (2017-07-08)
|File system driver|
|GPL for kernel part, LGPL for Libfuse, Simplified BSD on FreeBSD, ISC license on OpenBSD|
Filesystem in Userspace (FUSE) is a software interface for Unix-like computer operating systems that lets non-privileged users create their own file systems without editing kernel code. This is achieved by running file system code in user space while the FUSE module provides only a "bridge" to the actual kernel interfaces.
The FUSE system was originally part of AVFS (A Virtual Filesystem), a filesystem implementation heavily influenced by the translator concept of the GNU Hurd.
FUSE was originally released under the terms of the GNU General Public License and the GNU Lesser General Public License, later also reimplemented as part of the FreeBSD base system and released under the terms of Simplified BSD license. An ISC-licensed re-implementation by Sylvestre Gallon was released in March 2013, and incorporated into OpenBSD in June 2013.
FUSE was merged into the mainstream Linux kernel tree in kernel version 2.6.14.
Operation and Uses
To implement a new file system, a handler program linked to the supplied
libfuse library needs to be written. The main purpose of this program is to specify how the file system is to respond to read/write/stat requests. The program is also used to mount the new file system. At the time the file system is mounted, the handler is registered with the kernel. If a user now issues read/write/stat requests for this newly mounted file system, the kernel forwards these IO-requests to the handler and then sends the handler's response back to the user.
FUSE is particularly useful for writing virtual file systems. Unlike traditional file systems that essentially work with data on mass storage, virtual filesystems don't actually store data themselves. They act as a view or translation of an existing file system or storage device.
In principle, any resource available to a FUSE implementation can be exported as a file system.
- ^ "Releases - libfuse/libfuse". Retrieved 18 July 2017 – via GitHub.
- ^ "Home - FUSE for OS X".
- ^ "Some technical advantages of the Hurd". May 15, 2011. Retrieved March 28, 2016.
- ^ "WhatsNew/FreeBSD10 - FreeBSD Wiki".
- ^ "openbsd dev - tech - Fuse (and sshfs) support for OpenBSD".
- ^ "'CVS: cvs.openbsd.org: src' - MARC".
- ^ "file-systems.fuse.devel - FUSE merged to 2.6.14! - msg#00021 - Recent Discussion OSDir.com". Archived from the original on 2016-04-20.
- ^ "Lustre FreeBSD". Archived from the original on 2008-03-12. Retrieved 2008-03-02.
- ^ "Architecture ZFS for Lustre". Sun Microsystems. Retrieved 2008-03-02.
- ^ /review-vu+ipmread/best/minio/minfs
- Crossmeta FUSE Port of FUSE to Windows
- Develop your own filesystem with FUSE by Sumit Singh
- List of FUSE filesystems
- Documentation/filesystems/fuse.txt documentation in Linux source tree
- a FUSE-like system for Windows (a FUSE compatibility layer is provided for Cygwin)