Файловая система в пространстве пользователя
Эта статья нуждается в дополнительных цитатах для проверки . ( январь 2024 г. ) |
Стабильная версия | 3.16.2 [ 1 ] ![]() |
---|---|
Репозиторий | |
Написано в | С |
Операционная система | Unix , Unix-подобный |
Тип | файловой системы Драйвер |
Лицензия | GPL для части ядра Linux, LGPL для Libfuse, Simplified BSD для FreeBSD, лицензия ISC для OpenBSD; проприетарный для macOS |
Веб-сайт | github |
Файловая система в пространстве пользователя ( FUSE ) — это программный интерфейс для Unix и Unix-подобных компьютерных операционных систем , который позволяет непривилегированным пользователям создавать свои собственные файловые системы без редактирования кода ядра . Это достигается за счет запуска кода файловой системы в пользовательском пространстве , в то время как модуль FUSE обеспечивает лишь мост к реальным интерфейсам ядра.
FUSE доступен для Linux , FreeBSD , OpenBSD , NetBSD (в виде затяжек ), OpenSolaris , Minix 3 , macOS , [ 2 ] и Windows . [ 3 ]
FUSE — это бесплатное программное обеспечение, первоначально выпущенное на условиях GNU General Public License и GNU Lesser General Public License .
История
[ редактировать ]Система FUSE изначально была частью AVFS ( виртуальной файловой системы ), реализации файловой системы, на которую сильно повлияла концепция транслятора GNU Hurd . [ 4 ] Он заменил Linux Userland Filesystem и предоставил интерфейс перевода с использованием lufis
в libfuse1.
Первоначально FUSE был выпущен на условиях GNU General Public License и GNU Lesser General Public License , позже также переопределен как часть FreeBSD. базовой системы [ 5 ] и выпущен на условиях упрощенной лицензии BSD . Повторная ISC , была выпущена в марте 2013 года. реализация Сильвестра Галлона, лицензированная [ 6 ] и включен в OpenBSD в июне 2013 года. [ 7 ]
FUSE был объединен с основным деревом ядра Linux в версии ядра 2.6.14. [ 8 ]
Пользовательское пространство FUSE, libfuse , как правило, следовала темпам разработки ядра Linux, сохраняя при этом «максимальную» совместимость с потомками BSD. Это возможно, поскольку ядро FUSE сообщает о своих собственных «уровнях функций» или версиях. Исключением является форк FUSE для macOS, OSXFUSE, который имеет слишком много различий для совместного использования библиотеки. [ 9 ] Прорывом в истории libfuse является libfuse3, который включает некоторые несовместимые улучшения в интерфейсе и производительности по сравнению со старой версией libfuse2, которая сейчас находится в режиме обслуживания. [ 10 ]
Поскольку протокол пользовательского пространства ядра FUSE имеет версии и является общедоступным, программист может использовать другой фрагмент кода вместо libfuse и по-прежнему взаимодействовать с возможностями ядра FUSE. С другой стороны, libfuse и его многочисленные порты предоставляют портативный интерфейс высокого уровня, который может быть реализован в системе без средства «FUSE».
Эксплуатация и использование
[ редактировать ]
Для реализации новой файловой системы требуется программа-обработчик, связанная с поставляемым файлом. libfuse
библиотеку нужно написать. Основная цель этой программы — указать, как файловая система должна реагировать на запросы чтения/записи/статистики. Программа также используется для монтирования новой файловой системы. Во время монтирования файловой системы обработчик регистрируется в ядре. Если теперь пользователь отправляет запросы на чтение/запись/статистику для этой вновь смонтированной файловой системы, ядро перенаправляет эти запросы ввода-вывода обработчику, а затем отправляет ответ обработчика обратно пользователю.

fusermount
команда FUSE особенно полезен для написания виртуальных файловых систем . В отличие от традиционных файловых систем, которые по существу работают с данными на запоминающих устройствах, виртуальные файловые системы фактически не хранят данные сами по себе. Они действуют как просмотр или перевод существующей файловой системы или устройства хранения.
В принципе, любой ресурс, доступный реализации FUSE, можно экспортировать как файловую систему.
Приложения
[ редактировать ]Файловые системы на диске
[ редактировать ]Обычные файловые системы на диске могут быть реализованы в пользовательском пространстве с помощью FUSE, например, по соображениям совместимости или лицензирования.
- Линейная ленточная файловая система : обеспечивает доступ к файлам, хранящимся на магнитной ленте, аналогично файлам на дисках или съемных флэш-накопителях.
- NTFS-3G и Captive NTFS , обеспечивающие доступ к файловым системам NTFS .
- Retro-Fuse : Retro-Fuse — это файловая система пользовательского пространства, которая позволяет монтировать файловые системы, созданные древними системами Unix, в современных операционных системах. Текущая версия Retro-Fuse поддерживает монтирование файловых систем, созданных пятым, шестым и седьмым изданием Research Unix от Bell Labs , а также систем на базе 2.9BSD и 2.11BSD.
Многоуровневые файловые системы
[ редактировать ]Файловые системы FUSE могут создавать представление базовой файловой системы, каким-то образом преобразуя файлы.
- EncFS : зашифрованная виртуальная файловая система.
- FuseCompress, gzipfs, Fuse-ZIP, CompFUSEd: сжатые виртуальные файловые системы.
- Архивные файловые системы также могут выполнять эту задачу.
Файловые системы архивирования и резервного копирования
[ редактировать ]Файловые системы FUSE могут предоставлять доступ к содержимому архивов или наборов резервных копий без необходимости их предварительного извлечения.
- монтировать в архив
- Atlas (программное обеспечение для резервного копирования Rubrik) : неизменяемая распределенная файловая система, используемая приложениями защиты данных Rubrik Cloud Data Management.
- Borg (программное обеспечение резервного копирования) : программа дедупликации резервного копирования, которая позволяет монтировать архивы резервных копий как файловые системы FUSE.
- Restic : Бесплатное, быстрое, эффективное и безопасное программное обеспечение для резервного копирования использует FUSE, чтобы иметь возможность просматривать все ваши снимки резервных копий как обычную файловую систему.
- SPFS Файловая система для Spectrum Protect, предназначенная для монтирования файлового пространства сервера резервного копирования в любом месте вашего сервера и использования функций, включенных в сервер резервного копирования (шифрование, дедупликация, сжатие, фильтрация и т. д.). Это файловая система WORM .
Клиенты удаленной/распределенной файловой системы
[ редактировать ]- CernVM-FS : распределенная система распространения программного обеспечения только для чтения, реализованная как файловая система POSIX в пользовательском пространстве (FUSE) с использованием транспорта HTTP, для быстрой и надежной доставки программного обеспечения в глобальном масштабе.
- CloudStore (ранее файловая система Kosmos): при монтировании через FUSE существующие утилиты Linux могут взаимодействовать с CloudStore.
- ExpanDrive : коммерческая файловая система, реализующая SFTP/FTP/S3/Swift с использованием FUSE.
- FTPFS
- GlusterFS : кластеризованная распределенная файловая система, способная масштабироваться до нескольких петабайт.
- goofys : файловая система FUSE, которая обеспечивает доступ к хранилищу Amazon S3/Microsoft Azure с упором на производительность.
- google-drive-ocamlfuse — это файловая система FUSE для Google Диска, написанная на OCaml. Он позволяет вам подключить Google Диск в Linux.
- IPFS : одноранговая распределенная файловая система, которая стремится соединить все вычислительные устройства с одной и той же системой файлов.
- JuiceFS : распределенная файловая система POSIX, построенная на основе Redis и S3.
- KBFS : распределенная файловая система со сквозным шифрованием и глобальным пространством имен на основе службы Keybase.io , которая использует FUSE для создания криптографически безопасного монтирования файлов.
- Файловая система Lustre Cluster будет использовать FUSE, чтобы позволить ей работать в пользовательском пространстве, так что возможен порт FreeBSD. [ 11 ] Однако порт Lustre для ZFS -Linux будет использовать DMU (модуль управления данными) ZFS в пользовательском пространстве. [ 12 ]
- MinFS : MinFS — это драйвер предохранителя для сервера объектного хранилища, совместимого с Amazon S3. МинФС [ 13 ] позволяет смонтировать удаленную корзину (из хранилища объектов, совместимого с S3), как если бы это был локальный каталог.
- MooseFS : распределенная отказоустойчивая файловая система с открытым исходным кодом, доступная в каждой ОС с реализацией FUSE (Linux, FreeBSD, NetBSD, OpenSolaris, OS X), способная хранить петабайты данных, распределенных по нескольким серверам, видимым как один ресурс.
- Nexfs : коммерческая файловая система Linux, которая объединяет облачное и объектное хранилище, совместимое с блоками, файлами и S3, в единый пул хранилища, совместимого с POSIX.
- ObjectiveFS : распределенная файловая система с серверной частью хранилища объектов (Amazon S3, Google Cloud Storage или хранилище объектов, совместимое с S3) с использованием FUSE.
- Rclone может монтировать различные удаленные/облачные хранилища с помощью FUSE.
- s3fs : дает возможность монтировать корзину S3 , как если бы это была локальная файловая система.
- Секторная файловая система : Сектор — это распределенная файловая система, предназначенная для большого количества обычных компьютеров. Сектор использует FUSE для обеспечения монтируемого интерфейса локальной файловой системы.
- SSHFS : Обеспечивает доступ к удаленной файловой системе через SSH .
- Transmit: коммерческий FTP-клиент, который также добавляет возможность монтировать серверы WebDAV, SFTP, FTP и Amazon S3 в качестве дисков в Finder через MacFUSE.
- WebDrive : коммерческая файловая система, реализующая WebDAV , SFTP, FTP, FTPS и Amazon S3.
- WikipediaFS : просмотр и редактирование статей Википедии, как если бы они были реальными файлами.
- Wuala : была многоплатформенной, полностью интегрированной в ОС распределенной файловой системой на базе Java. Использование FUSE, MacFUSE и CBFS Connect соответственно для интеграции файловой системы в дополнение к приложению на основе Java, доступному из любого веб-браузера с поддержкой Java (услуга прекращена в 2015 году).
- IndexFS : удаленная файловая система агрегирования файлов с прозрачным доступом CURL к распределенным файлам.
Другой
[ редактировать ]- GVfs : виртуальная файловая система для рабочего стола GNOME.
- rvault : безопасное и аутентифицированное хранилище секретов и небольших документов с использованием шифрования конвертов и аутентификации по одноразовому паролю (OTP). Он использует FUSE, чтобы представить хранилище как файловую систему.
См. также
[ редактировать ]- PUFFS , аналогичный фреймворк с совместимостью с FUSE.
- 9П (протокол)
- Устанавливаемая файловая система
- Библиотека Dokan FUSE Совместимость с Windows
- Проецируемая файловая система Windows (ProjFS)
Ссылки
[ редактировать ]- ^ «Выпуск 3.16.2» . 10 октября 2023 г. Проверено 19 октября 2023 г.
- ^ «Главная — FUSE для OS X» .
- ^ Зиссимопулос, Билл (14 февраля 2021 г.), billziss-gh/winfsp , получено 16 февраля 2021 г.
- ^ «Некоторые технические преимущества Херда» . 15 мая 2011 года . Проверено 28 марта 2016 г.
- ^ «WhatsNew/FreeBSD10 — FreeBSD Wiki» .
- ^ «openbsd dev-tech — поддержка Fuse (и sshfs) для OpenBSD» . Архивировано из оригинала 26 октября 2020 г. Проверено 14 июля 2013 г.
- ^ " 'CVS: cvs.openbsd.org: src' - MARC" .
- ^ «file-systems.fuse.devel — FUSE объединен с версией 2.6.14! — msg#00021 — Недавнее обсуждение OSDir.com» . Архивировано из оригинала 20 апреля 2016 г.
- ^ «libfuse/libfuse, эталонная реализация интерфейса Linux FUSE (файловая система в пользовательском пространстве)» . libfuse. 9 января 2020 г. Проверено 9 января 2020 г.
- ^ «Журнал изменений libfuse3» . Гитхаб . Проверено 9 января 2020 г.
- ^ «Блеск FreeBSD» . Архивировано из оригинала 12 марта 2008 г. Проверено 2 марта 2008 г.
- ^ «Архитектура ZFS для Lustre» . Сан Микросистемс. Архивировано из оригинала 22 января 2009 г. Проверено 2 марта 2008 г.
- ^ "минио/минфс" . Гитхаб . Проверено 12 апреля 2018 г.
Внешние ссылки
[ редактировать ]- Официальный сайт
- Разработайте собственную файловую систему с помощью FUSE от Сумита Сингха.
- Список файловых систем FUSE
- Документация Documentation/filesystems/fuse.txt в дереве исходного кода Linux
- WinFSP , FUSE-подобная система для Windows (для Cygwin предусмотрен уровень совместимости FUSE)
- Crossmeta FUSE , порт FUSE для Windows (коммерческое программное обеспечение)