Jump to content

Виртуальная файловая система

Виртуальная файловая система ( VFS ) или переключатель виртуальной файловой системы — это абстрактный уровень поверх более конкретной файловой системы . Цель VFS — предоставить клиентским приложениям единый доступ к различным типам конкретных файловых систем. Например, VFS можно использовать для прозрачного доступа к локальным и сетевым устройствам хранения данных, при этом клиентское приложение не заметит разницы. Его можно использовать для устранения различий в файловых системах Windows , классической Mac OS / macOS и Unix , чтобы приложения могли получать доступ к файлам в локальных файловых системах этих типов, не зная, к какому типу файловой системы они обращаются.

VFS определяет интерфейс (или «контракт») между ядром и конкретной файловой системой. Поэтому в ядро ​​легко добавить поддержку новых типов файловых систем, просто выполнив контракт. Условия контракта могут несовместимо меняться от выпуска к выпуску, что потребует перекомпиляции конкретной поддержки файловой системы и, возможно, изменения перед перекомпиляцией, чтобы позволить ей работать с новой версией операционной системы; или поставщик операционной системы может внести в контракт только обратно совместимые изменения, чтобы конкретная поддержка файловой системы, созданная для данной версии операционной системы, работала с будущими версиями операционной системы.

Реализации

[ редактировать ]
Положение уровня VFS в различных частях стека хранилища ядра Linux . [ 1 ]

Один из первых механизмов виртуальной файловой системы в Unix-подобных системах был представлен компанией Sun Microsystems в SunOS 2.0 в 1985 году. [ 2 ] Это позволило системным вызовам Unix прозрачно получать доступ к локальным файловым системам UFS и удаленным файловым системам NFS . По этой причине поставщики Unix, лицензировавшие код NFS у Sun, часто копировали дизайн Sun VFS. К нему также можно было подключить и другие файловые системы: существовала реализация файловой системы MS-DOS FAT, разработанная в Sun, которая подключалась к SunOS VFS, хотя она не поставлялась как продукт до SunOS 4.1. Реализация SunOS легла в основу механизма VFS в System V Release 4 .

Джон Хайдеманн разработал стековую VFS под SunOS 4.0 для экспериментальной файловой системы Ficus . Эта конструкция предусматривала повторное использование кода среди типов файловых систем с различной, но похожей семантикой ( например , шифрованная файловая система могла повторно использовать весь код именования и управления хранилищем незашифрованной файловой системы). Хайдеманн адаптировал эту работу для использования в 4.4BSD в рамках своего диссертационного исследования; потомки этого кода лежат в основе реализаций файловой системы в современных производных BSD, включая macOS .

Другие виртуальные файловые системы Unix включают File System Switch в System V Release 3 , Generic File System в Ultrix и VFS в Linux . В OS/2 и Microsoft Windows механизм виртуальной файловой системы называется устанавливаемой файловой системой .

Механизм «Файловая система в пространстве пользователя » (FUSE) позволяет коду области пользователя подключаться к механизму виртуальной файловой системы в Linux, NetBSD , FreeBSD , OpenSolaris и macOS.

В Microsoft Windows виртуальные файловые системы также могут быть реализованы посредством расширений пространства имен оболочки пользователя ; доступа к файловой системе самого низкого уровня однако они не поддерживают интерфейсы прикладного программирования в Windows, поэтому не все приложения смогут получить доступ к файловым системам, реализованным как расширения пространства имен. KIO и GVfs / GIO предоставляют аналогичные механизмы в средах рабочего стола KDE и GNOME (соответственно) с аналогичными ограничениями, хотя их можно заставить использовать методы FUSE и, следовательно, плавно интегрировать в систему.

Однофайловые виртуальные файловые системы

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

Иногда под виртуальной файловой системой понимается файл или группа файлов (не обязательно внутри конкретной файловой системы), которые действуют как управляемый контейнер, который должен обеспечивать функциональность конкретной файловой системы посредством использования программного обеспечения. Примерами таких контейнеров являются CBFS Storage или однофайловая виртуальная файловая система в эмуляторе типа PCTask или так называемом WinUAE , Oracle’s VirtualBox , Microsoft’s Virtual PC , VMware .

Основное преимущество файловой системы этого типа заключается в том, что она централизована и ее легко удалить. Однофайловая виртуальная файловая система может включать в себя все основные функции, ожидаемые от любой файловой системы (виртуальной или иной), но доступ к внутренней структуре этих файловых систем часто ограничивается программами, специально написанными для использования однофайловой виртуальной файловой системы. файловая система (вместо реализации через драйвер, обеспечивающий универсальный доступ). Еще одним серьезным недостатком является относительно низкая производительность по сравнению с другими виртуальными файловыми системами. Низкая производительность в основном связана со стоимостью перетасовки виртуальных файлов при записи или удалении данных из виртуальной файловой системы.

Реализация однофайловых виртуальных файловых систем.

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

Прямые примеры однофайловых виртуальных файловых систем включают эмуляторы, такие как PCTask и WinUAE, которые инкапсулируют не только данные файловой системы, но и эмулируют структуру диска. Это позволяет легко обращаться с установкой ОС, как с любым другим программным обеспечением, — переносить ее на съемном носителе или по сети.

Эмулятор Amiga PCTask 80486 эмулировал компьютер на базе Intel PC 8088 с тактовой частотой 4,77 МГц (а позже и SX с тактовой частотой 25 МГц). Пользователи PCTask могли создать файл большого размера в файловой системе Amiga, и к этому файлу можно было бы получить виртуальный доступ из эмулятора, как если бы это был настоящий жесткий диск ПК. Файл можно отформатировать в файловой системе FAT16 для хранения обычных файлов MS-DOS или Windows. [1] [2]

UAE WinUAE для Windows , . , позволяет рассматривать большие отдельные файлы в Windows как файловые системы Amiga В WinUAE этот файл называется жестким файлом . [3]

ОАЭ также могут рассматривать каталог в файловой системе хоста ( Windows , Linux , macOS , AmigaOS ) как файловую систему Amiga. [4]

См. также

[ редактировать ]
  • 9P (протокол) — протокол распределенной файловой системы, который напрямую сопоставляется с уровнем VFS Plan 9, что делает доступ ко всем файловым системам прозрачным для сети.
  • Синтетическая файловая система - иерархический интерфейс для нефайловых объектов, которые выглядят как обычные файлы в дереве дисковой файловой системы.

Примечания

[ редактировать ]
  1. ^ Эмуляция на Amiga Сравнение PCX и PCTask, эмуляторов ПК Amiga.
  2. ^ См. также эту статью, объясняющую, как работает PCTask.
  3. ^ Справка о WinUAE (см. раздел «Жесткий файл»).
  4. ^ Справка о WinUAE (см. раздел «Добавление каталога»)
  1. ^ Вернер Фишер; Георг Шенбергер (01.06.2015). «Диаграмма стека хранилища Linux» . Томас-Кренн.АГ . Проверено 8 июня 2015 г.
  2. ^ Клейман, Стив Р. (июнь 1986 г.). «Vnodes: архитектура для нескольких типов файловых систем в Sun UNIX» (PDF) . ЮСЕНИКС Лето . 86 : 238–247. Архивировано из оригинала (PDF) 29 июня 2014 г. Проверено 31 декабря 2016 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: e2148c174fa1bf253766246213f7c6ad__1690269480
URL1:https://arc.ask3.ru/arc/aa/e2/ad/e2148c174fa1bf253766246213f7c6ad.html
Заголовок, (Title) документа по адресу, URL1:
Virtual file system - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)