Virtuális fájlrendszer

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt közreműködők, és jelentősen eltérhet a 2019. december 17-én felülvizsgált verziótól ; az ellenőrzések 3 szerkesztést igényelnek .

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 .

Fejlesztési előzmények

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.

VFS eszköz

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

Alkalmazás modern operációs rendszerekben

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 .

Lásd még

Jegyzetek

  1. FreeBSD: Virtuális fájlrendszerek . Letöltve: 2010. június 18. Az eredetiből archiválva : 2017. június 12.

Linkek

Irodalom

E. Tanenbaum, H. Bos Modern operációs rendszerek. - 4. kiadás - Szentpétervár: Péter, 2018.