GVfs - GVfs

GVfs
Стабильный выпуск
1.33.3[1] / 19 июля 2017 г.; 3 года назад (2017-07-19)
Репозиторий Отредактируйте это в Викиданных
Операционная системаLinux
ПлатформаГНОМ
Типслой абстракции для файловой системы
Интернет сайтвики.гном.org/ Проекты/ gvfs Отредактируйте это в Викиданных

GVfs (сокращение от Виртуальная файловая система GNOME) является ГНОМ пользовательское пространство виртуальная файловая система разработан для работы с абстракцией ввода-вывода GIO, библиотека доступна в GLib начиная с версии 2.15.1. Он устанавливает несколько модулей, которые автоматически используются приложениями, использующими API libgio. Существует также ПРЕДОХРАНИТЕЛЬ поддержка, которая позволяет приложениям, не использующим GIO, получать доступ к файловым системам GVfs.

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

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

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

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

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

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

Технические детали

Опция x-gvfs-show для процесса gvfs-udisks2-volume-monitor определяет, отображается ли смонтированное устройство или нет[5] в Файлы GNOME. Скриншот Диски GNOME.

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

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

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

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

GVfs могут использовать ПРЕДОХРАНИТЕЛЬ чтобы смонтировать свою VFS непосредственно в файловую систему.[7] Он состоит из двух частей:[8]

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

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

Демонзадача
Главный
gvfsdgvfsd - главный демон GVfs. Он обеспечивает "org.gtk.vfs.Daemon" имя на шине сеанса. gvfsd автоматически запускается клиентами GIO, если он не запущен. Основная задача gvfsd - действовать как трекер / менеджер монтирования. Он порождает новые серверы по запросу и отслеживает их жизненный цикл, поддерживая список активных подключений и создает прямые подключения к ним. gvfsd также запускает gvfsd-fuse (1) и предоставляет ему точку монтирования, в которой должна быть смонтирована файловая система fuse.
gvfsd-предохранительgvfsd-fuse поддерживает FUSE (Файловая система в пространстве пользователя ) mount, чтобы сделать серверные части GVfs доступными для приложений POSIX. Точка монтирования для файловой системы fuse предоставляется аргументом [PATH]. gvfsd-fuse обычно запускается gvfsd.
gvfsd-метаданныеgvfsd-metadata - это демон, действующий как сериализатор записи во внутреннее хранилище метаданных gvfs. Это автозапускается GIO клиентов, когда они вносят изменения в метаданные. Операции чтения выполняются кодом GIO на стороне клиента напрямую и не требуют запуска демона. Возможности метаданных gvfs используются Файлы GNOME файловый менеджер, например.
Мониторы громкости
gvfs-гоа-объем-мониторПоддержка для Онлайн-аккаунты GNOME (ср. Учетные записи GNOME Online в вики GNOME )
gfvs-gphoto2-объем-мониторподдержка Протокол передачи изображений как реализовано в gPhoto
gvfs-mtp-объем-мониторподдержка Протокол передачи мультимедиа
gvfs-udisks2-объем-мониторПроцесс gvfs-udisks2-volume-monitor отвечает за диски, носители, монтирование и fstab записи, отображаемые в пользовательском интерфейсе рабочего стола. Особенно, Оболочка GNOME, Файлы GNOME как и любое другое приложение, использующее API GLib, использует информацию из этого процесса.[5] В Debian он распространяется как часть пакета gvfs-daemons.[10] Его не следует путать с udisksd и udisksctl, которые являются частью пакета udisks2.[11]
удиски: Демон udisks служит интерфейсом к системным блочным устройствам, реализованным через D-автобус. Он обрабатывает такие операции, как запросы, монтирование, размонтирование, форматирование или отключение запоминающих устройств, таких как жесткие диски или флэш-накопители USB.
gvfs-afc-volume-monitorПоддержка для Канал для файлов Apple
Смонтировать серверные части
gvfsd-afcмонтирует тома iPhone / iPod touch
gvfsd-afpгоры Протокол хранения Apple тома
gvfsd-afp-browseпросматривает тома Apple Filing Protocol
gvfsd-архивмонтирует архивные файлы в различных форматах
gvfsd-burnпредоставляет место для записи компакт-дисков /оптические диски
gvfsd-cddaмонтирует аудио компакт-диски
gvfsd-компьютерпредоставляет компьютер: //
gvfsd-davмонтирует файловые системы DAV
gvfsd-dnssdпросматривает DNS-SD
gvfsd-ftpмонтируется через FTP
gvfsd-gphoto2монтируется через PTP, что означает, что GVfs использует libgphoto2 показывать фотографии с камеры приложениям GNOME через VFS
gvfsd-httpмонтируется через HTTP
gvfsd-localtestтестовый бэкэнд
gvfsd-mtpмонтируется через MTP
gvfsd-сетьпредоставляет network: //
gvfsd-nfsподнимается над NFS протокол
gvfsd-недавнийпредоставляет недавние: //
gvfsd-sftpмонтируется над sftp
gvfsd-smbгоры SMB (например, файловая система Windows Shares) тома
gvfsd-smb-browseпросматривает тома файловой системы общих ресурсов Windows
gvfsd-trashпредоставляет мусор: //

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

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

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

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

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

Упаковка

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

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

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

Рекомендации

  1. ^ "GNOME git репозиторий GVfs".
  2. ^ Примечания к выпуску GNOME 2.22, 6.1: GVfs и GIO
  3. ^ "gvfsd-fuse.1 - manned.org". manned.org. Получено 18 апреля 2018.
  4. ^ "Точка монтирования удаленной папки Nautilus по умолчанию". askubuntu.com. Получено 18 апреля 2018.
  5. ^ а б "udisks2 / what-is-shown.txt"..
  6. ^ "Планы по замене gnome-vfs". mail.gnome.org. Получено 18 апреля 2018.
  7. ^ "отчет о состоянии gvfs". mail.gnome.org. Получено 18 апреля 2018.
  8. ^ «Использование GNOMEvfs для управления файлами», Linux.com
  9. ^ «OpenSolaris 2009.06 - страница руководства по gvfs-mount (раздел 1 opensolaris) - Команды Unix и Linux». www.unix.com. Получено 18 апреля 2018.
  10. ^ "список файлов пакета gvfs-daemons".
  11. ^ "список файлов пакета udisks2".
  12. ^ Дэвид Цойтен (28 мая 2014 г.). «Современный монтаж с Udisks2».

внешняя ссылка