Filesystem in Userspace (FUSE) is a
software interface for
Unix
Unix (, ; trademarked as UNIX) is a family of multitasking, multi-user computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, a ...
and
Unix-like
A Unix-like (sometimes referred to as UN*X, *nix or *NIX) operating system is one that behaves in a manner similar to a Unix system, although not necessarily conforming to or being certified to any version of the Single UNIX Specification. A Uni ...
computer
operating system
An operating system (OS) is system software that manages computer hardware and software resources, and provides common daemon (computing), services for computer programs.
Time-sharing operating systems scheduler (computing), schedule tasks for ...
s 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
A modern computer operating system usually uses virtual memory to provide separate address spaces or regions of a single address space, called user space and kernel space. This separation primarily provides memory protection and hardware prote ...
while the FUSE module provides only a bridge to the actual kernel interfaces.
FUSE is available for
Linux
Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
,
FreeBSD
FreeBSD is a free-software Unix-like operating system descended from the Berkeley Software Distribution (BSD). The first version was released in 1993 developed from 386BSD, one of the first fully functional and free Unix clones on affordable ...
,
OpenBSD
OpenBSD is a security-focused operating system, security-focused, free software, Unix-like operating system based on the Berkeley Software Distribution (BSD). Theo de Raadt created OpenBSD in 1995 by fork (software development), forking NetBSD ...
,
NetBSD
NetBSD is a free and open-source Unix-like operating system based on the Berkeley Software Distribution (BSD). It was the first open-source BSD descendant officially released after 386BSD was fork (software development), forked. It continues to ...
(as
puffs),
OpenSolaris
OpenSolaris () is a discontinued open-source computer operating system for SPARC and x86 based systems, created by Sun Microsystems and based on Solaris. Its development began in the mid 2000s and ended in 2010.
OpenSolaris was developed as ...
,
Minix 3,
macOS
macOS, previously OS X and originally Mac OS X, is a Unix, Unix-based operating system developed and marketed by Apple Inc., Apple since 2001. It is the current operating system for Apple's Mac (computer), Mac computers. With ...
,
MorphOS (as filesysbox.library), and
Windows
Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
.
FUSE is
free software
Free software, libre software, libreware sometimes known as freedom-respecting software is computer software distributed open-source license, under terms that allow users to run the software for any purpose as well as to study, change, distribut ...
originally released under the terms of the
GNU General Public License
The GNU General Public Licenses (GNU GPL or simply GPL) are a series of widely used free software licenses, or ''copyleft'' licenses, that guarantee end users the freedom to run, study, share, or modify the software. The GPL was the first ...
and the
GNU Lesser General Public License
The GNU Lesser General Public License (LGPL) is a free-software license published by the Free Software Foundation (FSF). The license allows developers and companies to use and integrate a software component released under the LGPL into their own ...
.
History
The FUSE system was originally part of ''AVFS'' (''A Virtual Filesystem''), a filesystem implementation heavily influenced by the translator concept of the
GNU Hurd. It superseded Linux Userland Filesystem, and provided a translational interface using in libfuse1.
FUSE was originally released under the terms of the
GNU General Public License
The GNU General Public Licenses (GNU GPL or simply GPL) are a series of widely used free software licenses, or ''copyleft'' licenses, that guarantee end users the freedom to run, study, share, or modify the software. The GPL was the first ...
and the
GNU Lesser General Public License
The GNU Lesser General Public License (LGPL) is a free-software license published by the Free Software Foundation (FSF). The license allows developers and companies to use and integrate a software component released under the LGPL into their own ...
, later also reimplemented as part of the
FreeBSD
FreeBSD is a free-software Unix-like operating system descended from the Berkeley Software Distribution (BSD). The first version was released in 1993 developed from 386BSD, one of the first fully functional and free Unix clones on affordable ...
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
OpenBSD is a security-focused operating system, security-focused, free software, Unix-like operating system based on the Berkeley Software Distribution (BSD). Theo de Raadt created OpenBSD in 1995 by fork (software development), forking NetBSD ...
in June 2013.
FUSE was merged into the mainstream
Linux kernel
The Linux kernel is a Free and open-source software, free and open source Unix-like kernel (operating system), kernel that is used in many computer systems worldwide. The kernel was created by Linus Torvalds in 1991 and was soon adopted as the k ...
tree in kernel version 2.6.14.
The userspace side of FUSE, the library, generally followed the pace of Linux kernel development while maintaining "best effort" compatibility with BSD descendants. This is possible because the kernel FUSE reports its own "feature levels", or versions. The exception is the FUSE fork for macOS, OSXFUSE, which has too many differences for sharing a library. A break in libfuse history is libfuse3, which includes some incompatible improvements in the interface and performance, compared to the older libfuse2 now under maintenance mode.
As the kernel-userspace protocol of FUSE is versioned and public, a programmer can choose to use a different piece of code in place of and still communicate with the kernel's FUSE facilities. On the other hand, and its many ports provide a portable high-level interface that may be implemented on a system without a "FUSE" facility.
Operation and usage

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 system
A virtual file system (VFS) or virtual filesystem switch is an abstract layer on top of a more concrete file system. The purpose of a VFS is to allow client applications to access different types of concrete file systems in a uniform way. A VFS ...
s. 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.
Applications
On-disk file systems
Conventional on-disk file systems can be implemented in user space with FUSE, e.g. for compatibility or licensing reasons.
*
Linear Tape File System
The Linear Tape File System (LTFS) is a file system that allows files stored on magnetic tape data storage, magnetic tape to be accessed in a similar fashion to those on disk or removable flash drives. It requires both a specific format of data on ...
: Allows files stored on magnetic tape to be accessed in a similar fashion to those on disk or removable flash drives.
*
NTFS-3G and
Captive NTFS
Captive NTFS is a discontinued open-source project in the Linux programming community, started by Jan Kratochvíl. It is a driver wrapper around the original Microsoft Windows NTFS file system driver using parts of ReactOS code. By taking this a ...
, allowing access to
NTFS
NT File System (NTFS) (commonly called ''New Technology File System'') is a proprietary journaling file system developed by Microsoft in the 1990s.
It was developed to overcome scalability, security and other limitations with File Allocation Tabl ...
filesystems.
retro-fuse retro-fuse is a user-space filesystem that provides a way to mount filesystems created by ancient Unix systems on modern OSes. The current version of retro-fuse supports mounting filesystems created by Fifth, Sixth and Seventh Edition of Research Unix from
Bell Labs
Nokia Bell Labs, commonly referred to as ''Bell Labs'', is an American industrial research and development company owned by Finnish technology company Nokia. With headquarters located in Murray Hill, New Jersey, Murray Hill, New Jersey, the compa ...
, as well as 2.9BSD and 2.11BSD based systems.
Layering file systems
FUSE filesystems can create a view of an underlying file system, transforming the files in some way.
*
EncFS:
Encrypted virtual filesystem
* FuseCompress, gzipfs, Fuse-ZIP, CompFUSEd: Compressed virtual filesystems
* Archive filesystems may also perform this task
Archive and backup file systems
FUSE filesystems can expose the contents of archives or backup sets without having to first extract them.
*
archivemountAtlas (Rubrik backup software) Immutable, distributed filesystem used by Rubrik Cloud Data Management data protection applications
*
Borg (backup software): Deduplicating backup program that allows backup archives to be mounted as FUSE filesystems.
Restic Free, fast, efficient and secure backup software uses FUSE to be able to browse all of your backup snapshots as a regular file system
SPFSA file system for Spectrum Protect, designed to mount the backup server filespace anywhere on your server, and use the features included from the backup server (encryption, de-duplication, compression, filtering etc). This is a
WORM
Worms are many different distantly related bilateria, bilateral animals that typically have a long cylindrical tube-like body, no limb (anatomy), limbs, and usually no eyes.
Worms vary in size from microscopic to over in length for marine ...
file system.
Remote/distributed file system clients
CernVM-FS A distributed read-only software distribution system, implemented as a POSIX filesystem in user space (FUSE) using HTTP transport, to deliver software in a fast and reliable fashion at global scale.
*
CloudStore (formerly, Kosmos filesystem): By mounting via FUSE, existing
Linux
Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
utilities can interact with CloudStore
*
ExpanDrive: A commercial filesystem implementing SFTP/FTP/S3/Swift using FUSE
*
FTPFS
*
GlusterFS: Clustered Distributed Filesystem having ability to scale up to several petabytes.
goofys A FUSE filesystem that allows access to Amazon S3/Microsoft Azure storage with an emphasis on performance.
google-drive-ocamlfuseis a FUSE filesystem for Google Drive, written in
OCaml
OCaml ( , formerly Objective Caml) is a General-purpose programming language, general-purpose, High-level programming language, high-level, Comparison of multi-paradigm programming languages, multi-paradigm programming language which extends the ...
. It lets you mount your Google Drive on Linux.
*
IPFS: A peer-to-peer distributed file system that seeks to connect all computing devices with the same system of files.
*
JuiceFS: A distributed POSIX file system built on top of Redis and S3.
*
KBFS: A distributed filesystem with
end-to-end encryption
End-to-end encryption (E2EE) is a method of implementing a secure communication system where only communicating users can participate. No one else, including the system provider, telecom providers, Internet providers or malicious actors, can ...
and a global namespace based on
Keybase.io service that uses FUSE to create cryptographically secure file mounts.
*
Lustre Cluster filesystem will use FUSE to allow it to run in userspace, so that a FreeBSD port is possible. However, the
ZFS
ZFS (previously Zettabyte File System) is a file system with Volume manager, volume management capabilities. It began as part of the Sun Microsystems Solaris (operating system), Solaris operating system in 2001. Large parts of Solaris, includin ...
-Linux port of Lustre will be running ZFS's DMU (Data Management Unit) in userspace.
*
MinFS: MinFS is a fuse driver for Amazon S3 compatible object storage server. MinFS
lets you mount a remote bucket (from a S3 compatible object store), as if it were a local directory.
*
MooseFS: An open source distributed fault-tolerant file system available on every OS with FUSE implementation (Linux, FreeBSD, NetBSD, OpenSolaris, OS X), able to store petabytes of data spread over several servers visible as one resource.
Nexfs A commercial Linux file system that combines Block, File, and S3 compatible Cloud & Object storage into a single pool of POSIX compatible storage.
ObjectiveFS Distributed filesystem with object store backend (Amazon S3, Google Cloud Storage or S3-compatible object store) using FUSE
*
Rclone
Rclone is an open source, Multithreading (software), multi threaded, Command-line interface, command line computer program to manage or migrate content on cloud storage, cloud and other high Latency (engineering)#Packet-switched networks, laten ...
can mount a variety of remote / cloud storage with FUSE.
s3fs Gives the ability to mount an
S3 bucket as if it were a local file system.
*
Sector File System: Sector is a distributed file system designed for large amount of commodity computers. Sector uses FUSE to provide a mountable local file system interface.
*
SSHFS: Provides access to a remote filesystem through
SSH.
*Transmit: A commercial FTP client that also adds the ability to mount WebDAV, SFTP, FTP and Amazon S3 servers as disks in Finder, via MacFUSE.
*
WebDrive: A commercial filesystem implementing
WebDAV
WebDAV (Web Distributed Authoring and Versioning) is a set of extensions to the Hypertext Transfer Protocol (HTTP), which allows user agents to collaboratively author contents ''directly'' in an HTTP web server by providing facilities for conc ...
, SFTP, FTP, FTPS and
Amazon S3
Amazon Simple Storage Service (S3) is a service offered by Amazon Web Services (AWS) that provides object storage through a web service interface. Amazon S3 uses the same scalable storage infrastructure that Amazon.com uses to run its e-commerc ...
*
WikipediaFS: View and edit Wikipedia articles as if they were real files
*
Wuala: Was a multi-platform, Java-based fully OS integrated distributed file system. Using FUSE, MacFUSE an
CBFS Connectrespectively for file system integration, in addition to a Java-based app accessible from any Java-enabled web browser (service discontinued in 2015).
IndexFS A remote file aggregating filesystem with transparent CURL access to distributed files.
Other
*
GVfs: The virtual filesystem for the
GNOME desktop
A gnome () is a mythological creature and diminutive spirit in Renaissance magic and alchemy, introduced by Paracelsus in the 16th century and widely adopted by authors, including those of modern fantasy literature. They are typically depicted ...
rvault A secure and authenticated store for secrets and small documents using envelope encryption with
one-time password
A one-time password (OTP), also known as a one-time PIN, one-time passcode, one-time authorization code (OTAC) or dynamic password, is a password that is valid for only one login session or transaction, on a computer system or other digital dev ...
(OTP) authentication. It uses FUSE to expose the vault as a file system.
EaseFilter-Cloud-File-System A Windows cloud file system for developers in user space, to implement the load balancing and cloud-based disaster recovery.
See also
*
PUFFS, a similar framework with FUSE compatibility
*
9P (protocol)
9P (or the Plan 9 Filesystem Protocol or Styx) is a network protocol developed for the Plan 9 from Bell Labs distributed operating system as the means of connecting the components of a Plan 9 system. Files are key objects in Plan 9. They represe ...
*
Installable File System
The Installable File System (IFS) is a filesystem API in MS-DOS/ PC DOS 4.x, IBM OS/2 and Microsoft Windows that enables the operating system to recognize and load drivers for file systems.
History
When IBM and Microsoft were co-developing OS/ ...
*
Dokan Library FUSE Windows compatibility
Windows Projected File System (ProjFS)
References
External links
*
Develop your own filesystem with FUSEby Sumit Singh
List of FUSE filesystemsDocumentation/filesystems/fuse.txtdocumentation in Linux source tree
WinFSP a FUSE-like system for Windows (a FUSE compatibility layer is provided for Cygwin)
Crossmeta FUSE Port of FUSE to Windows (commercial software)
{{Filesystem
Free software programmed in C
Free special-purpose file systems
Linux kernel features
Software that uses Meson
Unix file system-related software
Userspace file systems