A virtuális fájlrendszer ( angol virtuális fájlrendszer - VFS) vagy egy virtuális fájlrendszer-kapcsoló ( angol virtuális fájlrendszer-kapcsoló ) egy absztrakciós réteg egy adott fájlrendszer -megvalósítás felett . A VFS célja, hogy a kliens alkalmazások számára egységes hozzáférést biztosítson a különböző típusú fájlrendszerekhez. A VFS segítségével elérhetjük a helyi eszközöket és fájlokat ( fat32 , ext4 , ntfs ), a hálózati eszközöket és a rajtuk lévő fájlokat ( nfs ), valamint a nem adattároló eszközöket ( procfs [1] ). A VFS programozási interfészt deklarál a kernel és egy adott fájlrendszer között, így egy új fájlrendszer támogatásának hozzáadása nem igényli az operációs rendszer kernelének módosítását .
Az egyik első virtuális fájlrendszert a Unix-szerű operációs rendszerekben a Sun Microsystems implementálta a SunOS 2.0-ban 1985 -ben . Ez lehetővé tette a Unix rendszerhívások számára, hogy átláthatóan hozzáférjenek a helyi UFS -hez és a távoli NFS -hez . Emiatt az NFS-kódot engedélyező Unix-szállítók gyakran lemásolták a Sun VFS-tervét. Más fájlrendszerek is hasonló módon csatlakoztathatók: volt a Sun által kifejlesztett MS-DOS FAT fájlrendszernek egy SunOS VFS-t használó implementációja, bár termékként a SunOS 4.1-ig nem szállították. A SunOS megvalósítása a System V 4. kiadás VFS-mechanizmusának középpontjában áll .
John Heidemann egy halmozott VFS-t fejlesztett ki SunOS 4.0 alatt a kísérleti Ficus fájlrendszerhez . Ez a projekt a kódok újrafelhasználását jelentette különböző, de hasonló szemantikával rendelkező fájlrendszereken (például egy titkosított fájlrendszer névrendszert és kódot használhat a titkosítatlan fájlrendszerből származó adatok tárolására). Heidemann dolgozatában ezt a munkát 4.4BSD-ben való használatra adaptálta. Ennek a kódnak a leszármazottai állnak a modern fájlrendszerek BSD -ből származó operációs rendszerekben való megvalósításának hátterében , beleértve a Mac OS X -et is.
Mint korábban említettük, a modern VFS fő célja, hogy egyetlen felhasználói felületet szervezzen a különféle fájlrendszerek eléréséhez, amelyek illesztőprogramjai a számítógép memóriájába kerülnek. E cél eléréséhez az operációs rendszer kernelének egyetlen programozási felület létrehozása szükséges a belső kernelhívásokhoz. Ennek az interfésznek elég szélesnek kell lennie a funkcionalitás szempontjából, mivel nagyon sok különböző (tulajdonságokat és funkcionalitást tekintve) fájlrendszer elérésére szolgál majd. A szabványos fájlok nyitási / bezárási és olvasási / írási hívásain kívül a VFS-nek rendelkeznie kell egy felülettel az adatok újraérvényesítéséhez (angol revalidation ), gyorsítótárak kezeléséhez , speciális kérések küldéséhez (IOCTL - Input / Output Control ), valamint mint az aktuális munkamenet megszervezéséhez nyitott fájllal.
A VFS-sel való együttműködéshez a fájlrendszer-illesztőprogramnak végre kell hajtania a kijelölt programhívásokat, figyelembe véve a fájlrendszer működésének sajátosságait. Az illesztőprogram a VFS API-hívásoknak csak egy részét tudja támogatni, ebben az esetben az operációs rendszer kernelének megfelelően „némítania” kell a megfelelő feldolgozatlan felhasználói kéréseket.
Valójában a fájlrendszer-illesztőprogramokhoz biztosított VFS-interfész a fájlrendszer fogalmának definíciója lehet. Bármely illesztőprogram, amely megvalósítja a VFS API funkciót és megfelelően van betöltve a kernelbe, fájlrendszer-illesztőprogram lesz, függetlenül attól, hogy fájlelérésre használják-e vagy sem. Sőt, maga a fájlrendszer funkcionalitása nem is az illesztőprogramban található, hanem a felhasználói térben . E megközelítés szembetűnő példája a felhasználói térben lévő fájlrendszer ( Filesystem in Userspace - FUSE ).
OS/2 és Microsoft Windows rendszeren a virtuális fájlrendszer mechanizmusát telepíthető fájlrendszernek nevezik .
Linuxon a VFS mechanizmus, mint minden kernelkód, nyílt forráskódú. Ez lehetővé teszi a fájlrendszer-fejlesztők számára, hogy a lehető leghatékonyabban írják meg illesztőprogramjaikat. Ennek eredményeként a Linux támogatja a modern fájlrendszerek túlnyomó többségének csatlakoztatását.
Unix rendszeren a fájlrendszerek közé tartozik a File System Switch a System V 3. kiadásában és az Ultrixban .
E. Tanenbaum, H. Bos Modern operációs rendszerek. - 4. kiadás - Szentpétervár: Péter, 2018.
Fájlrendszerek ( lista , összehasonlítás ) | |||||||
---|---|---|---|---|---|---|---|
Korong |
| ||||||
Elosztott (hálózat) | |||||||
Különleges |
|
Az operációs rendszerek szempontjai | |||||
---|---|---|---|---|---|
| |||||
Típusok |
| ||||
Sejtmag |
| ||||
Folyamatmenedzsment _ |
| ||||
Memóriakezelés és címzés | |||||
Betöltési és inicializálási eszközök | |||||
Héj | |||||
Egyéb | |||||
Kategória Wikimedia Commons Wikikönyvek Wikiszótár |