File system in userspace

from Wikipedia, the free encyclopedia
How FUSE works: There is a kernel module , but the actual program logic (libfuse) runs in userspace (above). The accessing program ls (top left) accesses it like a normal file system, only the kernel module redirects the call.
VFS: Virtual file system
NFS, Ext3,…: file systems
glibc: GNU-C library

FUSE ( filesystem in userspace ) is a kernel module for Unix systems that enables file system drivers to be shifted from kernel mode to user mode .

use

FUSE was born out of the necessity to enable users with standard rights to integrate ( mount ) file systems into the system of a computer. Usually, file systems were only created on hard drives that were permanently installed in a computer and were therefore made available immediately after installation by the administrator (or the user via the administrator account) by installing the appropriate driver. With the advent of mobile mass storage devices such as B. USB sticks or external data backup systems at lower prices, it became necessary to enable users without administrator rights to install and manage such devices. FUSE is integrated into the system (installed) with administrative rights and then makes the same functions available to non-privileged computer users (with standard rights).

FUSE is the drive-specific module (for the connected hardware ) and additionally requires the appropriate file system-specific driver to integrate the file system it contains. The best known is NTFS-3G , which enables access to the widespread NTFS file systems ( Windows ). With the help of FUSE, most existing file systems such as NTFS or UDF ( DVDs ) can be integrated under GNU / Linux , FreeBSD , OpenSolaris , Mac OS X or Android . Since FUSE file systems - like normal application programs - run in user mode, the developer does not have to deal with the restrictions and special features of the kernel mode. FUSE file system drivers are therefore much easier to develop and maintain. This resulted in a large number of drivers which, in addition to storage media, also map completely different data structures as a navigable file system.

history

On October 15, 2004, the FUSE project was founded on SourceForge as a variant of the SHFS project. It was part of the mm kernel since January 15, 2005 before it was included in the official Linux kernel 2.6.14 on September 13, 2005 . The re-implementation under the ISC license (released March 2013) made it easier to embed in OpenBSD, which happened in June 2013.

Since Linux kernel 2.6.31 and NetBSD 5.0. CUSE is an integrated driver within FUSE.

A project with similar goals is the Linux Userland Filesystem (LUFS), which however has lost its importance with the introduction of FUSE and is no longer actively developed.

Known file systems and drivers

Surname description source
Captive Enables secure write access to NTFS partitions by integrating the original Windows driver ntfs.sys with the help of a compatibility layer (development discontinued)
CloudFusion Integration of Dropbox, Sugarsync, Amazon S3, Google Storage and WebDAV accounts
CryFS ( Cryptographic Filesystem ) Encrypted file system for Dropbox or other cloud providers.
curlftpfs Integration of the data of an FTP server (for example, integration of personal data into the local file system of a web host)
CUSE (Character Devices in Userspace) Can communicate with applications running in user mode such as keyboards , mice, or other devices such as serial communications.
davfs2 Allows access to WebDAV resources and is able to authenticate with client certificates .
EncFS ( Encrypted Filesystem ) Encrypted pass-through file system similar to CFS
exFAT Allows reading and writing to flash media with exFAT
fusedav Allows access to WebDAV resources
glusterFS A cluster file system
GmailFS Allows Gmail mailboxes to be used as file storage
GnomeVFS2 FUSE Is an interface to the Gnome Virtual Filesystem
gPhotoFS Integrates the image interface of digital cameras as mass storage
LoggedFS Logs operations in the file system
mysqlfs Allows data to be stored in a MySQL database
NTFS-3G Allows read and write access to NTFS
ntfsmount Allows the mounting of NTFS partitions with write support (from the Linux ntfs project)
s3fs Allows mounting of Amazon Web Services Object Storage ( Amazon S3 )
SSHFS Allows a drive to be mounted via SSH
wdfs Allows access to WebDAV resources
WikipediaFS Allows you to work with articles from a MediaWiki installation (and thus not just Wikipedia ) as if they were normal text files
ZFS on FUSE Allows access to the modern 128-bit file system ZFS from Sun . Since ZFS is published under the CDDL , no direct integration into the Linux kernel is possible. The port was sponsored as part of the Google Summer of Code . (Development stopped)

Web links

Individual evidence

  1. openbsd dev - tech - Fuse (and sshfs) support for OpenBSD. March 5, 2013, accessed July 15, 2015 .
  2. 'CVS: cvs.openbsd.org: src' - MARC. June 3, 2013, accessed July 15, 2015 .
  3. Julius Stiebert: Linux kernel 2.6.31 supports USB 3.0. Golem, September 10, 2009
  4. Announcing NetBSD 5.0. The NetBSD Project (netbsd.org)
  5. http://wiki.ubuntuusers.de/CloudFusion
  6. https://www.cryfs.org
  7. http://savannah.nongnu.org/projects/davfs2
  8. GitHub project page. Retrieved June 2, 2019 .
  9. http://0pointer.de/lennart/projects/fusedav/
  10. http://www.gluster.org/
  11. http://loggedfs.sourceforge.net/
  12. http://sourceforge.net/projects/mysqlfs/
  13. NTFS-3G: Full NTFS write access under Linux. In: golem.de. July 17, 2006, accessed July 15, 2015 .
  14. http://www.linux-ntfs.org/
  15. https://github.com/s3fs-fuse/s3fs-fuse/
  16. David Wolski: Toolbox: File access with sshfs - heise open. In: heise.de. July 23, 2012, accessed July 15, 2015 .
  17. http://noedler.de/projekte/wdfs/
  18. http://wikipediafs.sourceforge.net
  19. http://zfs-on-fuse.blogspot.com/