Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Virtual file system
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Implementations== [[File:The Linux Storage Stack Diagram.svg|thumb|right|upright=2.0|The position of the VFS layer within various parts of the [[Linux kernel]]'s storage stack.<ref>{{Cite web | url = https://www.thomas-krenn.com/en/wiki/Linux_Storage_Stack_Diagram | title = Linux Storage Stack Diagram | date = 2015-06-01 | access-date = 2015-06-08 | author1 = Werner Fischer | author2 = Georg Schönberger | publisher = Thomas-Krenn.AG }}</ref>]] One of the first virtual file system mechanisms on [[Unix-like]] systems was introduced by [[Sun Microsystems]] in [[SunOS]] 2.0 in 1985.<ref>{{cite journal|last1=Kleiman|first1=Steve R.|title=Vnodes: An Architecture for Multiple File System Types in Sun UNIX|journal=USENIX Summer|date=June 1986|volume=86|pages=238–247|url=http://www.arl.wustl.edu/~fredk/Courses/cs523/fall01/Papers/kleiman86vnodes.pdf|archive-url=https://web.archive.org/web/20140629172905/http://www.arl.wustl.edu/~fredk/Courses/cs523/fall01/Papers/kleiman86vnodes.pdf|access-date=31 December 2016|archive-date=2014-06-29|ref=2}}</ref> It allowed Unix system calls to access local [[Unix File System|UFS]] file systems and remote [[Network File System (protocol)|NFS]] file systems transparently. For this reason, Unix vendors who licensed the NFS code from Sun often copied the design of Sun's VFS. Other file systems could be plugged into it also: there was an implementation of the [[MS-DOS]] [[File Allocation Table|FAT]] file system developed at Sun that plugged into the SunOS VFS, although it wasn't shipped as a product until SunOS 4.1. The SunOS implementation was the basis of the VFS mechanism in [[System V Release 4]]. [[John Heidemann]] developed a ''stacking'' VFS under SunOS 4.0 for the experimental [[Ficus (file system)|Ficus file system]]. This design provided for [[code reuse]] among file system types with differing but similar semantics (''e.g.'', an encrypting file system could reuse all of the naming and storage-management code of a non-encrypting file system). Heidemann adapted this work for use in [[4.4BSD]] as a part of his [[thesis]] research; descendants of this code underpin the file system implementations in modern BSD derivatives including [[macOS]]. Other Unix virtual file systems include the File System Switch in [[System V Release 3]], the Generic File System in [[Ultrix]], and the VFS in [[Linux]]. In [[OS/2]] and [[Microsoft Windows]], the virtual file system mechanism is called the [[Installable File System]]. The [[Filesystem in Userspace]] (FUSE) mechanism allows [[userland (computing)|userland]] code to plug into the virtual file system mechanism in Linux, [[NetBSD]], [[FreeBSD]], [[OpenSolaris]], and macOS. In Microsoft Windows, virtual filesystems can also be implemented through userland [[Shell extension|Shell namespace extensions]]; however, they do not support the lowest-level file system access [[application programming interface]]s in Windows, so not all applications will be able to access file systems that are implemented as namespace extensions. [[KIO]] and [[GVfs]]/[[GIO (software)|GIO]] provide similar mechanisms in the [[KDE]] and [[GNOME]] desktop environments (respectively), with similar limitations, although they can be made to use FUSE techniques and therefore integrate smoothly into the system.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)