Virtuální souborový systém

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 17. prosince 2019; kontroly vyžadují 3 úpravy .

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 .

Historie vývoje

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.

Zařízení VFS

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

Aplikace v moderních operačních systémech

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 .

Viz také

Poznámky

  1. FreeBSD: Virtuální souborové systémy . Získáno 18. června 2010. Archivováno z originálu 12. června 2017.

Odkazy

Literatura

E. Tanenbaum, H. Bos Moderní operační systémy. - 4. vyd. - Petrohrad: Petr, 2018.