Home

VFSArchitektur

Die VFS-Architektur (Virtual File System) bezeichnet in Betriebssystemen eine abstrakte Schicht zwischen Anwendungen und den eigentlichen Dateisystemtreibern. Sie ermöglicht es, verschiedene Dateisysteme über eine einheitliche Schnittstelle zu verwenden, unterstützt das Mounten von Dateisystemen an unterschiedlichen Stellen des Namenraums und verbirgt Details wie Inodes, Block-Layouts und sonstige Dateisystem-spezifische Implementierungen vor der Anwender- und Anwendungslogik.

Kernkomponenten sind die VFS-Schicht selbst, Dentries und Inodes, Superblöcke und File-Objekte. Dentries (Verzeichnis-Einträge) unterstützen die Namensauflösung

Der Zugriff durch Anwendungen erfolgt über Systemaufrufe, die im VFS in abstrahierte Operationen überführt werden; die

Beispiele und Einsatz: Linux verwendet eine umfangreiche VFS, die ext4, XFS und Btrfs sowie Netzwerkdateisysteme wie

im
Pfad,
Inodes
speichern
Metadaten
der
Dateien,
und
Superblöcke
beschreiben
das
jeweilige
Dateisystem.
Dateien,
die
über
die
VFS
geöffnet
werden,
verwenden
Dateioperationen
(file_operations)
und
Inode-Operationen
(inode_operations);
das
VFS
ruft
je
nach
Dateisystemtyp
die
entsprechenden
Implementierungen
auf.
Zudem
verwaltet
der
VFS
den
Namensraum,
Mount-Punkte
und
Verbindungen
zu
Netzwerkdateisystemen
wie
NFS
oder
SMB.
konkreten
Dateisystemtreiber
liefern
die
Implementierungen.
Zur
Optimierung
nutzt
der
Kernel
Caching-Strukturen
wie
Seiten-Cache,
Dentry-Cache
und
Inode-Cache,
um
wiederholte
Zugriffe
zu
beschleunigen.
Das
VFS
kümmert
sich
außerdem
um
Synchronisation,
Sperren
und
Konsistenz
zwischen
unterschiedlichen
Dateisystemen.
NFS
unterstützt.
Über
FUSE
können
Dateisysteme
auch
in
User
Space
implementiert
werden,
wobei
der
VFS
über
FUSE-Clients
kommuniziert.
Vorteile
der
Architektur
sind
Modularität,
Portabilität
und
Transparenz
der
Dateisystemwahl;
Nachteile
können
Komplexität,
Overhead
und
unterschiedliche
Semantik
einzelner
Dateisysteme
sein.