Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

GVfs

From Wikipedia, the free encyclopedia
Userspace virtual filesystem software for the GNOME desktop environment
"GVFS" and "GNOME Virtual file system" redirect here. For the previous filesystem GNOME Virtual File System, seeGnomeVFS. For VFS for Git (formerly known as Git Virtual File System or GVFS), seeVirtual File System for Git.
This articlerelies excessively onreferences toprimary sources. Please improve this article by addingsecondary or tertiary sources.
Find sources: "GVfs" – news ·newspapers ·books ·scholar ·JSTOR
(February 2017) (Learn how and when to remove this message)
GVfs
Stable release
1.57.2[1] Edit this on Wikidata / 14 February 2025
Repository
Operating systemLinux
PlatformGNOME
Typeabstraction layer for the files system
LicenseLGPL-2.0-or-later
Websitegitlab.gnome.org/GNOME/gvfs Edit this on Wikidata

GVfs (abbreviation forGNOME virtual file system) isGNOME's userspacevirtual filesystem designed to work with the I/O abstraction ofGIO, a library available inGLib since version 2.15.1. It installs several modules that are automatically used by applications using the APIs of libgio. There is alsoFUSE support that allows applications not using GIO to access the GVfs filesystems.

A cause of confusion is the fact that thefile system abstraction used by theLinux kernel is also called thevirtual file system (VFS) layer. This is however at a lower level.

The GVfs model differs from e.g.GnomeVFS, which it replaces, in that file systems must be mounted before they are used. There is a master daemon (gvfsd) that handles coordinating mounts, and then each mount is (typically) in its own daemon process (although mounts can share daemon process).

GVfs comes with a set of back-ends, including trash support,SFTP,FTP,WebDAV,SMB, and local data viaUdev integration,OBEX,MTP and others.[2] GVfs does not seem to support theFiles transferred over shell protocol (FISH).

GVfs also contains modules forGIO that implement volume monitors and the GNOME URI scheme handler configuration.

There is a set of arguments to the command line program "gio" that lets you run commands (like cat, ls, stat, mount, etc.) on files in the GVfs mounts.

Attached resources are exposed via aURI syntax, for example smb://server01/gamedata or ftp://username:password@ftp.example.net/public_html, but are alsomounted in the traditional manner under~/.gvfs/ or/run/user/$UID/gvfs or$XDG_RUNTIME_DIR/gvfs directory[3][4] to make them available to applications using standardPOSIX commands and I/O.

Technical details

[edit]
The optionx-gvfs-show for the gvfs-udisks2-volume-monitor process determines whether a mounted device is shown or not[5] inGNOME Files. Screenshot ofGNOME Disks.

Along with generally useful APIs such as networking and D-Bus support,GIO also provides a VFS API to applications. GVfs provides implementations that go beyond that and allow to access files and storage using many protocols. GVfs provides implementations for various network file systems as loadable modules. Additionally GVfs also provides support for trash, network or recent folders, for CD burning and for monitoring interesting devices and volumes on the computer.

The goal of GVfs has been to overcome the shortcomings of GnomeVFS[6] and provide an API that is so good that developers prefer it over raw POSIX calls. Among other things that means using GObject. It also means not cloning the POSIX API, but providing higher-level, document-centric interfaces. GTK can directly use it, e.g. in the filechooser.

Applications use GVfs indirectly, by means of GIO loading the GVfs module that implements the GIO extension points. The GVfs main daemon gvfsd spawns further mount daemons for each individual connection. The GVfs support for volume monitoring is included in a separate loadable module.

The actual GVfs implementation is distributed over a number of processes.

GVfs can useFUSE to mount its VFS directly onto the filesystem.[7] It consists of two parts:[8]

  1. a shared library which is loaded by applications supportingGIO
  2. GVfs itself, which contains a collection ofdaemons which communicate with each other and the GIO module overD-Bus.

A collection of command-line utilities (such as gvfs-mount, gvfs-less) works with VFS resources.[9]

Daemontask
Main
gvfsdgvfsd is the main daemon of GVfs. It provides the"org.gtk.vfs.Daemon" name on the session bus. gvfsd is autostarted by GIO clients if it is not running. The primary task of gvfsd is to act as a mount tracker/manager. It spawns new back-ends when requested and keeps track of their lifecycle, maintaining a list of active mounts and creates direct connections to them. gvfsd also starts the gvfsd-fuse(1), and provides it the mount point where the fuse file system should be mounted.
gvfsd-fusegvfsd-fuse maintains a FUSE (Filesystem in Userspace) mount to make GVfs back-ends available to POSIX applications. The mount point for the fuse filesystem is provided by the [PATH] argument. gvfsd-fuse is normally started by gvfsd.
gvfsd-metadatagvfsd-metadata is a daemon acting as a write serialiser to the internal gvfs metadata storage. It is autostarted byGIO clients when they make metadata changes. Read operations are done by client-side GIO code directly, and don't require the daemon to be running. The gvfs metadata capabilities are used by theGNOME Files file manager, for example.
Volume monitors
gvfs-goa-volume-monitorsupport forGNOME Online Accounts (cf.GNOME Online Accounts in the GNOME wiki)
gvfs-gphoto2-volume-monitorsupport for thePicture Transfer Protocol as implemented ingPhoto
gvfs-mtp-volume-monitorsupport for theMedia Transfer Protocol
gvfs-udisks2-volume-monitorThe gvfs-udisks2-volume-monitor process is responsible for the disks, media, mounts andfstab entries shown in the desktop user interface. In particular,GNOME Shell,GNOME Files as well as any other application using the GLib APIs, is using information from this process.[5] In Debian it is distributed as part of the gvfs-daemons package.[10] It is not to be confused with udisksd and udisksctl, which are part of the udisks2 package.[11]
udisks: The udisks daemon serves as an interface to system block devices, implemented viaD-Bus. It handles operations such as querying, mounting, unmounting, formatting, or detaching storage devices such as hard disks or USB thumb drives.
gvfs-afc-volume-monitorsupport forApple File Conduit
Mount back-ends
gvfsd-afcmounts iPhone/iPod touch volumes
gvfsd-afpmountsApple Filing Protocol volumes
gvfsd-afp-browsebrowses Apple Filing Protocol volumes
gvfsd-archivemounts archive files in various formats
gvfsd-burnprovides a location for burning CDs/optical discs
gvfsd-cddamounts audio CDs
gvfsd-computerprovides computer://
gvfsd-davmounts DAV filesystems
gvfsd-dnssdbrowsesDNS-SD
gvfsd-ftpmounts over FTP
gvfsd-gphoto2mounts over PTP, meaning GVfs useslibgphoto2 to expose on-camera photos to GNOME applications via the VFS
gvfsd-httpmounts over HTTP
gvfsd-localtesta test backend
gvfsd-mtpmounts over MTP
gvfsd-networkprovides network://
gvfsd-nfsmounts overNFS protocol
gvfsd-recentprovides recent://
gvfsd-sftpmounts over sftp
gvfsd-smbmountsSMB (i.e. Windows Shares Filesystem) volumes
gvfsd-smb-browsebrowses Windows Shares Filesystem volumes
gvfsd-trashprovides trash://

Please refer tohttps://wiki.gnome.org/Projects/gvfs/backends for the official documentation.

Hot plugging

[edit]

Devices connected over eSATA or USB are (supposed to be) physicallyhot-pluggable. When a device is physically connected to or physically removed from the computer system, theLinux kernel notices and sends out an event to user-space.systemd-udevd receives such events and responds to them according to its quite comprehensive configuration:

  • manages the special file system devfs mounted to/dev, hence systemd-udevd dynamically creates and removes device nodes from /dev, it also loads drivers as necessary at boot time
  • in case of a block device systemd-udevd notifiesudisksd, andgvfsd andgvfs-udisks2-volume-monitor.[12]

The udisks2 daemonudisksd serves as an interface to system block devices, implemented via D-Bus. It handles operations such as querying, mounting, unmounting, formatting, or detaching storage devices such as hard disks or USB thumb drives. This package also provides theudisksctl utility, which can be used to trigger these operations from the command line (if permitted byPolicyKit).

Packaging

[edit]

InDebian the GVfs ispackaged into four packages:gvfs,gvfs-daemons,gvfs-bin andgvfs-backends.

See also

[edit]
  • GNOME Files, the file manager forGNOME desktops, allows users to interact with GVfs filesystems
  • Thunar, the file manager for the Xfce desktop environment, also provides filesytem abstraction using the GVfs library
  • KIO, a similar facility forKDE systems
  • Archivemount, a virtual filesystem implementation specifically for accessingarchive files

References

[edit]
  1. ^"Release 1.57.2". 14 February 2025. Retrieved20 February 2025.
  2. ^GNOME 2.22 Release Notes,6.1: GVfs and GIOArchived 2008-06-01 at theWayback Machine
  3. ^"gvfsd-fuse.1 - manned.org".manned.org. Retrieved18 April 2018.
  4. ^"Nautilus' remote folder default mount point".askubuntu.com. Retrieved18 April 2018.
  5. ^ab"udisks2/what-is-shown.txt". 5 December 2012..
  6. ^"Plans for gnome-vfs replacement".mail.gnome.org. Retrieved18 April 2018.
  7. ^"gvfs status report".mail.gnome.org. Retrieved18 April 2018.
  8. ^"Using GNOMEvfs to manipulate files", Linux.com
  9. ^"OpenSolaris 2009.06 - man page for gvfs-mount (opensolaris section 1) - Unix & Linux Commands".www.unix.com. Retrieved18 April 2018.
  10. ^"filelist of gvfs-daemons package".
  11. ^"filelist of udisks2 package".
  12. ^David Zeuthen (2014-05-28)."Modern Mounting with Udisks2".

External links

[edit]
Core Applications
Extras
Development
Office
Graphics
Internet
Media
Games
Utilities
Components
User interface
GNOME 40
  • Mutter on GSK
GNOME 3
GNOME 2
Other
GNOME Base
Other
freedesktop.org
Community
People
Retrieved from "https://en.wikipedia.org/w/index.php?title=GVfs&oldid=1258614889"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2025 Movatter.jp