Filesystem in Userspace
Encyclopedia
Filesystem in Userspace (FUSE) is a loadable kernel module
for Unix-like
computer
operating system
s that lets non-privileged users create their own file system
s 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.
Released under the terms of the GNU General Public License
and the GNU Lesser General Public License
, FUSE is free software
. The FUSE system was originally part of A Virtual Filesystem (AVFS), but has since split off into its own project on SourceForge.net
.
FUSE is available for Linux
, FreeBSD
, NetBSD
(as puffs
), OpenSolaris
, and Mac OS X
. It was officially merged into the mainstream Linux kernel
tree in kernel version 2.6.14.
s. Unlike traditional file systems that essentially save data to and retrieve data from disk, virtual filesystems do not 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.
Loadable Kernel Module
In computing, a loadable kernel module is an object file that contains code to extend the running kernel, or so-called base kernel, of an operating system...
for Unix-like
Unix-like
A Unix-like operating system is one that behaves in a manner similar to a Unix system, while not necessarily conforming to or being certified to any version of the Single UNIX Specification....
computer
Computer
A computer is a programmable machine designed to sequentially and automatically carry out a sequence of arithmetic or logical operations. The particular sequence of operations can be changed readily, allowing the computer to solve more than one kind of problem...
operating system
Operating system
An operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system...
s that lets non-privileged users create their own file system
File system
A file system is a means to organize data expected to be retained after a program terminates by providing procedures to store, retrieve and update data, as well as manage the available space on the device which contain it. A file system organizes data in an efficient manner and is tuned to the...
s without editing kernel code. This is achieved by running file system
File system
A file system is a means to organize data expected to be retained after a program terminates by providing procedures to store, retrieve and update data, as well as manage the available space on the device which contain it. A file system organizes data in an efficient manner and is tuned to the...
code in user space
User space
A conventional computer operating system usually segregates virtual memory into kernel space and user space. Kernel space is strictly reserved for running the kernel, kernel extensions, and most device drivers...
while the FUSE module provides only a "bridge" to the actual kernel interfaces.
Released under the terms of the GNU General Public License
GNU General Public License
The GNU General Public License is the most widely used free software license, originally written by Richard Stallman for the GNU Project....
and the GNU Lesser General Public License
GNU Lesser General Public License
The GNU Lesser General Public License or LGPL is a free software license published by the Free Software Foundation . It was designed as a compromise between the strong-copyleft GNU General Public License or GPL and permissive licenses such as the BSD licenses and the MIT License...
, FUSE is free software
Free software
Free software, software libre or libre software is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with restrictions that only ensure that further recipients can also do...
. The FUSE system was originally part of A Virtual Filesystem (AVFS), but has since split off into its own project on SourceForge.net
SourceForge.net
SourceForge is a web-based source code repository. It acts as a centralized location for software developers to control and manage open source software development. The website runs a version of SourceForge Enterprise Edition, forked from the last open-source version available...
.
FUSE is available for Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...
, FreeBSD
FreeBSD
FreeBSD is a free Unix-like operating system descended from AT&T UNIX via BSD UNIX. Although for legal reasons FreeBSD cannot be called “UNIX”, as the direct descendant of BSD UNIX , FreeBSD’s internals and system APIs are UNIX-compliant...
, NetBSD
NetBSD
NetBSD is a freely available open source version of the Berkeley Software Distribution Unix operating system. It was the second open source BSD descendant to be formally released, after 386BSD, and continues to be actively developed. The NetBSD project is primarily focused on high quality design,...
(as puffs
PUFFS (NetBSD)
Pass-to-Userspace Framework File System is a NetBSD kernel subsystem developed for running filesystems in userspace. It was added to NetBSD in the 5.0 release and has a FUSE compatibility layer allowing portability from other operating systems....
), OpenSolaris
OpenSolaris
OpenSolaris was an open source computer operating system based on Solaris created by Sun Microsystems. It was also the name of the project initiated by Sun to build a developer and user community around the software...
, and Mac OS X
Mac OS X
Mac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems...
. It was officially merged into the mainstream Linux kernel
Linux kernel
The Linux kernel is an operating system kernel used by the Linux family of Unix-like operating systems. It is one of the most prominent examples of free and open source software....
tree in kernel version 2.6.14.
Virtual file system
FUSE is particularly useful for writing virtual file systemVirtual file system
A virtual file system or virtual filesystem switch is an abstraction 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...
s. Unlike traditional file systems that essentially save data to and retrieve data from disk, virtual filesystems do not 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.
Examples
- WualaWualaWuala is a secure online storage, file synchronization, versioning and backup, service, originally developed and run by Caleido Inc., which is now part of LaCie. Service is a combination of:...
: A multi-platform, Java-based fully OS integrated distributed file system. Using FUSE, MacFUSE and Callback File System respectively for file system integration, in addition to a Java-based app accessible from any Java-enabled web browser. - MyVDrive: Fully OS integrated Internet file system using FUSE
- WebDriveWebDriveWebDrive is an FTP client developed by South River Technologies. The latest version of the software is 10.00. Webdrive integrates WebDAV, FTP, Amazon S3 or SFTP so that linked server resources function as a mapped network drive....
: A commercial filesystem implementing WebDAVWebDAVWeb-based Distributed Authoring and Versioning is a set of methods based on the Hypertext Transfer Protocol that facilitates collaboration between users in editing and managing documents and files stored on World Wide Web servers...
, SFTP, FTP, FTPS and Amazon S3Amazon S3Amazon S3 is an online storage web service offered by Amazon Web Services. Amazon S3 provides storage through web services interfaces... - 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.
- ExpanDriveExpanDriveExpanDrive is a Network file system client for Mac OS X and Microsoft Windows that facilitates mapping of local volume to any SFTP server the user can access. It also can connect to FTP servers and Amazon S3. When a server is mounted with ExpanDrive any program can read, write, and manage remote...
: A commercial filesystem implementing SFTP/FTP/FTPS using FUSE - GlusterFSGlusterFSGlusterFS is a scale-out NAS file system developed by Gluster. It aggregates various storage servers over Ethernet or Infiniband RDMA interconnect into one large parallel network file system. GlusterFS is based on a stackable user space design without compromising performance. It has found a...
: Clustered Distributed Filesystem having capability to scale up to several petabytes. - SSHFSSSHFSIn computing, SSHFS is a filesystem client to mount and interact with directories and files located on a remote server or workstation...
: Provides access to a remote filesystem through SSHSecure ShellSecure Shell is a network protocol for secure data communication, remote shell services or command execution and other secure network services between two networked computers that it connects via a secure channel over an insecure network: a server and a client... - FTPFSFTPFSFTPFS refers to file systems that support access to a File Transfer Protocol server through standard file system application programming interfaces ....
- GmailFSGmailFSGmailFS is a virtual file system originally developed by Richard Jones that uses a Gmail e-mail account for storage. GmailFS is written for Linux, but Windows and Mac OS X ports exist too. It originally was based on underlying SMTP and POP3 interation with gmail...
: Filesystem which stores data as mail in GmailGmailGmail is a free, advertising-supported email service provided by Google. Users may access Gmail as secure webmail, as well via POP3 or IMAP protocols. Gmail was launched as an invitation-only beta release on April 1, 2004 and it became available to the general public on February 7, 2007, though... - GAEDrive: A Network Storage based on Google App EngineGoogle App EngineGoogle App Engine is a platform as a service cloud computing platform for developing and hosting web applications in Google-managed data centers. It virtualizes applications across multiple servers,...
- gae-filestore: Virtual File System library on Google App EngineGoogle App EngineGoogle App Engine is a platform as a service cloud computing platform for developing and hosting web applications in Google-managed data centers. It virtualizes applications across multiple servers,...
- GVFSGVFSGVFS is the virtual filesystem for the GNOME desktop, which allows users easy access to remote data via SFTP, FTP, WebDAV, SMB, and local data via HAL integration, OBEX and others....
: The virtual filesystem for the GNOME desktop - EncFSEncFSEncFS is a Free FUSE-based cryptographic filesystem that transparently encrypts files, using an arbitrary directory as storage for the encrypted files....
: Encrypted virtual filesystemDisk encryptionDisk encryption is a special case of data at rest protection when the storage media is a sector-addressable device . This article presents cryptographic aspects of the problem... - NTFS-3GNTFS-3GNTFS-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 runnable on Linux, FreeBSD, NetBSD, OpenSolaris, BeOS,...
and Captive NTFSCaptive NTFSCaptive NTFS is a discontinued open-source project within 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...
, allowing access to NTFSNTFSNTFS is the standard file system of Windows NT, including its later versions Windows 2000, Windows XP, Windows Server 2003, Windows Server 2008, Windows Vista, and Windows 7....
filesystems - WikipediaFSWikipediaFSWikipediaFS is a virtual filesystem which allows users to view and edit Wikipedia articles as if they were real files on a local disk drive. This enables a user to edit articles directly with any text editor. WikipediaFS is developed primarily by Mathieu Blondel on SourceForge.net.WikipediaFS is...
: View and edit Wikipedia articles as if they were real files - Sun MicrosystemsSun MicrosystemsSun Microsystems, Inc. was a company that sold :computers, computer components, :computer software, and :information technology services. Sun was founded on February 24, 1982...
's LustreLustre (file system)Lustre is a massively parallel distributed file system, generally used for large scale cluster computing. The name Lustre is a portmanteau word derived from Linux and cluster...
cluster filesystem will use FUSE to allow it to run in userspace, so that a FreeBSD port is possible. However, the ZFSZFSIn computing, ZFS is a combined file system and logical volume manager designed by Sun Microsystems. The features of ZFS include data integrity verification against data corruption modes , support for high storage capacities, integration of the concepts of filesystem and volume management,...
-Linux port of Lustre will be running ZFS's DMU (Data Management Unit) in userspace. - archivemountArchivemountarchivemount is a FUSE-based file system for Unix variants, including Linux. Its purpose is to mount archives to a mount point where it can be read from or written to as with any other file system...
- LoggedFS http://loggedfs.sourceforge.net/: Logging of file system access
- HDFS: FUSE bindings exist for the open sourceOpen sourceThe term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...
HadoopHadoopApache Hadoop is a software framework that supports data-intensive distributed applications under a free license. It enables applications to work with thousands of nodes and petabytes of data...
distributed filesystem. - mtpfsMedia Transfer ProtocolThe Media Transfer Protocol is a devised set of custom extensions to the Picture Transfer Protocol . Whereas PTP was designed for downloading photographs from digital cameras, Media Transfer Protocol supports the transfer of music files on digital audio players and media files on portable media...
: mounting MTPMedia Transfer ProtocolThe Media Transfer Protocol is a devised set of custom extensions to the Picture Transfer Protocol . Whereas PTP was designed for downloading photographs from digital cameras, Media Transfer Protocol supports the transfer of music files on digital audio players and media files on portable media...
devices like Creative Zen music players - Sector File SystemSector/SphereSector/Sphere is an open source software suite for high-performance distributed data storage and processing. It can be broadly compared to Google's GFS/MapReduce stack. Sector is a distributed file system targeting data storage over a large number of commodity computers...
: Sector is a distributed file system designed for large amount of commodity computers. Sector uses FUSE to provide a mountable local file system interface. - CurlFtpFSCurlFtpFSCurlFtpFS is a filesystem for accessing FTP hosts based on FUSE and libcurl, which offers the following features amongst others:* SSLv3 and TLSv1 support;* the ability to connect through tunneling HTTP proxies;...
Filesystem to access FTPFile Transfer ProtocolFile Transfer Protocol is a standard network protocol used to transfer files from one host to another host over a TCP-based network, such as the Internet. FTP is built on a client-server architecture and utilizes separate control and data connections between the client and server...
/SFTPSSH file transfer protocolIn computing, the SSH File Transfer Protocol is a network protocol that provides file access, file transfer, and file management functionality over any reliable data stream...
locations. - fuse-ext2 An open source ext2/ext3 file system. (Supports Mac OS XMac OS XMac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems...
10.4 and later (Universal BinaryUniversal binaryA universal binary is, in Apple parlance, an executable file or application bundle that runs natively on either PowerPC or Intel-manufactured IA-32 or Intel 64-based Macintosh computers; it is an implementation of the concept more generally known as a fat binary.With the release of Mac OS X Snow...
), using MacFuse) - Lessfs: inline data de-duplicatingData deduplicationIn computing, data deduplication is a specialized data compression technique for eliminating coarse-grained redundant data. The technique is used to improve storage utilization and can also be applied to network data transfers to reduce the number of bytes that must be sent across a link...
filesystem for Linux that includes support for lzo or QuickLZ compression and encryption. - CloudStoreCloudStoreCloudStore is Kosmix's C++ implementation of Google File System. It parallels the Hadoop project, which is implemented in Java. CloudStore supports incremental scalability, replication, checksumming for data integrity, client side fail-over and access from C++, Java and Python...
(formerly, Kosmos filesystem): By mounting via FUSE, existing LinuxLinuxLinux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...
utilities can interface with CloudStore. - MooseFSMoose File SystemMoose File System is a distributed file system developed by Gemius SA. The lead developer is Jakub Kruszona-Zawadzki. MooseFS aims to be fault-tolerant, scalable, POSIX compliant, general-purpose file system for datacenters...
: An open source distributed fault-tolerant file system available on every OS with FUSE implementation (Linux, FreeBSD, NetBSD, OpenSolaris, MacOS X), capable of storing petabytes of data spread over several servers visible as one resource. - NagusFS: Filesystem representation of NagiosNagiosNagios is a popular open source computer system and network monitoring software application. It watches hosts and services, alerting users when things go wrong and again when they get better....
services. - NagiosFS (http://sourceforge.net/apps/mediawiki/fuse/index.php?title=NetworkFileSystems#NagiosFS): Filesystem representation of remote monitoring values.
- CassandraFS (https://code.launchpad.net/cassandrafs): Filesystem over Cassandra (cassandra.apache.org).
- ZFSZFSIn computing, ZFS is a combined file system and logical volume manager designed by Sun Microsystems. The features of ZFS include data integrity verification against data corruption modes , support for high storage capacities, integration of the concepts of filesystem and volume management,...
: ZFS-Fuse-Linux implementation - fuse-zip: Allows to use zip files as a filesystem (supports writing)
- OWFS http://www.owfs.org One-Wire File System giving access to 1-Wire1-Wire1-Wire is a device communications bus system designed by Dallas Semiconductor Corp. that provides low-speed data, signaling, and power over a single signal. 1-Wire is similar in concept to I²C, but with lower data rates and longer range. It is typically used to communicate with small inexpensive...
devices via a file system directory structure. - TrueCryptTrueCryptTrueCrypt is a software application used for on-the-fly encryption . It is free and open source. It can create a virtual encrypted disk within a file or encrypt a partition or the entire storage device .- Operating systems :TrueCrypt supports Microsoft Windows, Mac OS X, and...
: a software application used for on-the-fly encryption (OTFE). It can create a virtual encrypted disk within a file as well as encrypt a partition or entire storage device. - s3fs-FuseOverAmazonS3: A FUSE-based file system backed by Amazon S3. Mount a bucket as a local file system read/write. Store files/folders natively and transparently on AWS: Simple Storage Service.
- s3fs-c: A file system backed by Amazon S3. Forked from s3fs and rewritten to be compatible with some other S3 clients such as AWS Management Console.
- LR|FS http://www.formal.ie/fs: An Mac OS X file system for Adobe Lightroom catalogs. Requires MacFuse.
See also
- 9P9P9P 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 represent windows, network connections, processes, and almost anything else available in the operating...
the Plan9 operating system file protocol that preceded FUSE that provides many of the same features. - Installable File SystemInstallable File SystemThe Installable File System is a filesystem API in IBM OS/2 and Microsoft Windows that enables the operating system to recognize and load drivers for file systems...
External links
- FUSE Home Page
- Develop your own filesystem with FUSE by Sumit Singh
- List of FUSE filesystems
- Callback File System - SDK that lets developers create virtual file systems for Windows in user mode
- Fuse for FreeBSD
- MacFUSE
- Dokan Windows user mode file system library
- Documentation/filesystems/fuse.txt documentation in Linux source tree