Tkpled.ru

Узористый проект

Устанавливаемая файловая система

Виртуальная файловая система (англ. virtual file system — VFS) или виртуальный коммутатор файловой системы (англ. virtual filesystem switch) уровень абстракции поверх конкретной реализации файловой системы. Целью VFS является обеспечение единообразного доступа клиентским приложениям к различным типам файловых систем. VFS может, например, быть использована для прозрачного доступа к локальным и сетевым устройствам хранения данных без использования специального клиентского приложения. Она может быть использована для устранения различий между файловыми системами Windows, Mac OS и Unix так, что приложения могут получить доступ к файлам на локальных файловых системах, не зная тип файловой системы, к которой они получают доступ. VFS определяет интерфейс между ядром и конкретной файловой системой. Таким образом, можно легко добавлять поддержку новых типов файловых систем для ядра.

Иногда виртуальными файловыми системами называют псевдо-файловые системы, которые не предназначены для хранения данных. Примером такой системы является procfs.[1]

Содержание

Реализации

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

Джон Хейдеманн (John Heidemann) разработал стековую VFS под SunOS 4.0 для экспериментальной файловой системы Ficus. Этот проект предусматривал повторное использование кода в файловых системах с различной, но похожей семантикой (например, шифрованная файловая система может использовать систему имён и код для хранения данных не шифрованной файловой системы). В своей диссертации Хейдеманн адаптировал эту работу для использования в 4.4BSD. Наследники этого кода лежат в основе реализаций современных файловых систем в операционных системах, производных от BSD, включая Mac OS X.

Другие виртуальные файловые системы Unix включают File System Switch в System V Release 3, Generic File System в Ultrix и VFS в Linux.

В OS/2 и Microsoft Windows механизм виртуальной файловой системы называется устанавливаемой файловой системой (Installable File System).

Файловая система в пользовательском пространстве (Filesystem in Userspace — FUSE) позволяет программам реализовать файловую систему в пользовательском пространстве через подключение к виртуальной файловой системе. FUSE используется в Linux, FreeBSD, OpenSolaris, и Mac OS X.

См. также

  • 9P — протокол файловой системы Plan 9

Примечания

  1. FreeBSD: виртуальные файловые системы

Ссылки

  • Анатомия файловой системы Linux


Устанавливаемая файловая система.