Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Unionfs - это служба файловой системы для Linux , FreeBSD и NetBSD, которая реализует объединенное монтирование для других файловых систем . Он позволяет прозрачно накладывать файлы и каталоги отдельных файловых систем, называемых ветвями, образуя единую согласованную файловую систему. Содержимое каталогов, имеющих одинаковый путь в объединенных ветвях, будет отображаться вместе в одном объединенном каталоге в новой виртуальной файловой системе.

При монтировании ответвлений указывается приоритет одной ветви над другой. Поэтому, когда обе ветки содержат файл с одинаковым именем, одна получает приоритет над другой.

Различные ветви могут быть файловыми системами только для чтения или чтения / записи , так что запись в виртуальную объединенную копию направляется в конкретную реальную файловую систему. Это позволяет файловой системе выглядеть доступной для записи, но без фактического разрешения операций записи для изменения файловой системы, также известной как копирование при записи . Это может быть желательно, если носитель физически доступен только для чтения, например, в случае Live CD .

Первоначально Unionfs был разработан профессором Эрезом Задоком и его командой из Университета Стоуни-Брук . [1] [2] [3]

Использует [ редактировать ]

В Knoppix - объединение файловой системы на CD-ROM или DVD и файловой системы, содержащейся в файле образа под названием knoppix.img (knoppix-data.img для Knoppix 7) на записываемом диске (например, USB-накопителе). ), где записываемый диск имеет приоритет над файловой системой, доступной только для чтения. Это позволяет пользователю изменять любой из файлов в системе, при этом новый файл сохраняется в образе и прозрачно используется вместо файла на компакт-диске. [4]

Unionfs также можно использовать для создания единого общего шаблона для нескольких файловых систем или по соображениям безопасности. Иногда его используют в качестве специальной системы моментальных снимков .

Docker использует файловые системы, вдохновленные Unionfs, такие как Aufs , для создания слоев образов Docker. Когда действия выполняются с базовым изображением, слои создаются и документируются, так что каждый слой полностью описывает, как воссоздать действие. Эта стратегия позволяет использовать облегченные образы Docker, поскольку необходимо распространять только обновления уровней (например, по сравнению с полными виртуальными машинами). [5]

UbuntuLTSP , реализация проекта Linux Terminal Server Project для Ubuntu, использует Unionfs при PXE-загрузке тонких или толстых клиентов. [6]

Другие реализации [ править ]

Unionfs для Linux имеет две версии. Версия 1.x - это отдельная версия, которую можно собрать как модуль. Версия 2.x является более новой, переработанной и переработанной.

aufs - альтернативная версия unionfs. [7]

overlayfs, написанный Миклосом Середи, использовался в OpenWRT и рассматривался Ubuntu, и 26 октября 2014 года [8] после многих лет разработки и обсуждения [9] версии ядра был объединен с основным ядром Linux.

unionfs-fuse - это независимый проект, реализованный как программа файловой системы пользовательского пространства , а не как модуль ядра или патч. Как и Unionfs, он поддерживает ветви копирования при записи и только для чтения или чтения-записи. [10]

Plan 9 из операционной системы Bell Labs широко использует объединенные монтирования для создания пользовательских пространств имен для каждого пользователя или процессов.

Крепления Union также доступны в BSD по крайней мере с 1995 года. [11]

GNU Hurd имеет реализацию UnionFS. [12] По состоянию на январь 2008 г. он работает, но обеспечивает точку монтирования только для чтения.

mhddfs работает как Unionfs, но позволяет балансировать файлы на дисках с наибольшим доступным свободным пространством. Он реализован как файловая система пользовательского пространства.

mergerfs - это файловая система union на основе FUSE, которая предлагает несколько политик для доступа и записи файлов, а также другие расширенные функции (xattrs, управление смешанными дисками RO и RW, связывание CoW и т. д.). [13]

Sun Microsystems представила первую реализацию многослойной многоуровневой файловой системы с копированием при записи, белыми затенениями (скрытие файлов на нижних уровнях от более высоких уровней) и т. Д. Как Translucent File Service в SunOS 3 примерно в 1986 году [14].

JailbreakMe 3.0, инструмент для взлома устройств iOS, выпущенный в июле 2011 года, использует методы unionfs для ускорения процесса установки модификации операционной системы. [15]

См. Также [ править ]

  • OverlayFS
  • Aufs

Ссылки [ править ]

  1. ^ Райт, Чарльз П .; Задок, Эрез (декабрь 2004 г.). «Ядро Корнер: Unionfs: объединение файловых систем» . Linux Journal . 2004 (128): 8. ISSN  1075-3583 .
  2. ^ "Git-сервер файловых систем и лаборатории хранения" . Университет Стоуни-Брук . Архивировано из оригинального 17 июня 2016 года . Проверено 17 июля 2017 года . Проект: unionfs-3.9.y.git; Владелец: Эрез Задок
  3. ^ "Файловые системы и хранилище данных: Отдел CS" . Университет Стоуни-Брук . Координатор лаборатории и главный исследователь: профессор Эрез Задок
  4. ^ Шульц, Вернер П. (15 декабря 2016 г.). «Установка на жесткий диск: UNIONFS» . Knoppix . Проверено 17 июля 2017 года .
  5. ^ «Обзор Docker: файловые системы Союза» . Docker, Inc. 13 июля 2017 . Проверено 17 июля 2017 года .
  6. ^ Георгопулоса, Alkis (24 декабря 2010). «UbuntuLTSP / LTSPWithoutNFS» . Проверено 17 июля 2017 года .
  7. ^ "Домашняя страница aufs" . 2 июля 2017 . Проверено 17 июля 2017 года .
  8. Торвальдс, Линус (26 октября 2014 г.). "слияние overlayfs + исправление утечки для выхода из строя d_splice_alias ()" . Проверено 17 июля 2017 года .
  9. Корбет, Джонатан (15 июня 2011 г.). "Обсуждение оверлейфов" . Проверено 17 июля 2017 года .
  10. Подгорный, Радек (21 ноября 2016 г.). «unionfs-fuse - реализация unionfs в пользовательском пространстве» . Проверено 17 июля 2017 года .
  11. ^ Пендри, Ян-Саймон; МакКусик, Маршалл Кирк (январь 1995 г.). «Union Mounts в 4.4BSD-Lite» . USENIX 1995. Труды технической конференции . Проверено 17 июля 2017 года .
  12. Швинге, Томас (26 февраля 2014 г.). "unionfs" . GNU Hurd . Проверено 17 июля 2017 года .
  13. ^ "trapexit / mergerfs" . GitHub . Проверено 21 октября 2018 года .
  14. ^ Вс / Выпуск 3.0 . т. 1. Interleaf Technical Publishing. 1988. С. 15‑1–18, 16‑1–19.
  15. ^ Имран, Awais (19 июня 2011). «Comex работает над ускорением процесса взлома JailbreakMe 3.0; скоро появится возможность взломать iPad 2!» . Редмонд Пирог . Проверено 17 июля 2017 года .

Внешние ссылки [ править ]

  • Официальный веб-сайт
  • Чарльз П. Райт, Джей Дэйв, Пуджа Гупта, Харикешаван Кришнан, Эрез Задок и Мохаммад Найер Зубайр (2004 г.). «Универсальность и семантика Unix в файловой системе разветвленной унификации» (PDF) . Технический отчет FSL-04-01b . Университет Стоуни-Брук .CS1 maint: использует параметр авторов ( ссылка )
  • unionfs-fuse на GitHub - альтернативная реализация Unionfs на основе FUSE
  • FunionFS - еще одна реализация Unionfs на основе FUSE
  • Новая реализация unionfs для FreeBSD и статус объединения (2007-10-23)
  • Об инкрементальной разработке файловой системы
  • Unionfs на основе LUFS для Linux (на основе LUFS )
  • Руководство по DENX U-Boot и Linux: файловые системы наложения