Miklos Szeredi provided patches against the 2.6.10 Linux kernel [story [1]] for FUSE [2], "Filesystem In Userspace". Aptly named, "FUSE exports the filesystem functionality to userspace. The communication interface is designed to be simple, efficient, secure and able to support most of the usual filesystem semantics."
Originally developed for the AVFS [3] project, FUSE has since been utilized by a growing list [4] of userland filesystems. Some interesting examples include the FunFS [5] network filesystem aiming "to be better than NFS", the EncFS [6] encrypted filesytem, the Python-based GmailFS [7] which turns a gmail account into a storage medium, the Phonebook [8] filesystem offering "Deniable Encryption technology", and the Wayback [9] versioning filesystem. The aim is to get the FUSE kernel module merged into the mainline Linux kernel.
From: Miklos Szeredi [email blocked] To: akpm, [email blocked] Subject: [PATCH 0/11] FUSE - Filesystem in Userspace Date: Mon, 10 Jan 2005 19:53:59 +0100 Andrew, Linus, Please apply the following patches, which add Filesystem in Userspace to the kernel. The patches are against 2.6.10. FUSE [1] exports the filesystem functionality to userspace. The communication interface is designed to be simple, efficient, secure and able to support most of the usual filesystem semantics. It can be used for prototyping and for network/virtual filesystems requiring external libraries or programs. A typical example is sshfs [2] which uses the sftp protocol and allows zero-setup mounting of remote sites. FUSE is currently in use by dozens of publicly available filesystems [3], and by many in-house applications. It has proved useful and stable for lots of users. Thanks to everyone for the comments on the last submission. Changes since then are: - Made it Deadlock Free (TM). This includes removing support for shared writable mapping and making all requests interruptible. - Removed INVALIDATE userspace initiated request, this is probably not used by any application. - Updated ABI to be independent of sizeof(long), so dual-size archs don't cause problems - Remove /sys/fs/fuse/version. Version checking is now done through the fuse device The patch is split up to the following parts: 01 [10] - MAINTAINERS, Kconfig and Makefile changes 02 [11] - FUSE core 03 [Array] - FUSE device functions 04 [12] - read-only operations (getattr, readlink, readdir, ...) 05 [13] - read-write operations (setattr, mkdir, symlink, ...) 06 [14] - file operations (open, read, write, ...) 07 [15] - mount options controlling the behavior of the filesystem 08 [16] - extended attribute operations (getxattr, setxattr, ...) 09 [17] - readpages operation 10 [18] - NFS export support 11 [Array] - direct I/O support Thanks, Miklos [1] http://fuse.sourceforge.net/ [19] [2] http://sourceforge.net/project/showfiles.php?group_id=121684&package_id=140425 [20] [3] http://fuse.sourceforge.net/filesystems.html [21]
Related Links:
- Archive of above thread [22]