Virtuelles Dateisystem

A Virtuelles Dateisystem (VFS) oder Virtueller Dateisystemschalter ist eine abstrakte Schicht über einem Beton auf einer Beton Dateisystem. Der Zweck eines VFS besteht darin, Clientanwendungen auf einheitliche Weise auf verschiedene Arten von Betondateisystemen zuzugreifen. Ein VFS kann zum Beispiel zum Zugriff verwendet werden lokal und Netzwerkspeichergeräte transparent, ohne dass die Clientanwendung den Unterschied bemerkt. Es kann verwendet werden, um die Unterschiede in zu überbrücken Fenster, Klassischer Mac OS/Mac OS und Unix Dateisysteme, sodass Anwendungen auf lokalen Dateisystemen dieser Typen zugreifen können, ohne wissen zu müssen, auf welche Art von Dateisystem sie zugreifen.

Ein VFS gibt eine an Schnittstelle (oder ein "Vertrag") zwischen dem Kernel und ein konkretes Dateisystem. Daher ist es einfach, dem Kernel einfach Unterstützung für neue Dateisystemtypen hinzuzufügen, indem Sie den Vertrag einfach erfüllen. Die Vertragsbedingungen könnten sich von der Freigabe in die Veröffentlichung inkompatibel ändern, wodurch die Unterstützung des Betondateisystems neu kompiliert und möglicherweise vor der Neukompilation geändert wird, damit er mit einer neuen Version des Betriebssystems arbeiten kann. oder der Lieferant des Betriebssystems kann nur rückwärtskompatible Änderungen des Vertrags vornehmen, sodass das für eine bestimmte Veröffentlichung des Betriebssystems erstellte Betondateisystems mit zukünftigen Versionen des Betriebssystems funktioniert.

Implementierungen

Die Position der VFS -Schicht in verschiedenen Teilen der Linux Kernel"S Speicherstapel.[1]

Einer der ersten virtuellen Dateisystemmechanismen auf Unix-artig Systeme wurde von eingeführt von Sun Microsystems in Sonnenos 2.0 im Jahr 1985.[2] Es ermöglichte Unix -Systemaufrufe, auf lokal zuzugreifen UFS Dateisysteme und Remote NFS Dateisysteme transparent. Aus diesem Grund kopierten UNIX -Anbieter, die den NFS -Code von Sun lizenzierten, häufig das Design von Suns VFS. Andere Dateisysteme könnten auch an sie angeschlossen werden: Es gab eine Implementierung der MS-DOS FETT Das bei Sun entwickelte Dateisystem, das in die Sunos VFS eingesteckt wurde, obwohl es nicht als Produkt bis Sunos 4.1 versendet wurde. Die Sunos -Implementierung war die Grundlage des VFS -Mechanismus in System V Release 4.

John Heidemann entwickelt a Stapelung VFS unter Sunos 4.0 für das experimentelle FICUS -Dateisystem. Dieses Design wurde vorgesehen für Code -Wiederverwendung zwischen Dateisystemtypen mit unterschiedlichen, aber ähnlichen Semantik (z.B.Ein Verschlüsselungsdateisystem könnte alle Namens- und Speichermanagement-Code eines nicht verschlüsselten Dateisystems wiederverwenden. Heidemann adaptierte diese Arbeit für den Einsatz in 4.4bs als Teil von ihm These Forschung; Nachkommen dieses Code untermauern die Implementierungen des Dateisystems in modernen BSD -Derivaten einschließlich Mac OS.

Andere Unix -virtuelle Dateisysteme enthalten den Dateisystemschalter in System V Release 3das generische Dateisystem in Ultrixund die VFs in Linux. Im OS/2 und Microsoft WindowsDer Mechanismus des virtuellen Dateisystems wird der genannt Installierbares Dateisystem.

Das Dateisystem im userspace (Sicherungs-) Mechanismus erlaubt es Userland Code zum Anschließen in den Mechanismus des virtuellen Dateisystems unter Linux, Netbsd, Freebsd, OpenSolarisund macos.

In Microsoft Windows können auch virtuelle Dateisysteme über Userland implementiert werden Shell -Namespace -Erweiterungen; Sie unterstützen jedoch den Dateisystemzugriff auf niedrigster Ebene nicht Anwendungsprogrammierschnittstellen In Windows können nicht alle Anwendungen auf Dateisysteme zugreifen, die als Namespace -Erweiterungen implementiert werden. Kio und GVFS/Gio bieten ähnliche Mechanismen in der Kde und Gnom Desktop -Umgebungen (jeweils) mit ähnlichen Einschränkungen, obwohl sie zur Verwendung von Sicherungstechniken hergestellt werden können und daher reibungslos in das System integrieren.

Virtuelle Dateisysteme für Einzelfilme

Manchmal bezieht sich das virtuelle Dateisystem auf eine Datei oder eine Gruppe von Dateien (nicht unbedingt in einem konkreten Dateisystem), das als verwaltbarer Container fungiert, der die Funktionalität eines konkreten Dateisystems durch die Verwendung von Software liefern sollte. Beispiele für solche Behälter sind CBFS -Speicher oder a Virtuelle Dateisystem für ein Datei in einem Emulator wie PCTask oder so genannt Winuae, Orakel Virtualbox, Microsoft's Virtueller PC, VMware.

Der Hauptvorteil für diese Art von Dateisystem besteht darin, dass es zentralisiert und einfach zu entfernen ist. Ein virtuelles Einzelfilmsystem kann alle grundlegenden Merkmale enthalten, die von jedem Dateisystem (virtuell oder auf andere Weise) erwartet werden. Der Zugriff auf die interne Struktur dieser Dateisysteme ist jedoch häufig auf Programme beschränkt, die speziell geschrieben wurden, um das Einzelfilm-Virtual zu verwenden Dateisystem (anstelle der Implementierung über einen Treiber, der universellen Zugriff zulässt). Ein weiterer Hauptnachteil ist, dass die Leistung im Vergleich zu anderen virtuellen Dateisystemen relativ niedrig ist. Niedrige Leistung ist hauptsächlich auf die Kosten für die Mischung virtueller Dateien zurückzuführen, wenn Daten aus dem virtuellen Dateisystem geschrieben oder gelöscht werden.

Implementierung von virtuellen Einzel-Dateisystemen mit Einzelfilmen

Direkte Beispiele für ein Datei-virtuelle Dateisysteme umfassen Emulatoren wie PCTASK und Winuae, die nicht nur die Dateisystemdaten, sondern auch emuliertes Festplattenlayout zusammenfassen. Dies erleichtert einfach, eine Betriebssysteminstallation wie jede andere Software zu behandeln, die sie mit abnehmbaren Medien oder über dem Netzwerk übertragen.

PCTask

Das Amiga Emulator pctask emulierte eine Intel PC 8088 Basierte Maschine, die bei 4.77 aufgetaucht istMHz (und später ein 80486SX fuhr bei 25 MHz). Benutzer von PCTASK könnten eine Datei mit großer Größe im Amiga -Dateisystem erstellen, und diese Datei würde vom Emulator praktisch zugegriffen, als wäre es eine echte PC -Festplatte. Die Datei kann mit dem Fat16-Dateisystem formatiert werden, um normale MS-DOs oder Windows-Dateien zu speichern.[1][2]

Winuae

Das VAE zum Fenster, WinuaeErmöglicht es, dass große einzelne Dateien unter Windows als Amiga -Dateisysteme behandelt werden. In Winuae heißt diese Datei a Hardfile.[3]

Die VAE könnten auch ein Verzeichnis auf dem Host -Dateisystem behandeln (Fenster, Linux, Mac OS, Amigaos) als Amiga -Dateisystem.[4]

Siehe auch

  • 9p (Protokoll)-Ein verteiltes Dateisystemprotokoll, das direkt an die VFS-Ebene von Plan 9 abbild
  • Synthetisches Dateisystem-Eine hierarchische Schnittstelle zu Nicht-File-Objekten, die so aussehen, als wären sie reguläre Dateien im Baum eines diskbasierten Dateisystems

Anmerkungen

  1. ^ Emulation auf Amiga Vergleich zwischen PCX und PCTask, Amiga -PC -Emulatoren.
  2. ^ Siehe auch Dieser Artikel Erklären Sie, wie es pctask funktioniert.
  3. ^ Hilfe über Winuae (Siehe Abschnitt Hardfile).
  4. ^ Hilfe über Winuae (Siehe Abschnitt Verzeichnis hinzufügen)

Verweise

  1. ^ Werner Fischer; Georg Schönberger (2015-06-01). "Linux Storage Stack Diagramm". Thomas-krenn.ag. Abgerufen 2015-06-08.
  2. ^ Kleiman, Steve R. (Juni 1986). "VNODES: Eine Architektur für mehrere Dateisystemtypen in Sun Unix" (PDF). Usenix Sommer. 86: 238–247. Archiviert von das Original (PDF) Am 2014-06-29. Abgerufen 31. Dezember 2016.

Externe Links