stringtranslate.com

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

Виртуальная файловая система ( 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 включают переключатель файловой системы в 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 или однофайловая виртуальная файловая система в эмуляторе типа PCTask или так называемом WinUAE , Oracle’s VirtualBox , Microsoft’s Virtual PC , VMware .

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

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

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

PCTask

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

ВинОАЭ

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

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

Смотрите также

Примечания

  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 г.

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