Wikipedia · einfach zusammengefasst · Stand
Virtuelles Dateisystem
Ein virtuelles Dateisystem (englisch virtual file system und zudem kurz VFS genannt) ist eine Abstraktionsschicht oberhalb konkreter Dateisysteme.
Inhalt3 Abschnitte
Grundidee und Zweck
Ein virtuelles Dateisystem, kurz VFS nach englisch virtual file system, ist eine Abstraktionsschicht oberhalb konkreter Dateisysteme. Es sorgt dafür, dass Anwendungen über eine einheitliche API auf unterschiedliche Dateisysteme zugreifen können.
Das VFS dient als allgemeine Schnittstelle. Es verdeckt die Unterschiede zwischen verschiedenen lokalen Dateisystemen sowie den Zugriff auf entfernte Verzeichnisse und Dateien. Dadurch muss eine Anwendung nicht im Detail wissen, welches konkrete Dateisystem oder welcher entfernte Speicher hinter einer Datei steht.
Funktionsweise
Für jede geöffnete Datei führt das VFS einen Eintrag, der v-node genannt wird. Dieser Eintrag verweist entweder auf einen lokalen Dateidescriptor, den i-node, oder auf einen globalen NFS-Descriptor, den r-node. NFS steht dabei für den Zugriff auf entfernte Dateien und Verzeichnisse.
Das dynamische Einhängen und Aushängen importierter Verzeichnisse übernimmt ein spezielles Programm, der Automounter. Eine solche VFS-Schicht, auch VFS switch genannt, gibt es unter anderem in Linux, in BSD-basierten Betriebssystemen, im KDE-Desktop mit Kio, im Gnome-Desktop mit GVFS und im Jakarta-Projekt der Apache Software Foundation.
Weitere Bedeutung und Beispiele
Aus Sicht von Benutzern und Entwicklern kann virtuelles Dateisystem auch eine Datenmenge bedeuten, die wie ein gewöhnliches Dateisystem erscheint, obwohl sie nicht aus physisch auf einem Datenträger gespeicherten Dateien besteht. Stattdessen wird sie bei Bedarf von besonderen Systemkomponenten bereitgestellt. Das steht im Zusammenhang mit dem Prinzip „alles ist eine Datei“.
Bekannte Beispiele sind die Pseudo-Dateisysteme procfs, sysfs und configfs. Außerdem ermöglicht FUSE, virtuelle Dateisysteme zu programmieren, ohne direkt in die Betriebssystemsoftware eingreifen zu müssen. Bei GNU Hurd ist diese Möglichkeit bereits im Systemkonzept enthalten.