Virtuální souborový systém ( anglicky virtual file system - VFS) nebo virtuální souborový systém switch ( anglicky virtual filesystem switch ) je abstraktní vrstva nad konkrétní implementací souborového systému . Účelem VFS je poskytovat jednotný přístup klientským aplikacím k různým typům souborových systémů. VFS lze použít pro přístup k místním zařízením a souborům ( fat32 , ext4 , ntfs ), síťovým zařízením a souborům na nich ( nfs ) a zařízením pro ukládání dat ( procfs [1] ). VFS deklaruje programovací rozhraní mezi jádrem a konkrétním souborovým systémem, takže přidání podpory pro nový souborový systém nevyžaduje změny jádra operačního systému .
Jeden z prvních virtuálních souborových systémů v operačních systémech podobných Unixu byl implementován Sun Microsystems v SunOS 2.0 v roce 1985 . To umožnilo systémovým voláním Unixu transparentně přistupovat k místnímu UFS a vzdálenému NFS . Z tohoto důvodu prodejci Unixu, kteří licencovali kód NFS, často kopírovali návrh VFS společnosti Sun. Ostatní souborové systémy mohou být připojeny stejným způsobem: existovala implementace souborového systému MS-DOS FAT vyvinutého Sunem, který používal SunOS VFS, i když jako produkt nebyl dodán až do SunOS 4.1. Implementace SunOS je srdcem mechanismu VFS v System V Release 4 .
John Heidemann vyvinul skládaný VFS pod SunOS 4.0 pro experimentální souborový systém Ficus . Tento projekt zahrnoval opětovné použití kódu napříč systémy souborů s odlišnou, ale podobnou sémantikou (například šifrovaný systém souborů může používat systém pojmenování a kód k ukládání dat z nešifrovaného systému souborů). Ve své dizertační práci Heidemann upravil tuto práci pro použití v 4.4BSD. Potomci tohoto kódu jsou základem implementací moderních souborových systémů v operačních systémech odvozených od BSD , včetně Mac OS X.
Jak již bylo zmíněno dříve, hlavním účelem moderního VFS je zorganizovat jediné uživatelské rozhraní pro přístup k různým souborovým systémům, jejichž ovladače se načítají do paměti počítače. K dosažení tohoto cíle vyžaduje jádro operačního systému vytvoření jediného programovacího rozhraní pro vnitřní volání jádra. Toto rozhraní by mělo být dostatečně široké z hlediska funkčnosti, protože bude použito pro přístup k velmi velkému počtu různých (ve smyslu vlastností a funkčnosti) souborových systémů. Kromě standardních volání pro otevírání/zavírání a čtení/zápis souborů musí mít VFS rozhraní pro revalidaci (z angličtiny revalidation ) dat, práci s mezipamětí , odesílání speciálních požadavků ( IOCTL - Input/Output Control ) a také jako pro organizaci aktuální relace s otevřeným souborem.
Aby mohl ovladač systému souborů pracovat s VFS, musí implementovat určená volání programu s ohledem na specifika práce tohoto systému souborů. Ovladač může podporovat pouze část volání VFS API, v takovém případě by jádro operačního systému mělo správně „umlčet“ odpovídající nezpracované požadavky od uživatele.
Ve skutečnosti může být rozhraní VFS poskytované ovladačům souborového systému definicí samotného konceptu souborového systému. Jakýkoli ovladač, který implementuje funkcionalitu VFS API a je správně načten do jádra, se stane ovladačem systému souborů, ať už se používá pro přístup k souborům nebo ne. Navíc funkčnost samotného souborového systému nemusí být ani v ovladači, ale v uživatelském prostoru . Pozoruhodným příkladem tohoto přístupu je souborový systém v uživatelském prostoru ( Filesystem in Userspace - FUSE ).
V OS/2 a Microsoft Windows se mechanismus virtuálního systému souborů nazývá Installable File System .
V Linuxu je mechanismus VFS, stejně jako všechny kódy jádra, open source. To umožňuje vývojářům souborových systémů psát své ovladače co nejefektivněji. Výsledkem je, že Linux podporuje připojení velké většiny moderních souborových systémů.
Na Unixu zahrnují souborové systémy přepínač File System Switch v System V Release 3 a v Ultrix .
E. Tanenbaum, H. Bos Moderní operační systémy. - 4. vyd. - Petrohrad: Petr, 2018.
Souborové systémy ( seznam , srovnání ) | |||||||
---|---|---|---|---|---|---|---|
Disk |
| ||||||
Distribuované (síť) | |||||||
Speciální |
|
operačních systémů | Aspekty|||||
---|---|---|---|---|---|
| |||||
Typy |
| ||||
Jádro |
| ||||
Řízení procesů |
| ||||
Správa a adresování paměti |
| ||||
Nástroje pro načítání a inicializaci | |||||
skořápka | |||||
jiný | |||||
Kategorie Wikimedia Commons Wikibooks Wikibooks |