HOME

TheInfoList



OR:

Filesystem in Userspace (FUSE) is a
software interface In computing, an interface is a shared boundary across which two or more separate components of a computer system exchange information. The exchange can be between software, computer hardware, peripheral devices, humans, and combinations of these ...
for
Unix Unix (; trademarked as UNIX) is a family of multitasking, multiuser 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, and ot ...
and
Unix-like A Unix-like (sometimes referred to as UN*X 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 Unix-li ...
computer
operating system An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs. Time-sharing operating systems schedule tasks for efficient use of the system and may also in ...
s that lets non-privileged users create their own
file system In computing, file system or filesystem (often abbreviated to fs) is a method and data structure that the operating system uses to control how data is stored and retrieved. Without a file system, data placed in a storage medium would be one larg ...
s without editing
kernel Kernel may refer to: Computing * Kernel (operating system), the central component of most operating systems * Kernel (image processing), a matrix used for image convolution * Compute kernel, in GPGPU programming * Kernel method, in machine learnin ...
code. This is achieved by running file system code in
user space A modern computer operating system usually segregates virtual memory into user space and kernel space. Primarily, this separation serves to provide memory protection and hardware protection from malicious or errant software behaviour. Kernel ...
while the FUSE module provides only a bridge to the actual kernel interfaces. FUSE is available for
Linux Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, which ...
,
FreeBSD FreeBSD is a free and open-source Unix-like operating system descended from the Berkeley Software Distribution (BSD), which was based on Research Unix. The first version of FreeBSD was released in 1993. In 2005, FreeBSD was the most popular ...
,
OpenBSD OpenBSD is a security-focused, free and open-source, Unix-like operating system based on the Berkeley Software Distribution (BSD). Theo de Raadt created OpenBSD in 1995 by forking NetBSD 1.0. According to the website, the OpenBSD project em ...
,
NetBSD NetBSD is a free and open-source Unix operating system based on the Berkeley Software Distribution (BSD). It was the first open-source BSD descendant officially released after 386BSD was forked. It continues to be actively developed and is a ...
(as puffs),
OpenSolaris OpenSolaris () is a discontinued open-source computer operating system based on Solaris and created by Sun Microsystems. It was also, perhaps confusingly, the name of a project initiated by Sun to build a developer and user community around th ...
,
Minix 3 Minix 3 is a small, Unix-like operating system. It is published under a BSD-3-Clause license and is a successor project to the earlier versions, Minix 1 and 2. The project's main goal is for the system to be fault-tolerant by detecting and rep ...
,
macOS macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac computers. Within the market of desktop and lapt ...
, and
Windows Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for serv ...
. FUSE is
free software Free software or libre software is computer software distributed under terms that allow users to run the software for any purpose as well as to study, change, and distribute it and any adapted versions. Free software is a matter of liberty, no ...
originally released under the terms of the
GNU General Public License The GNU General Public License (GNU GPL or simply GPL) is a series of widely used free software licenses that guarantee end users the Four Freedoms (Free software), four freedoms to run, study, share, and modify the software. The license was th ...
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 GNU Hurd is a collection of microkernel servers written as part of GNU, for the GNU Mach microkernel. It has been under development since 1990 by the GNU Project of the Free Software Foundation, designed as a replacement for the Unix kernel, and ...
. It superseded
Linux Userland Filesystem The Linux Userland Filesystem (LUFS) is a File System on Linux, which is similar to FUSE in that a file system driver provides a bridge from kernel mode to user mode. With LUFS it is possible, among other things, to mount remote directories via SS ...
, 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 License (GNU GPL or simply GPL) is a series of widely used free software licenses that guarantee end users the Four Freedoms (Free software), four freedoms to run, study, share, and modify the software. The license was th ...
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 and open-source Unix-like operating system descended from the Berkeley Software Distribution (BSD), which was based on Research Unix. The first version of FreeBSD was released in 1993. In 2005, FreeBSD was the most popular ...
base system and released under the terms of Simplified BSD license. An
ISC #REDIRECT ISC {{redirect category shell, {{R from other capitalisation{{R from ambiguous page ...
-licensed re-implementation by Sylvestre Gallon was released in March 2013, and incorporated into
OpenBSD OpenBSD is a security-focused, free and open-source, Unix-like operating system based on the Berkeley Software Distribution (BSD). Theo de Raadt created OpenBSD in 1995 by forking NetBSD 1.0. According to the website, the OpenBSD project em ...
in June 2013. FUSE was merged into the mainstream
Linux kernel The Linux kernel is a free and open-source, monolithic, modular, multitasking, Unix-like operating system kernel. It was originally authored in 1991 by Linus Torvalds for his i386-based PC, and it was soon adopted as the kernel for the GNU ope ...
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 to be accessed in a similar fashion to those on disk or removable flash drives. It requires both a specific format of data on the tape media and software ...
: Allows files stored on magnetic tape to be accessed in a similar fashion to those on disk or removable flash drives. *
NTFS-3G NTFS-3G is an open-source cross-platform implementation of the Microsoft Windows NTFS file system with read/write support. NTFS-3G often uses the FUSE file system interface, so it can run unmodified on many different operating systems. It is r ...
and Captive NTFS, allowing access to
NTFS New Technology File System (NTFS) is a proprietary journaling file system developed by Microsoft. Starting with Windows NT 3.1, it is the default file system of the Windows NT family. It superseded File Allocation Table (FAT) as the preferred fil ...
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 BTL, 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 EncFS is a Free (LGPL) FUSE-based cryptographic filesystem. It transparently encrypts files, using an arbitrary directory as storage for the encrypted files. Two directories are involved in mounting an EncFS filesystem: the source directory, an ...
: 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. * archivemount
Atlas (Rubrik backup software)
Immutable, distributed filesystem used by Rubrik Cloud Data Management data protection applications *
Borg (backup software) Borg is Data deduplication, deduplicating backup software for various Unix-like operating systems. Originally it called Attic. History Attic development began in 2010 and was accepted to Debian in August 2013. Attic is available from pip (p ...
: 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
SPFS
A 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, filtrering etc). This is a WORM 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 CloudStore (KFS, previously Kosmosfs) was Kosmix's C++ implementation of the Google File System. It parallels the Hadoop project, which is implemented in the Java programming language. CloudStore supports incremental scalability, replication, ch ...
(formerly, Kosmos filesystem): By mounting via FUSE, existing
Linux Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, which ...
utilities can interact with CloudStore *
ExpanDrive ExpanDrive is a network filesystem client for MacOS, Microsoft Windows and Linux that facilitates mapping of local volume to many different types of cloud storage. When a server is mounted with ExpanDrive any program can read, write, and manage r ...
: A commercial filesystem implementing SFTP/FTP/S3/Swift using FUSE *
FTPFS FTPFS refers to file systems that support access to a File Transfer Protocol (FTP) server through standard file system application programming interfaces (APIs). The ftpfs command in Plan 9 was originated by Dennis Ritchie and was included in t ...
*
GlusterFS Gluster Inc. (formerly known as Z RESEARCH) was a software company that provided an open source platform for scale-out public and private cloud storage. The company was privately funded and headquartered in Sunnyvale, California, with an enginee ...
: 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-ocamlfuse
is a FUSE filesystem for Google Drive, written in OCaml. It lets you mount your Google Drive on Linux. *
IPFS The InterPlanetary File System (IPFS) is a protocol, hypermedia and file sharing peer-to-peer network for storing and sharing data in a distributed file system. IPFS uses content-addressing to uniquely identify each file in a global namespac ...
: 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 system of communication where only the communicating users can read the messages. In principle, it prevents potential eavesdroppers – including telecommunications service providers, telecom providers, Internet ...
and a global namespace based on Keybase.io service that uses FUSE to create cryptographically secure file mounts. *
Lustre Lustre or Luster may refer to: Places * Luster, Norway, a municipality in Vestlandet, Norway ** Luster (village), a village in the municipality of Luster * Lustre, Montana, an unincorporated community in the United States Entertainment * '' ...
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 management capabilities. It began as part of the Sun Microsystems Solaris operating system in 2001. Large parts of Solaris – including ZFS – were published under an ope ...
-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, multi threaded, command line computer program to manage or migrate content on cloud and other high latency storage. Its capabilities include sync, transfer, crypt, cache, union, compress and mount. The rclone websit ...
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 In computing, SSHFS (SSH Filesystem) is a filesystem client to mount and interact with directories and files located on a remote server or workstation over a normal ssh connection. The client interacts with the remote file system via the SSH ...
: Provides access to a remote filesystem through
SSH The Secure Shell Protocol (SSH) is a cryptographic network protocol for operating network services securely over an unsecured network. Its most notable applications are remote login and command-line execution. SSH applications are based on ...
. *
Transmit Transmit is a file transfer client program for macOS. Developed by Panic, Transmit is shareware. After a seven-day trial period, the product can only be used for seven-minute sessions until it has been purchased. Originally built as an FTP client ...
: 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 WebDrive is a drive mapping utility that supports accessing remote file servers using open FTP, FTPS, SFTP, and WebDAV protocols, and proprietary or vendor-specific protocols. It can be run as a Windows service and supports automatic mounting o ...
: 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 concu ...
, SFTP, FTP, FTPS and
Amazon S3 Amazon S3 or Amazon Simple Storage Service 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- ...
* WikipediaFS: View and edit Wikipedia articles as if they were real files *
Wuala Wuala was a secure online file storage, file synchronization, versioning and backup service originally developed and run by Caleido Inc. It is now part of LaCie, which is in turn owned by Seagate Technology. The service stores files in data cen ...
: Was a multi-platform, Java-based fully OS integrated distributed file system. Using FUSE, MacFUSE an
CBFS Connect
respectively 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 GVfs (abbreviation for GNOME virtual file system) is GNOME's userspace virtual filesystem designed to work with the I/O abstraction of GIO, a library available in GLib since version 2.15.1. It installs several modules that are automatically us ...
: The virtual filesystem for the
GNOME desktop A gnome is a mythological creature and diminutive spirit in Renaissance magic and alchemy, first introduced by Paracelsus in the 16th century and later adopted by more recent authors including those of modern fantasy literature. Its charact ...

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 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 device. OTPs avoid seve ...
(OTP) authentication. It uses FUSE to expose the vault as a file system.


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 FUSE
by Sumit Singh
List of FUSE filesystemsDocumentation/filesystems/fuse.txt
documentation 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