Filesystem in Userspace
Filesystem in Userspace (FUSE) is a free Unix kernel module, released under the GPL and the LGPL, that allows non-privileged users to create their own file systems without the need to write any kernel code. This is achieved by running the file system code in user space, while the FUSE module only provides a "bridge" to the actual kernel interfaces. FUSE was officially merged into the mainstream Linux kernel tree in kernel version 2.6.14.
FUSE is particularly useful for writing virtual file systems. Unlike traditional filesystems which 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 filesystem or storage device. In principle, any resource available to FUSE implementation can be exported as a file system. See Examples for some of the possible applications.
The FUSE system was originally part of A Virtual Filesystem (AVFS), but has since split off into its own project on SourceForge.
FUSE is available for Linux, FreeBSD, NetBSD (as PUFFS), OpenSolaris and Mac OS X.
Examples
- ElasticDrive: Amazon S3 backed Virtual storage system
- SSHFS: Provides access to a remote filesystem through SSH
- GmailFS: Filesystem which stores data as mail in Gmail
- EncFS: Encrypted virtual filesystem
- Captive NTFS, ntfsmount, and NTFS-3G, allowing access to NTFS filesystems
- WikipediaFS : View and edit Wikipedia articles as if they were real files
- iPodDisk: Uses the MacFUSE system to display the iPod's hidden and obfuscated file system as if it were a well-organized music directory, also allowing users to copy files from an iPod to another disk
A list of FUSE filesystems can be found on the FUSE website[1].
See also
- Installable File System (Microsoft Windows)
- v9fs also allows implementing user space file systems using the 9P protocol.
- Davfs2 WebDAV filesystem Linux kernel module
- Plan 9 from Bell Labs
NetBSD has its own user space file system framework, PUFFS (Pass-to-Userspace Framework File System) with a FUSE compatibility layer called refuse.
External links
Ports:
- Fuse Project on OpenSolaris
- MacFUSE Fuse for Mac OS X
- Fuse for FreeBSD
- NetBSD: Filesystems in userspace
Alternatives: