ГВфс
Стабильная версия | 1.55.1 [1] / 28 июня 2024 г. |
---|---|
Репозиторий | |
Операционная система | Линукс |
Платформа | ГНОМ |
Тип | уровень абстракции файловой системы |
Лицензия | LGPL-2.0 или более поздняя версия |
Веб-сайт | неделя |
GVfs (аббревиатура виртуальной файловой системы GNOME ) — это 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: [email protected] /public_html, но также монтируются традиционным способом в разделе ~/.gvfs/
или /run/user/$UID/gvfs
или $XDG_RUNTIME_DIR/gvfs
каталог [3] [4] чтобы сделать их доступными для приложений, использующих стандартные команды POSIX и ввод-вывод.
Технические детали
[ редактировать ]Наряду с общеполезными API, такими как поддержка сети и D-Bus, GIO также предоставляет приложениям API VFS. GVfs предоставляет реализации, которые выходят за рамки этого и позволяют получать доступ к файлам и хранилищу с использованием множества протоколов. GVfs предоставляет реализации различных сетевых файловых систем в виде загружаемых модулей. Кроме того, GVfs также обеспечивает поддержку корзины, сетевых или недавних папок, записи компакт-дисков и мониторинга интересных устройств и томов на компьютере.
Целью GVfs было преодоление недостатков GnomeVFS. [6] и предоставить API, который настолько хорош, что разработчики предпочитают его простым вызовам POSIX. Помимо прочего, это означает использование GObject. Это также означает не клонирование POSIX API, а предоставление интерфейсов более высокого уровня, ориентированных на документы. GTK может использовать его напрямую, например, в средстве выбора файлов.
Приложения используют GVfs косвенно, посредством GIO, загружающего модуль GVfs, реализующий точки расширения GIO. Главный демон GVfs gvfsd запускает дополнительные демоны монтирования для каждого отдельного соединения. Поддержка GVfs для мониторинга томов включена в отдельный загружаемый модуль.
Фактическая реализация GVfs распределена по ряду процессов.
GVfs может использовать FUSE для монтирования своей VFS непосредственно в файловую систему. [7] Он состоит из двух частей: [8]
- общая библиотека, загружаемая приложениями, поддерживающими GIO
- Сам GVfs, который содержит набор демонов , которые взаимодействуют друг с другом и модулем GIO через D-Bus .
С ресурсами VFS работает набор утилит командной строки (таких как gvfs-mount, gvfs-less). [9]
Демон | задача |
---|---|
Основной | |
гвфсд | gvfsd — главный демон GVfs. Он предоставляет имя «org.gtk.vfs.Daemon» на сеансовой шине. gvfsd автоматически запускается клиентами GIO, если он не запущен. Основная задача gvfsd — выполнять функции трекера/менеджера монтирования. Он порождает новые серверные части по запросу и отслеживает их жизненный цикл, поддерживает список активных подключений и создает прямые подключения к ним. gvfsd также запускает gvfsd-fuse(1) и предоставляет ему точку монтирования, в которой должна быть смонтирована файловая система Fuse. |
gvfsd-предохранитель | gvfsd-fuse поддерживает монтирование FUSE ( файловая система в пространстве пользователя ), чтобы сделать серверные части GVfs доступными для приложений POSIX. Точка монтирования файловой системы Fuse указывается аргументом [PATH]. gvfsd-fuse обычно запускается gvfsd. |
gvfsd-метаданные | gvfsd-metadata — это демон, действующий как сериализатор записи во внутреннее хранилище метаданных gvfs. Он автоматически запускается клиентами GIO , когда они вносят изменения в метаданные. Операции чтения выполняются непосредственно кодом GIO на стороне клиента и не требуют запуска демона. Возможности метаданных gvfs используются GNOME Files , например, файловым менеджером . |
Мониторы громкости | |
gvfs-гоа-объем-монитор | поддержка онлайн-аккаунтов GNOME (см. Онлайн-аккаунты GNOME в вики GNOME ) |
gvfs-gphoto2-объем-монитор | поддержка протокола передачи изображений , реализованного в gPhoto. |
gvfs-mtp-объем-монитор | поддержка протокола передачи мультимедиа |
gvfs-udisks2-объем-монитор | Процесс 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-volume-monitor | поддержка Apple File Conduit |
Монтировать серверные части | |
gvfsd-afc | монтирует тома iPhone/iPod Touch |
gvfsd-afp | монтирует Apple Filing Protocol тома |
gvfsd-afp-browse | просматривает тома Apple Filing Protocol |
gvfsd-архив | монтирует архивные файлы в различных форматах |
gvfsd-сжечь | предоставляет место для записи компакт-дисков/ оптических дисков |
gvfsd-cdda | монтирует аудио компакт-диски |
gvfsd-компьютер | предоставляет компьютер:// |
gvfsd-дав | монтирует файловые системы DAV |
gvfsd-dnssd | просматривает DNS-SD |
gvfsd-ftp | монтируется по FTP |
gvfsd-gphoto2 | монтируется через PTP, то есть GVfs использует libgphoto2 для предоставления фотографий с камеры приложениям GNOME через VFS. |
gvfsd-http | монтируется через HTTP |
gvfsd-localtest | тестовый бэкэнд |
gvfsd-MTP | монтируется поверх MTP |
gvfsd-сеть | предоставляет сеть:// |
gvfsd-nfs | монтируется по NFS протоколу |
gvfsd-недавний | предоставляет последние:// |
gvfsd-sftp | монтируется через sftp |
gvfsd-smb | монтирует тома SMB (т. е. файловой системы Windows Shares) |
gvfsd-smb-browse | просматривает тома файловой системы 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 Files , файловый менеджер для рабочих столов GNOME , позволяет пользователям взаимодействовать с файловыми системами GVfs.
- Thunar , файловый менеджер для среды рабочего стола Xfce, также обеспечивает абстракцию файловой системы с помощью библиотеки GVfs.
- KIO , аналогичный объект для KDE . систем
- Archivemount — реализация виртуальной файловой системы специально для доступа к архивным файлам.
Ссылки
[ редактировать ]- ^ «Выпуск 1.55.1» . 28 июня 2024 г. Проверено 23 июля 2024 г.
- ^ Примечания к выпуску GNOME 2.22, 6.1: GVfs и GIO
- ^ «gvfsd-fuse.1 — manned.org» . Manned.org . Проверено 18 апреля 2018 г.
- ^ «Точка монтирования удаленной папки Nautilus по умолчанию» . Askubuntu.com . Проверено 18 апреля 2018 г.
- ^ Jump up to: а б "udisks2/what-is-shown.txt" . .
- ^ «Планы по замене gnome-vfs» . mail.gnome.org . Проверено 18 апреля 2018 г.
- ^ «Отчет о состоянии gvfs» . mail.gnome.org . Проверено 18 апреля 2018 г.
- ^ «Использование GNOMEvfs для управления файлами» , Linux.com
- ^ «OpenSolaris 2009.06 — справочная страница для gvfs-mount (раздел 1 opensolaris) — Команды Unix и Linux» . www.unix.com . Проверено 18 апреля 2018 г.
- ^ «список файлов пакета gvfs-daemons» .
- ^ «список файлов пакета udisks2» .
- ^ Дэвид Цойтен (28 мая 2014 г.). «Современный монтаж с помощью Udisks2» .