LayerFS - Einführung

Spiegeldateisysteme


LayerFS basiert auf einem ungewöhnlichen Erweiterungsprinzip des RISC OS Dateisystems, dem Konzept eines image filing systems. Ein solches Spiegeldateisystem erstellt und verwaltet Objekte, die sich gegenüber dem Benutzer bzw. gegenüber jedem beliebigen Programm wie gewöhnliche Verzeichnisse verhalten, die Daten jedoch auf andere Weise speichern als beispielsweise ADFS. Bekannte Beispiele sind Partitionen und Disketten in fremden Formaten (z.B. DOS), Archive, die, für den Benutzer unsichtbar, hineingeschriebene Daten komprimieren, und beim Herauslesen wieder expandieren (z.B. SparkFS oder TBA-FS).

LayerFS ist ebenfalls ein Spiegeldateisystem. Ein LayerFS directory, mit dem Dateityp LayerDir und dem Symbol , kann also verwendet werden wie jedes andere Verzeichnis auch. Sein Datenverarbeitungskonzept ist, die Dateien woanders zu speichern.

Von Zeigern zu Schichten


Das einfachste Anwendungsbeispiel eines LayerDirs ist der aus der UNIX-Welt wohlbekannte link (Zeiger): ein Verzeichnis das an bestimmter Stelle im Verzeichnisbaum steht und einfach auf ein anderes zeigt. Alle Zugriffe auf den scheinbaren Inhalt des Links werden umgeleitet auf die echte Position des Verzeichnisses. Dies ist in der Praxis sehr sinnvoll zur Organisation von Daten; z.B. könnte man einen Link $.Hilfsprogs.Graphik erzeugen, der auf $.Graphik.Werkzeuge verweist, so daß der Benutzer auf beiden Suchwegen dieselben Hilfsprogramme zur Graphikverarbeitung findet.

LayerFS geht jedoch einen Schritt weiter, zu den Schichten (layers): Ein LayerFS-Verzeichnis zeigt nicht einfach auf ein anderes Verzeichnis, sondern sein Inhalt setzt sich aus mehreren Quellverzeichnissen zusammen, wobei Objekte, die aus den 'tieferen' Schichten stammen, von Objekten aus den 'höheren' Schichten verdeckt werden.

Die Schreibschicht


Die oberste Schicht des Verzeichnisstapels, der ein LayerDir bildet, ist die einzige auf die geschrieben wird (ein LayerDir verhält sich also wie ein ganzer Stapel von Folien auf einem Overheadprojektor). Dabei werden nicht nur neu erzeugte Objekte immer im Schreibpfad angelegt, sondern wenn ein Programm versucht, ein Objekt aus einem Lesepfad zu verändern, wird dies (für das Programm unbemerkt) auf dem Schreibpfad dupliziert und dort verändert. Da die Schreibschicht zuoberst auf dem Stapel liegt, verdecken die modifizierten Objekte immer die darunter liegenden Originale.

Insgesamt verhält sich also ein LayerDir wie ein gewöhnliches, beschreibbares Verzeichnis, ohne daß alle Quellpfade beschreibbar oder auch nur die Mehrheit der Daten auf einem beschreibbaren Pfad liegen müßten.

Beispiele


Neben den oben beschriebenen Links läßt sich LayerFS vielseitig einsetzen. Einige Beispiele sollen dies verdeutlichen:

Aktualisierbare Programm- und Resourcensammlungen

Wenn Programm- oder Resourcensammlungen auf CD-ROMs oder in Archiven vertriebenwerden, wird jede nötige Änderung an den Daten zum Problem (z.B. Programm-Update). Normalerweise müssen dann alle benötigten Daten auf die Festplatte kopiert werden. Dies kann mit LayerFS vermieden werden.

Zusammenstellen von Update-Distributionen

Wer programmiert, will häufig Aktualisierungen von Programmen anbieten, ohne dazu das komplette Programm vertreiben zu müssen. Werden die Änderungen in einem LayerDir vorgenommen, können die für das Update nötigen Dateien direkt dem Schreibpfad entnommen werden. Auch können Änderungen gefahrlos testweise vorgenommen werden, ohne eine komplette Arbeitskopier herstellen zu müssen.

Aufbauende Sicherungskopien

Das Anfertigen kompletter Sicherungskopien von Festplatten etc. erfordert viel Zeit und Speicherplatz. Daher werden für kurzfristige Sicherungen i.a. nur die geänderten Daten gesichert. Solle inkrementellen Backups können mit LayerFS und der normalen Kopierfunktion des OS-Filers erzeugt werden.


LayerFS Pro

Diese Fassung von LayerFS besteht aus einer besonderen Version von LayerMgr und einem frei kopierbaren Modul, das nur LayerFS-Verzeichnisse bearbeiten kann, die mit dieser Version hergestellt wurden.

Die mit Einzelplatzlizenzen ausgelieferten Module können sowohl LayerFS als auch LayerFS Pro-Dateien bearbeiten.

Da das Modul frei ist, befindet sich hier gleich ein Archiv mit dem Modul und einer Teststruktur; ein weiteres Beispiel finden Sie auf unseren Web-Seiten in Form des Shareware-Archivs von Units:

Herunterladen (Spark-Archiv), 27kB


© 1998 Feldner & Braun Software GdbR