GVfs

Программное обеспечение виртуальной файловой системы пользовательского пространства для среды рабочего стола GNOME
GVfs
Стабильный релиз
1.56.1 [1]  / 18 октября 2024 г.
Репозиторий
  • gitlab.gnome.org/GNOME/gvfs.git
Операционная системаЛинукс
ПлатформаГНОМ
Типуровень абстракции для файловой системы
ЛицензияLGPL-2.0 или более поздняя версия
Веб-сайтgitlab.gnome.org/GNOME/gvfs 

GVfs (аббревиатура от GNOME virtual file system ) — это виртуальная файловая система пользовательского пространства GNOME, разработанная для работы с абстракцией ввода-вывода GIO , библиотеки, доступной в GLib с версии 2.15.1. Она устанавливает несколько модулей, которые автоматически используются приложениями, использующими API libgio. Также имеется поддержка FUSE , которая позволяет приложениям, не использующим GIO, получать доступ к файловым системам GVfs.

Причиной путаницы является тот факт, что абстракция файловой системы , используемая ядром Linux, также называется слоем виртуальной файловой системы (VFS). Однако это более низкий уровень.

Модель GVfs отличается от, например, GnomeVFS , которую она заменяет, тем, что файловые системы должны быть смонтированы перед использованием. Существует главный демон ( gvfsd), который обрабатывает координирующие монтирования, а затем каждое монтирование (обычно) находится в своем собственном процессе демона (хотя монтирования могут совместно использовать процесс демона).

GVfs поставляется с набором внутренних функций, включая поддержку корзины, SFTP , FTP , WebDAV , SMB и локальных данных через интеграцию Udev , OBEX , MTP и другие. [2] GVfs, похоже, не поддерживает протокол передачи файлов по оболочке (FISH).

GVfs также содержит модули для GIO , которые реализуют мониторы громкости и конфигурацию обработчика схемы URI GNOME.

Существует набор аргументов для программы командной строки «gio», который позволяет запускать команды (например, cat, ls, stat, mount и т. д.) для файлов в смонтированных папках GVfs.

Прикрепленные ресурсы предоставляются через синтаксис URI , например smb://server01/gamedata или ftp://username:password@ftp.example.net/public_html, но также монтируются традиционным способом в каталоге или ~/.gvfs/[ 3] [4], чтобы сделать их доступными для приложений, использующих стандартные команды POSIX и ввод-вывод./run/user/$UID/gvfs$XDG_RUNTIME_DIR/gvfs

Технические подробности

Параметр x-gvfs-showдля процесса gvfs-udisks2-volume-monitor определяет, будет ли отображаться смонтированное устройство [5] в файлах GNOME . Снимок экрана дисков GNOME .

Наряду с полезными API, такими как поддержка сетей и D-Bus, GIO также предоставляет приложениям API VFS. GVfs предоставляет реализации, которые выходят за рамки этого и позволяют получать доступ к файлам и хранилищам с использованием многих протоколов. GVfs предоставляет реализации для различных сетевых файловых систем в качестве загружаемых модулей. Кроме того, GVfs также предоставляет поддержку для корзины, сетевых или недавних папок, для записи компакт-дисков и для мониторинга интересных устройств и томов на компьютере.

Целью GVfs было преодоление недостатков GnomeVFS [6] и предоставление API, которое настолько хорошо, что разработчики предпочитают его сырым вызовам POSIX. Среди прочего, это означает использование GObject. Это также означает не клонирование API POSIX, а предоставление интерфейсов более высокого уровня, ориентированных на документы. GTK может использовать его напрямую, например, в filechooser.

Приложения используют GVfs косвенно, посредством GIO, загружающего модуль GVfs, который реализует точки расширения GIO. Основной демон GVfs gvfsd порождает дополнительные демоны монтирования для каждого отдельного соединения. Поддержка GVfs для мониторинга томов включена в отдельный загружаемый модуль.

Фактическая реализация GVfs распределена по ряду процессов.

GVfs может использовать FUSE для монтирования своего VFS непосредственно в файловую систему. [7] Он состоит из двух частей: [8]

  1. общая библиотека, которая загружается приложениями, поддерживающими GIO
  2. Сам GVfs, содержащий набор демонов , которые взаимодействуют друг с другом и с модулем GIO через D-Bus .

Набор утилит командной строки (таких как gvfs-mount, gvfs-less) работает с ресурсами VFS. [9]

  • https://developer.gnome.org/gio/stable/ch01.html#gvfs-overview
Демонзадача
Основной
гвфсдgvfsd — это главный демон GVfs. Он предоставляет имя "org.gtk.vfs.Daemon" на шине сеанса. gvfsd автоматически запускается клиентами GIO, если он не запущен. Основная задача gvfsd — выступать в качестве трекера/менеджера монтирования. Он создает новые бэкэнды по запросу и отслеживает их жизненный цикл, поддерживая список активных монтирований и создавая прямые подключения к ним. gvfsd также запускает gvfsd-fuse(1) и предоставляет ему точку монтирования, в которой должна быть смонтирована файловая система fuse.
gvfsd-предохранительgvfsd-fuse поддерживает монтирование FUSE ( Filesystem in Userspace ), чтобы сделать бэкэнды GVfs доступными для приложений POSIX. Точка монтирования для файловой системы fuse предоставляется аргументом [PATH]. gvfsd-fuse обычно запускается gvfsd.
gvfsd-метаданныеgvfsd-metadata — это демон, действующий как сериализатор записи во внутреннее хранилище метаданных gvfs. Он автоматически запускается клиентами GIO при внесении изменений в метаданные. Операции чтения выполняются непосредственно клиентским кодом GIO и не требуют запуска демона. Возможности метаданных gvfs используются , например, файловым менеджером GNOME Files .
Мониторы громкости
gvfs-goa-громкость-мониторподдержка учетных записей GNOME Online (см. GNOME Online Accounts в GNOME wiki)
gvfs-gphoto2-громкость-мониторподдержка протокола передачи изображений , реализованного в gPhoto
gvfs-mtp-громкость-мониторподдержка протокола передачи мультимедиа
gvfs-udisks2-volume-monitorПроцесс gvfs-udisks2-volume-monitor отвечает за диски, носители, монтирования и записи fstab , отображаемые в пользовательском интерфейсе рабочего стола. В частности, GNOME Shell , GNOME Files , а также любое другое приложение, использующее API GLib, используют информацию из этого процесса. [5] В Debian он распространяется как часть пакета gvfs-daemons. [10] Его не следует путать с udisksd и udisksctl, которые являются частью пакета udisks2. [11]
udisks : демон udisks служит интерфейсом для системных блочных устройств, реализованным через D-Bus . Он обрабатывает такие операции, как запросы, монтирование, размонтирование, форматирование или отсоединение устройств хранения, таких как жесткие диски или USB-накопители.
gvfs-afc-громкость-мониторподдержка Apple File Conduit
Смонтировать бэкэнды
gvfsd-afcмонтирует громкость iPhone/iPod touch
gvfsd-afpмонтирует тома Apple Filing Protocol
gvfsd-afp-обзорпросматривает тома Apple Filing Protocol
gvfsd-архивмонтирует архивные файлы в различных форматах
gvfsd-горетьпредоставляет место для записи компакт-дисков/ оптических дисков
gvfsd-cddaмонтирует аудио компакт-диски
gvfsd-компьютерпредоставляет компьютер://
gvfsd-davмонтирует файловые системы DAV
gvfsd-dnssdпросматривает DNS-SD
gvfsd-ftpмонтируется через FTP
gvfsd-gphoto2монтируется через PTP, то есть GVfs использует libgphoto2 для предоставления фотографий с камеры приложениям GNOME через VFS
gvfsd-httpмонтируется через HTTP
gvfsd-локальныйтесттестовый бэкэнд
gvfsd-mtpмонтируется через MTP
gvfsd-сетьпредоставляет сеть://
gvfsd-nfsмонтируется по протоколу NFS
gvfsd-недавнийпредоставляет недавние://
gvfsd-sftpмонтируется через sftp
gvfsd-smbмонтирует тома SMB (т.е. файловую систему Windows Shares)
gvfsd-smb-обзорпросматривает тома файловой системы Windows Shares
gvfsd-мусорпредоставляет мусор://

Официальную документацию можно найти по адресу https://wiki.gnome.org/Projects/gvfs/backends.

Горячее подключение

Устройства, подключенные через eSATA или USB, (должны быть) физически подключаемыми в горячем режиме . Когда устройство физически подключается или физически удаляется из компьютерной системы, ядро ​​Linux замечает это и отправляет событие в пространство пользователя. systemd-udevdполучает такие события и реагирует на них в соответствии со своей довольно полной конфигурацией:

  • управляет специальной файловой системой devfs, смонтированной в нее /dev, поэтому systemd-udevd динамически создает и удаляет узлы устройств из /dev, а также загружает драйверы по мере необходимости во время загрузки
  • в случае блочного устройства systemd-udevd уведомляет udisksd, и gvfsdи gvfs-udisks2-volume-monitor. [12]

Демон udisks2 udisksdслужит интерфейсом для системных блочных устройств, реализованных через D-Bus. Он обрабатывает такие операции, как запросы, монтирование, размонтирование, форматирование или отсоединение устройств хранения, таких как жесткие диски или USB-флешки. Этот пакет также предоставляет утилиту udisksctl, которую можно использовать для запуска этих операций из командной строки (если это разрешено PolicyKit ).

Упаковка

В Debian GVfs упакован в четыре пакета: gvfs, gvfs-daemons, gvfs-bin и gvfs-backends.

Смотрите также

  • Файлы GNOME , файловый менеджер для рабочих столов GNOME , позволяет пользователям взаимодействовать с файловыми системами GVfs.
  • Thunar , файловый менеджер для среды рабочего стола Xfce, также обеспечивает абстракцию файловой системы с помощью библиотеки GVfs.
  • KIO , аналогичный объект для систем KDE .
  • Archivemount — реализация виртуальной файловой системы, специально предназначенная для доступа к архивным файлам.

Ссылки

  1. ^ "Release 1.56.1". 18 октября 2024 г. Получено 21 октября 2024 г.
  2. Заметки о выпуске GNOME 2.22, 6.1: GVfs и GIO. Архивировано 01.06.2008 на Wayback Machine.
  3. ^ "gvfsd-fuse.1 - manned.org". manned.org . Получено 18 апреля 2018 г. .
  4. ^ "Точка монтирования удаленной папки Nautilus по умолчанию". askubuntu.com . Получено 18 апреля 2018 г. .
  5. ^ ab "udisks2/what-is-shown.txt". 5 декабря 2012 г..
  6. ^ "Планы замены gnome-vfs". mail.gnome.org . Получено 18 апреля 2018 г. .
  7. ^ "отчет о состоянии gvfs". mail.gnome.org . Получено 18 апреля 2018 г. .
  8. ^ «Использование GNOMEvfs для работы с файлами», Linux.com
  9. ^ "OpenSolaris 2009.06 - man-страница для gvfs-mount (opensolaris section 1) - Unix & Linux Commands". www.unix.com . Получено 18 апреля 2018 г. .
  10. ^ "список файлов пакета gvfs-daemons".
  11. ^ "список файлов пакета udisks2".
  12. ^ Дэвид Цойтен (28.05.2014). «Современное монтирование с помощью Udisks2».
  • Официальный сайт
Взято с "https://en.wikipedia.org/w/index.php?title=GVfs&oldid=1258614889"