Jump to content

Файловая система в пространстве пользователя

(Перенаправлено с FUSE (linux) )
Файловая система в пространстве пользователя
Стабильная версия
3.16.2 [ 1 ]  Отредактируйте это в Викиданных / 10 октября 2023 г .; 10 месяцев назад ( 10 октября 2023 г. )
Репозиторий
Написано в С
Операционная система Unix , Unix-подобный
Тип файловой системы Драйвер
Лицензия GPL для части ядра Linux, LGPL для Libfuse, Simplified BSD для FreeBSD, лицензия ISC для OpenBSD; проприетарный для macOS
Веб-сайт github /libfuse /libfuse

Файловая система в пространстве пользователя ( 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».

Эксплуатация и использование

[ редактировать ]
Блок-схема, показывающая, как работает FUSE: Запрос из пользовательского пространства на список файлов (ls -l /tmp/fuse) перенаправляется ядром через VFS в FUSE. Затем FUSE выполняет зарегистрированную программу-обработчик (./hello) и передает ей запрос (ls -l /tmp/fuse). Программа-обработчик возвращает ответ обратно в FUSE, который затем перенаправляется в программу пользовательского пространства, которая первоначально сделала запрос.

Для реализации новой файловой системы требуется программа-обработчик, связанная с поставляемым файлом. libfuse библиотеку нужно написать. Основная цель этой программы — указать, как файловая система должна реагировать на запросы чтения/записи/статистики. Программа также используется для монтирования новой файловой системы. Во время монтирования файловой системы обработчик регистрируется в ядре. Если теперь пользователь отправляет запросы на чтение/запись/статистику для этой вновь смонтированной файловой системы, ядро ​​перенаправляет эти запросы ввода-вывода обработчику, а затем отправляет ответ обработчика обратно пользователю.

Размонтирование файловой системы на основе FUSE с помощью 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 могут создавать представление базовой файловой системы, каким-то образом преобразуя файлы.

Файловые системы архивирования и резервного копирования

[ редактировать ]

Файловые системы 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 к распределенным файлам.

См. также

[ редактировать ]
  1. ^ «Выпуск 3.16.2» . 10 октября 2023 г. Проверено 19 октября 2023 г.
  2. ^ «Главная — FUSE для OS X» .
  3. ^ Зиссимопулос, Билл (14 февраля 2021 г.), billziss-gh/winfsp , получено 16 февраля 2021 г.
  4. ^ «Некоторые технические преимущества Херда» . 15 мая 2011 года . Проверено 28 марта 2016 г.
  5. ^ «WhatsNew/FreeBSD10 — FreeBSD Wiki» .
  6. ^ «openbsd dev-tech — поддержка Fuse (и sshfs) для OpenBSD» . Архивировано из оригинала 26 октября 2020 г. Проверено 14 июля 2013 г.
  7. ^ " 'CVS: cvs.openbsd.org: src' - MARC" .
  8. ^ «file-systems.fuse.devel — FUSE объединен с версией 2.6.14! — msg#00021 — Недавнее обсуждение OSDir.com» . Архивировано из оригинала 20 апреля 2016 г.
  9. ^ «libfuse/libfuse, эталонная реализация интерфейса Linux FUSE (файловая система в пользовательском пространстве)» . libfuse. 9 января 2020 г. Проверено 9 января 2020 г.
  10. ^ «Журнал изменений libfuse3» . Гитхаб . Проверено 9 января 2020 г.
  11. ^ «Блеск FreeBSD» . Архивировано из оригинала 12 марта 2008 г. Проверено 2 марта 2008 г.
  12. ^ «Архитектура ZFS для Lustre» . Сан Микросистемс. Архивировано из оригинала 22 января 2009 г. Проверено 2 марта 2008 г.
  13. ^ "минио/минфс" . Гитхаб . Проверено 12 апреля 2018 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 326da2c093891efcc87dc64d6e27376a__1721827920
URL1:https://arc.ask3.ru/arc/aa/32/6a/326da2c093891efcc87dc64d6e27376a.html
Заголовок, (Title) документа по адресу, URL1:
Filesystem in Userspace - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)