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

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

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

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

Содержание

  • 1 Реализации
  • 2 Однофайловые виртуальные файловые системы
    • 2.1 Реализация однофайловых виртуальных файловых систем
      • 2.1.1 PCTask
      • 2.1.2 WinUAE
  • 3 См. Также
  • 4 Примечания
  • 5 Ссылки
  • 6 Внешние ссылки

Реализации

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

Один из первых механизмов виртуальной файловой системы в Unix-подобных системах был представлен Sun Microsystems в SunOS 2.0 в 1985 году. Он позволял системным вызовам 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 для экспериментальных целей. Этот дизайн предусматривал повторное использование кода среди типов файловых систем с различной, но схожей семантикой (например, файловая система с шифрованием может повторно использовать весь код именования и управления хранением файловой системы без шифрования). Хайдеманн адаптировал эту работу для использования в 4.4BSD как часть своей диссертации исследования; потомки этого кода лежат в основе реализации файловой системы в современных производных BSD, включая macOS.

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

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

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

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

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

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

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

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

PCTask

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

WinUAE

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

UAE также может обрабатывать каталог в файловой системе хоста (Windows, Linux, macOS, AmigaOS ) в качестве файловой системы Amiga.

См. Также

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

Примечания

  1. ^Эмуляция на Amiga Сравнение PCX и PCTask, эмуляторы Amiga PC.
  2. ^См. также Эта статья, объясняющая, как работает PCTask.
  3. ^Справка по WinUAE (см. раздел Hardfile).
  4. ^Справка по WinUAE (см. Раздел «Добавление каталога»)

Ссылки

Внешние ссылки

.

Последняя правка сделана 2021-06-18 03:36:31
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте