Gibt es Implementierungen von Unix mit "flachen", tagbasierten Dateisystemen?


7

Soweit ich weiß, werden Dateien in Unix alle in einer "flachen" Struktur auf der Festplatte gespeichert - das Dateisystem besteht lediglich aus Verknüpfungen von Verzeichnissen zu anderen Verzeichnissen und schließlich zu Blättern / Knoten / Dateien. Viele feste Links verweisen möglicherweise auf dieselbe Datei (jedoch nicht auf dasselbe Verzeichnis / denselben Zweig).

Gab es Ansätze dafür, bei denen es im Wesentlichen überhaupt keine Ordner gibt - alle Dateien befinden sich in einem riesigen Ordner, und anstelle von Ordnern haben Sie Tags? Ihr Home-Verzeichnis besteht dann möglicherweise nicht aus Dateien in Ordnern, sondern lediglich aus Listen von Tags / Ordnern, in denen sich eine Datei möglicherweise in mehreren befindet.

Und auch eine Art Software-Fakultät, um kompliziertere Tag-Abfragen wie das Filtern durchzuführen.


MS-DOS 2.0 führte im März 1983 Verzeichnisse ein. Mac OS 2.1 führte im September 1985 die ordnungsgemäße Verzeichnisunterstützung sowie die Festplattenunterstützung ein. Unix-Systeme haben Verzeichnisse unterstützt, da ich nicht weiß, wie lange, aber die Unterstützung von DOS 2-Verzeichnissen basierte auf dem Unix-Muster. Wie @BruceEdiger hervorhebt , ist es eine ziemlich nützliche Funktion, Dateien in Verzeichnissen organisieren zu können. Es ist viel einfacher, ein leistungsfähiges Dateisystem zu erstellen, bei dem die Anzahl der Dateien pro Verzeichnis relativ gering ist.
ein CVn

Der Grund, warum wir im Gegensatz zu semantischen Dateisystemen immer noch hierarchische Dateisysteme haben, ist, dass Hierarchien (Bäume) schneller zu suchen sind als Listen. In einem tagbasierten Dateisystem müssen häufig mehrere Listen durchsucht werden.
Zaz

Antworten:


6

Es ist wahr, dass die Daten der Datei auf dem tatsächlichen Laufwerk "flach" sind. Die meisten (alle?) Modernen Festplatten verfügen über "LBA" (Logical Block Addressing), was bedeutet, dass eine Festplatte selbst für den Kernel eine große Blockreihe darstellt. Die Blöcke, die die Daten einer Datei enthalten, werden möglicherweise unterbrochen, da Inodes usw. in der gesamten Zeile der Plattenblöcke voneinander getrennt sind. "Flat" täuscht also ein bisschen als Beschreibung.

Es ist auch wahr, dass der Teil "Hierarchie" nur eine Fiktion ist: Ordner (besser als "Verzeichnisse" bezeichnet) und ihre Mitgliedschaft erhalten ihre Anordnung vom Kernel, indem sie Dateinamen lesen und Inode-Nummern aus den Daten eines Verzeichnisses abgleichen .

Eine hierarchische Anordnung der Daten ist jedoch sehr nützlich. Bereits 1991 stritten sich die Leute darüber und wurden gründlich widerlegt. Ein besseres Argument finden Sie in Brent Welchs Das Dateisystem gehört zum Kernel, als ich verfassen kann.

Ich bin auch gezwungen festzustellen, dass Microsoft in den letzten 20 Jahren mindestens zweimal ein Dateisystem als Datenbank eingerichtet und beide Male aufgegeben hat , aber vielleicht interpretiere ich das, was Google sagt, falsch.


2

Es gibt FUSE- Dateisysteme, die tag- oder abfragebasierte Ansichten eines vorhandenen hierarchischen Dateisystems bereitstellen, aber keines, von dem ich weiß, dass Sie vollständig in der nicht hierarchischen Ansicht arbeiten können.

Tagfs bietet eine tagbasierte Ansicht, Sie müssen die Tags jedoch manuell einrichten. Gleiches gilt für den reiferen Tagsistant . QueryFS verfügt über einen Proof-of-Concept für den Zugriff auf Dateien über beliebige Datenbankabfragen.

Andere Einträge in der Liste der FUSE-Dateisysteme könnten Sie interessieren. (Warnung: Diese Liste ist weder umfassend noch aktuell.)


1

Das können Sie schon heute: Mehr oder weniger alle Linux-Dateisysteme unterstützen erweiterte Attribute. Sie können EAs für Ihre Tags verwenden. Aber: Wahrscheinlich ist kein Dateisystem für eine so flache Struktur optimiert, daher kann es ziemlich langsam werden. Und natürlich reicht es nicht aus, ein Dateisystem zu haben, das dies unterstützt: Sie benötigen eine Anwendung, die dies ebenfalls unterstützt.

In KDE (und wahrscheinlich auch in anderen Desktop-Umgebungen) können Sie Dateien mit Schlüsselwörtern versehen. Sie scheinen jedoch nicht in EAs gespeichert zu sein. Ich weiß nicht, wie sie das machen, wahrscheinlich mit einem separaten Datenbankmodul, da dies eine klassische Datenbankaufgabe ist.


1

BeOS war eines der vielversprechenderen Experimente in Desktop-Betriebssystemen, obwohl es wirklich keine Unix-Variante war. Oder ein kommerzieller Erfolg. Aber es gab sicherlich einige interessante Ideen, darunter das BeOS-Dateisystem BFS .

BFS hat eine hierarchische Struktur, die organisatorisch sehr nützlich ist, nicht vollständig aufgegeben, sondern durch ein hochflexibles Attributsystem ergänzt, wobei Indizes als B + -Bäume verwaltet werden und Hooks es ermöglichen, Live-Abfragen (dh ständig gepflegte Abfragen) zu definieren. die verwendet werden könnten, um alternative Organisationsstrukturen aufzuerlegen.

Ich denke, es gab BFS-Neuimplementierungen für Linux.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.