Стабильный выпуск | 1.33.3 / 19 июля, 2017; 3 года назад (19.07.2017) |
---|---|
Репозиторий | |
Операционная система | Linux |
Платформа | GNOME |
Тип | уровень абстракции для файловой системы |
Веб-сайт | wiki.gnome.org / Projects / gvfs |
GVfs (сокращение от Виртуальная файловая система GNOME ) - это пользовательское пространство GNOME виртуальная файловая система, предназначенная для работы с I / O абстракция GIO, библиотеки, доступной в GLib, начиная с версии 2.15.1. Он устанавливает несколько модулей, которые автоматически используются приложениями, использующими API libgio. Также имеется поддержка FUSE, которая позволяет приложениям, не использующим GIO, обращаться к файловым системам GVfs.
Причиной путаницы является тот факт, что абстракция файловой системы, используемая ядром Linux, также называется виртуальной файловой системой (VFS) слой. Однако это на более низком уровне.
Модель GVfs отличается от, например, GnomeVFS, который он заменяет, в этих файловых системах должен быть смонтирован перед их использованием. Существует главный демон (gvfsd
), который обрабатывает координирующие монтирования, а затем каждое монтирование (обычно) находится в своем собственном процессе демона (хотя монтирования могут совместно использовать процесс демона).
GVfs поставляется с набором внутренних компонентов, включая поддержку мусора, SFTP, FTP, WebDAV, SMB и локальные данные через интеграцию Udev, OBEX, MTP и другие. GVfs, похоже, не поддерживает файлы , передаваемые по протоколу оболочки (FISH).
GVfs также содержит модули для GIO, которые реализуют мониторы тома и конфигурацию обработчика схемы URI GNOME.
В программе командной строки "gio" есть набор аргументов, позволяющий запускать команды (например, cat, ls, stat, mount и т. Д.) Для файлов в монтируемых GVfs.
Присоединенные ресурсы отображаются через синтаксис URI, например smb: // server01 / gamedata или ftp: // username: [email#160;protected] /public_html, но также смонтирован традиционным способом в ~ /.gvfs /
или / run / user / $ UID / gvfs
или $ XDG_RUNTIME_DIR / gvfs
каталог, чтобы сделать их доступными для приложений, использующих стандартные команды POSIX и ввод-вывод.
x-gvfs-show
для процесса gvfs-udisks2-volume-monitor определяет, отображается ли подключенное устройство в файлах GNOME. Снимок экрана дисков GNOME.Наряду с общедоступными API-интерфейсами, такими как поддержка сети и D-Bus, GIO также предоставляет приложениям API-интерфейс VFS. GVfs предоставляет реализации, которые выходят за рамки этого и позволяют получать доступ к файлам и хранилищам с использованием множества протоколов. GVfs предоставляет реализации для различных сетевых файловых систем в виде загружаемых модулей. Кроме того, GVfs также обеспечивает поддержку корзины, сетевых или недавних папок, для записи компакт-дисков и для мониторинга интересных устройств и томов на компьютере.
Целью GVfs было преодолеть недостатки GnomeVFS и предоставить API, который настолько хорош, что разработчики предпочитают его необработанным вызовам POSIX. Среди прочего это означает использование GObject. Это также означает не клонирование POSIX API, а предоставление высокоуровневых интерфейсов, ориентированных на документы. GTK + может использовать его напрямую, например в Filechooser.
Приложения используют GVfs косвенно, посредством GIO, загружающего модуль GVfs, реализующий точки расширения GIO. Главный демон GVfs gvfsd порождает дополнительные демоны монтирования для каждого отдельного соединения. Поддержка GVfs для мониторинга объема включена в отдельный загружаемый модуль.
Фактическая реализация GVfs распределена по ряду процессов.
GVfs может использовать FUSE для монтирования своей VFS непосредственно в файловую систему. Он состоит из двух частей:
Набор утилит командной строки (таких как gvfs-mount, gvfs-less) работает с ресурсами VFS.
Демон | задача |
---|---|
Main | |
gvfsd | gvfsd - это главный демон GVfs. Он предоставляет имя "org.gtk.vfs.Daemon" на шине сеанса. gvfsd автоматически запускается клиентами GIO, если он не запущен. Основная задача gvfsd - действовать как трекер / менеджер монтирования. Он порождает новые серверы по запросу и отслеживает их жизненный цикл, поддерживая список активных подключений и создает прямые подключения к ним. gvfsd также запускает gvfsd-fuse (1) и предоставляет ему точку монтирования, в которой должна быть смонтирована файловая система fuse. |
gvfsd-fuse | gvfsd-fuse поддерживает монтирование FUSE (Filesystem in Userspace ), чтобы сделать серверные части GVfs доступными для приложений POSIX. Точка монтирования для файловой системы fuse предоставляется аргументом [PATH]. gvfsd-fuse обычно запускается gvfsd. |
gvfsd-metadata | gvfsd-metadata - это демон, действующий как сериализатор записи во внутреннее хранилище метаданных gvfs. Он автоматически запускается клиентами GIO, когда они вносят изменения в метаданные. Операции чтения выполняются клиентским кодом GIO напрямую и не требуют запуска демона. Возможности метаданных gvfs используются, например, файловым менеджером GNOME Files. |
Мониторы громкости | |
gvfs-goa-volume-monitor | поддержка (см. учетных записей GNOME Online в вики GNOME ) |
gfvs-gphoto2-volume-monitor | поддержка протокола передачи изображений, как реализовано в gPhoto |
gvfs-mtp-volume-monitor | поддержка Media Transfer Protocol |
gvfs -udisks2-volume-monitor | Процесс gvfs-udisks2-volume-monitor отвечает за диски, носители, подключения и записи fstab, отображаемые в пользовательском интерфейсе рабочего стола. В частности, Оболочка GNOME, Файлы GNOME, а также любое другое приложение, использующее API GLib, используют информацию из этого процесса. В Debian она распространяется как часть пакета gvfs-daemons. не путать с udisksd и udisksctl, которые являются частью пакета udisks2.. udisks : Демон udisks служит интерфейсом для системных блочных устройств, реализуемых через D-Bus. Он обрабатывает такие операции, как запросы, монтирование, размонтирование, форматирование и т. Д. протравливание запоминающих устройств, таких как жесткие диски или флэш-накопители USB. |
gvfs-afc-volume-monitor | поддержка |
Mount back-end | |
gvfsd-afc | монтирует тома iPhone / iPod touch |
gvfsd-afp | монтирует тома Apple Filing Protocol |
gvfsd-afp-browse | просматривает тома Apple Filing Protocol |
gvfsd-archive | монтирует архивные файлы в различных форматах |
gvfsd-burn | обеспечивает место для записи компакт-дисков / оптических дисков |
gvfsd-cdda | монтирует аудио компакт-диски |
gvfsd-computer | предоставляет компьютер: // |
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-recent | предоставляет последние: / / |
gvfsd-sftp | монтирует поверх sftp |
gvfsd-smb | монтирует SMB (т.е. Общая файловая система Windows) тома |
gvfsd-smb-browse | просматривает тома файловой системы общих ресурсов Windows |
gvfsd-trash | предоставляет корзину: // |
См. https://wiki.gnome.org/Projects/gvfs/backends для официальной документации.
Устройства, подключенные через eSATA или USB, физически (должны быть) с возможностью горячего подключения. Когда устройство физически подключено к компьютерной системе или физически удалено из нее, ядро Linux замечает и отправляет событие в пользовательское пространство. systemd-udevd
получает такие события и реагирует на них в соответствии со своей достаточно полной конфигурацией:
/ dev
, следовательно, systemd-udevd динамически создает и удаляет узлы устройств из / dev, а также загружает драйверы по мере необходимости во время загрузкиudisksd
и gvfsd
и gvfs-udisks2-volume-monitor
.Демон udisks2 udisksd
служит интерфейсом для системных блочных устройств, реализованных через D-Bus. Он обрабатывает такие операции, как запросы, монтирование, размонтирование, форматирование или отключение запоминающих устройств, таких как жесткие диски или флэш-накопители USB. Этот пакет также предоставляет утилиту udisksctl
, которую можно использовать для запуска этих операций из командной строки (если это разрешено PolicyKit).
В Debian GVfs упакованы в четыре пакета: gvfs, gvfs-daemons, gvfs-bin и gvfs-backends.