Virtual File System: 1 Implementations
Virtual File System: 1 Implementations
malloc
...
stat(2)
chmod(2)
open(2)
read(2)
write(2)
USB
Virtual Host
FireWire
tcm_usb_gadget
sbp_target
VFS
Block-based FS
ext2 ext3 ext4 xfs
Direct I/O
(O_DIRECT)
target_core_mod
target_core_le
btrfs
ifs
gfs
ocfs
Pseudo FS
Network FS
NFS
coda
...
smbfs
iso9660
...
proc
Special
purpose FS
sysfs
pipefs futexfs
...
ceph
usbfs
Page
cache
tmpfs ramfs
devtmpfs
Stackable FS
target_core_iblock
target_core_pscsi
ecryptfs
overlayfs
FUSE
unionfs
target_core_user
(optional)
stackable
struct bio
dm-raid
userspace
- sector on disk
- sector cnt
- bio_vec cnt
- bio_vec index
- bio_vec list
dm-delay
BIOs
BIOs
BIOs
Block Layer
I/O scheduler
blkmq
multi queue
noop
...
cfq
mmap
(anonymous pages)
Applications (processes)
LIO
tcm_vhost
ISCSI
Fibre Channel
tcm_qla2xxx
iscsi_target_mod
tcm_fc
Fibre Channel
over Ethernet
Software
queues
deadline
Hardware
dispatch
queue
...
Request
based drivers
Hardware
dispatch
queues
BIO
based drivers
Request
based drivers
Request-based
device mapper targets
dm-multipath
/dev/zram* /dev/rbd*
scsi-mq
SCSI upper level drivers
...
/dev/sda /dev/sd*
sysfs
(transport attributes)
Transport classes
scsi_transport_fc
/dev/sr*
/dev/skd*
/dev/mmcblk*p*
/dev/nullb*
/dev/vd*
/dev/rssd*
mmc
null_blk
virtio_blk
mtip32xx nvme
/dev/nvme*n*
/dev/st*
zram
scsi_transport_sas
rbd
/dev/rsxx*
skd
rsxx
network
scsi_transport_...
memory
megaraid_sas
qla2xxx
pm8001
iscsi_tcp virtio_scsi
mpt3sas
lpfc
aacraid
ufs
...
vmw_pvscsi
network
HDD
SSD
DVD
drive
Physical devices
LSI
RAID
Qlogic
HBA
Adaptec
RAID
PMC-Sierra
HBA
Emulex
HBA
LSI 12Gbs
SAS HBA
para-virtualized
SCSI
virtio_pci
VMware's
para-virtualized
SCSI
mobile device
ash memory
Micron
PCIe card
SD-/MMC-Card
nvme
device
stec
device
IBM ash
adapter
The position of the VFS layer within various parts of the Linux
kernel's storage stack.[1]
Implementations
One of the rst virtual le system mechanisms on Unixlike systems was introduced by Sun Microsystems in
SunOS 2.0 in 1985. It allowed Unix system calls to access local UFS le systems and remote NFS le systems
transparently. For this reason, Unix vendors who licensed
the NFS code from Sun often copied the design of Suns
VFS. Other le systems could be plugged into it also:
there was an implementation of the MS-DOS FAT le
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.
including Mac OS X.
Other Unix virtual le 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 le system mechanism is called the
Installable File System.
The Filesystem in Userspace (FUSE) mechanism allows
userland code to plug into the virtual le system mechanism in Linux, NetBSD, FreeBSD, OpenSolaris, and
Mac OS X.
In Microsoft Windows, virtual lesystems can also be implemented through userland Shell namespace extensions;
however, they do not support the lowest-level le system
access application programming interfaces in Windows,
so not all applications will be able to access le systems
that are implemented as namespace extensions. KIO and
GVFS/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 sys-
3 See also
tem.
2.1
PCTask
REFERENCES
WinUAE
4 Notes
1. ^ Emulation on Amiga Comparison between PCX
and PCTask, Amiga PC emulators.
2. ^ See also This article explaining how it works PCTask.
3. ^ Help About WinUAE (See Hardle section).
4. ^ Help About WinUAE (See Add Directory section)
5 References
[1] Werner Fischer; Georg Schnberger (2015-06-01).
Linux Storage Stack Diagram. Thomas-Krenn.AG. Retrieved 2015-06-08.
External links
AVFS - A Virtual File System for mounting compressed or remote les
fs-driver Ext2 Installable File System for Microsoft
Windows
Anatomy of the Linux le system by M. Tim Jones
Solid File System - (SolFS) cross-platform singlele virtual le system with encryption and compression
Callback File System - SDK that lets developers create virtual le systems for Windows in user mode
FUSE - Filesystem in Userspace - virtual lesystem
for Linux.
LUFS - Linux Userland Filesystem - virtual lesystem with support of localfs, sshfs, ftpfs, gnutellafs,
locasefs, gvfs, cardfs, cefs and more. Latest le release: 2003-10-29
TrueVFS - Virtual File System for Java, with threadsafe read/write access to ZIP, ZIP.RAES, TAR,
TAR.BZ2, TAR.GZ, TAR.XZ, ODF, HTTP(S) etc.
Commons VFS - virtual lesystem for Java, with
support for Cifs, ftp, http, Zip (le format), Tar (le
format), gzip, bzip2, and more.
MillScript VFS - virtual lesystem for Java, inuenced by the KIO subsystem in KDE, Steve Leachs
work on a VFS in JSpice and to a limited extent the
Apache Commons VFS.
KIO - (KDE IO) - a network-enabled le management system
ipcode - Programming a Virtual File System
Dokan - A free and open source virtual lesystem for
Windows (includes C, .NET, and Ruby bindings).
JPfm - a cross-platform virtual lesystem in user
space library written in java.
7.1
Text
Virtual le system Source: https://en.wikipedia.org/wiki/Virtual_file_system?oldid=678497966 Contributors: Kku, Dcljr, Error, Furrykef, Itai, Phil Boswell, David Gerard, AlistairMcMillan, Eric B. and Rakim, Hellisp, John Vandenberg, LeonardoGregianin, Falsian,
Elifarley, Guy Harris, Fritz Saalfeld, Smoothy, Suruena, Voxadam, Lost.goblin, Toussaint, Reisio, Pdelong, Etamura, Raaele Megabyte,
NorkNork, Chobot, 121a0012, YurikBot, Mipadi, Jsnx, SmackBot, Pbb, Mre5765, Bluebot, Frap, Mwtoews, TPO-bot, Harryboyles,
EdC~enwiki, TerryE, Stuartkonen, A876, PKT, Widefox, Tedickey, MoazReyad, Aphthong, Kyle the bot, OlavN, Matt.s.wise, ToePeu.bot,
Jerryobject, Mayevski, 05, Lightmouse, Martarius, LukeShu, Jurasik~enwiki, Andy16666, Shashaanktulsyan, Dsimic, Addbot,
Ghettoblaster, Debresser, Fiftyquid, Luckas-bot, Yobot, Gamebouille, Roseatefairy, Wscher, Xiaoshuang, MastiBot, ZxPezz, Trappist
the monk, Nelsonlombardo, CherryX, Hundblue, ChrisGualtieri, Monkbot, Mattyjtcx and Anonymous: 64
7.2
Images
7.3
Content license