2010-12-11 6 views
5

Kennt jemand einen? vorzugsweise mit Linux-Implementierung?Dateisysteme mit Unterstützung für Verzeichnis Hard-Linking

Alternativ weiß jemand, wie viel Aufwand es in jeder Open-Source-Implementierung hinzufügen würde? (ich meine: vielleicht ist es genug, um eine if-Aussage zu ändern, vielleicht muss ich vorsichtig gehen, wenn die ganze fs-Implementierung Tests hinzufügt; hast du diesen Begriff?).

Dank ....

+0

Aus Neugier: Warum brauchen Sie das? –

+0

Denken Sie an ein eingebettetes System mit zu vielen Ressourcenbeschränkungen, die sich ein dbms nicht leisten könnten. Datenkonsistenz – ribamar

Antwort

2

nichts Technisch Sie das Öffnen/dev/sda mit einem Hex-Editor ein und die Schaffung hält. Aber alles andere in Ihrem System wird auseinander fallen, wenn Sie es tun.

Die beste Erklärung i ist dieses Zitat von jta finden konnte:

User-added harte Links auf Verzeichnisse verboten sind, weil sie die gerichtete azyklische Graphenstruktur von das Dateisystem (das ist ein ASSERT einbrechen Unixiana, grob), und weil sie die Hölle aus Datei-Baum-Wanderer verwechseln (ein Begriff Multicians auf Sicht erkennen, aber Unix Freaks können sich wahrscheinlich ohne Probleme herauszufinden, zu .

+0

Diese Antwort antwortet nicht genau, ist aber hilfreich in dem Sinne, dass das Problem im Kernel und nicht in den fs-Implementierungen liegt (ich war verdächtig, dass es einfach keine fs-Implementierungen gab, die Dir Hard Links in Linux handhaben, nicht, dass der Kernel es "verbietet". Wäre es jedoch einfach oder zu komplex, die Kernel-Implementierung zu ändern, um zu verhindern, dass "sonst alles in Ihrem System auseinanderfällt"? – ribamar

+2

Martin hat Recht. Es ist nicht nur der Kernel, der es nicht mag, Userspace-Tools gehen auch davon aus, dass das Dateisystem ein gerichteter Acylic-Graph ist. Der Kernel erzwingt die Beschränkung. – mark4o

+1

Das Vorhandensein von Verzeichnis-Hardlinks alleine bricht die DAG-Eigenschaft nicht - nur wenn Sie einen Zyklus erstellen, wird dies zu einem Problem. – caf

4

HFS + ermöglicht Verzeichnis-Hardlinks in OSX 10.5. Nur TimeMachine kann sie seit OSX 10.6 erstellen, und HFS + prüft, ob sie keine Zyklen einführen.

Allerdings Linux will not read them. Neben Dateisystemen könnte dies auf der VFS-Ebene erzwungen werden. Auch wenn es keine Zyklen gibt, verlassen sich manche Userspace-Tools auf keine festen Hardlinks (zB eine GNU-Find-Optimierung, die viele Verzeichnisse überspringen lässt; sie kann mit -noleaf deaktiviert werden).