Wirtualny system plików

Wirtualny system plików (ang. Virtual File System lub Virtual Filesystem Switch, VFS) – abstrakcyjna powłoka leżąca ponad rzeczywistym systemem plików, której zadaniem jest umożliwienie programom użytkownika korzystania z niego w jednakowy sposób, niezależnie od tego jaki system plików jest rzeczywiście wykorzystywany. VFS dostarcza jednolity interfejs wspólny dla wszystkich systemów plików obsługiwanych przez jądro systemu operacyjnego.

Wirtualny system plików (Moduł rodzimy – np. ext2)

Gdy programy z przestrzeni użytkownika chcą wykonać jakąkolwiek operację na pliku, odwołują się do funkcji VFS (np. open, read itp.). VFS przechwytuje wywołania systemowe i do realizacji operacji na pliku wywołuje funkcję konkretnego systemu plików (np. dla ext2 ext2_open, ext2_read itp.). Dzięki takiemu rozwiązaniu programy mogą korzystać z plików niezależnie od tego, jaki system plików został użyty do ich przechowywania. W systemach operacyjnych, które korzystają z wielu systemów plików, takich jak np. Linux czy Unix, jest to szczególnie ważne.

Początkowo wirtualny system plików w BSD został wprowadzony w celu obsługi Network File System (sieciowego systemu plików).

W ramach VFS odbywa się pierwszy etap buforowania plików – buforowanie nazw katalogów oraz i-węzłów.

Ten mechanizm jest także używany do uproszczenia korzystania z innych zasobów systemowych. W Uniksach dzięki odpowiednim wirtualnym systemom plików zasoby systemowe są dostępne tak, jakby były plikami, zgodnie z zasadą wszystko jest plikiem, charakterystyczną dla systemów tej klasy. Na przykład w Linuksie korzystanie z urządzeń odbywa się przez system plików devfs (seria 2.4) lub udev (seria 2.6).

Specyficznym wirtualnym systemem plików jest tzw. proc, który nie odnosi się do żadnego fizycznego systemu plików oraz żadnego urządzenia.

Media użyte na tej stronie

Wirtualny system plikow.svg
Autor: Wersję rastrową wykonał użytkownik polskiego projektu wikipedii: Nemuri, Zwektoryzował: Krzysztof Zajączkowski, Licencja: GFDL
Wirtualny system plików