VFS

Aus DGL Wiki
Version vom 15. Januar 2006, 20:41 Uhr von BenBE (Diskussion | Beiträge)

(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche
Hinweis: Dieser Artikel ist noch unvollständig.
(Mehr Informationen/weitere Artikel)

{{{1}}}

Incomplete.jpg

Was ist das?

Als VFS (Virtual File System) bezeichnet man eine Zusammenfassung von Routinen, Klassen und Schnittstellen, um auf Daten zugreifen zu können, die nicht notwendigerweise für das zugrundeliegende Betriebssystem als Dateien erkennbar sind.

Ein VFS unterscheided sich von einem richtigen Dateisystem durch im Wesentlichen 2 Aspekte. Der erste ist, dass es keine Dateisystem-Implementierung durch das OS realisiert, d.h. jegliche Operationen zum Zugriff auf dieses System durch die Anwendung ausgeführt werden. Ein zweiter Punkt, der einen Unterschied zu den Dateisystemen der Betriebssysteme darstellt, ist dass nicht zwangsläufig eine Datenspeicherung direkt auf einem Datenträger stattfindet, d.h. man zum Lesen und Auswerten der Daten die Zwischenschichten des OS benutzt.

Ansätze

Die grundlegendste aller Voraussetzungen für ein sinnvolles VFS ist, dass man Daten hat, die man verwalten will. Worum es sich bei diesen Daten handelt, ist im grundegenommen vollkommen egal, da jegliche Daten eh nur Folgen von Bytes sind. Man sollte also festlegen, was als Quelle für jegliche Daten dient:

  • Festplatte (Dateisystem des OS)
  • Netzwerk (z.B. TCP\UDP Socket-Verbindungen)
  • Der Arbeitsspeicher
  • Ein eigenes Archiv-Format
  • ...

Auch ist es für ein VFS immer auch relevant, wie die Daten dem User präsentiert werden. Auch hier gibt es wieder zahlreiche Möglichkeiten:

  • Memory Pointer
Dirty, aber ich kenn Leute die machen das so *g*
  • Stream Objects
Dies kann z.B. eine weiterentwicklung eines VCL-Streams oder eine eigene Implementierung sein
  • Fertige Datenobjekte
Diese Methode kann z.B. genutzt werden, wenn ein VFS nur zum Zugriff auf eine einzelne Art von Daten (z.B. Texturen) verwendet wird und man sich die zwischenkonvertierungen ersparen möchte. In diesem Fall KANN das Laden der Texturen in das VFS integriert werden, gehört aber nicht zu den eigentlichen Aufgaben eines VFS.
  • ...

Wichtig in einem VFS ist aber auch immer, inwiefern Daten vorverarbeitet werden, d.h. Daten, die in einer Datei interpretiert werden, um z.B. ZIP-Dateien on-the-fly auszulesen oder animierte GIFs "virtuell" in Einzelbilder aufzutrennen.

Siehe auch

Verwandtes

Beispiele