Віртуальна файлова система
Віртуальна файлова система (англ. virtual file system — VFS) або віртуальний комутатор файлової системи (англ. virtual filesystem switch) — рівень абстракції поверх конкретної реалізації файлової системи. Метою VFS є забезпечення однакового доступу клієнтських додатків до різних типів файлових систем. VFS може бути використана, наприклад, для прозорого доступу до локальних і мережних пристроїв зберігання даних без використання спеціального клієнтського додатка (незалежно від типу файлової системи). 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. Цей проект передбачав повторне використання коду у файлових системах з різною, але подібною семантикою (наприклад, файлова система може використовувати систему імен і код для зберігання даних нешифрованої файлової системи). У своїй дисертації Хейдеманн адаптував цю роботу для використання в BSD 4.4. Спадкоємці цього коду лежать в основі сучасних реалізацій файлових систем в операційних системах, похідних від 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.