This topic was published by DevynCJohnson and viewed 450 times since "". The last page revision was "".
- Topics - 444
Sometimes, an application may need to access a remote file. It is better for the programmer and the computer's performance if there is a standard method of access remote files. Thankfully, Linux distros do have ways of standardizing a method for accessing files.
GNOME Virtual FileSystem (GVFS) is a pseudo/virtual filesystem that is owned by the user. The GNOME and Unity desktop environments both use GVFS. The mount-point (~/.gvfs/) allows a user's processes to access remote data using regular system calls as if the files were local. Alternatively, the data can be accessed via a web-browser (using a URI).
GnomeVFS is not the same as GVFS, even though their abbreviations are a shortened form of the same text. GnomeVFS was developed first, but then GVFS was developed and is the new standard. GnomeVFS is now deprecated. GnomeVFS was used to access remote filesystems as if they were local.
GIO is a library for accessing virtual filesystems when using a GNOME-based system. GIO is a lot like GVFS or GnomeVFS. GIO and GVFS can be installed on the same system and work together.
KDE-based systems use "KDE Input/Output" (KIO) instead of the virtual filesystem compatibility layers mentioned above for GNOME. KIO allows KDE applications to manipulate files on remote storage without the software noticing that the file is not local.
ThunarVFS is a lot like GVFS, but for the Thunar file manager was once used in XFCE. However, ThunarVFS is now deprecated and GVFS is used instead.
All of the above virtual filesystems allow the system's applications to think the files are local. This concept is known as network-transparency. This means that the application cannot notice the difference between remote and local files. This is beneficial because programs can then have a uniform standard for accessing and manipulating files.
GIO and KIO are libraries while GVFS and GnomeVFS are virtual filesystems (VFS) inside of FUSE. FUSE (Filesystem in Userspace) is a high-level framework that allows user's to make and use their own filesystems without modifying the kernel or needing Root privileges. The code for FUSE itself is in the kernel, but virtual filesystems running in FUSE are in the userspace.
It is important to know that not all virtual filesystems run in FUSE. Apache servers can use a VFS called Commons Virtual File System (Commons-VFS), but it does so inside of Java. Commons-VFS allows Apache to access remote files as local ones or files inside a compressed file (zip, tar, gzip, and others) as if the files were not compressed.
FUSE and Commons-VFS work by "translating" regular I/O system calls to code that is usable by a network protocol that allows users to manipulate remote data.
- FUSE - http://dcjtech.info/topic/fuse/
- Overview of FUSE Filesystems - http://dcjtech.info/topic/overview-of-fuse-filesystems/