Hi,
Wenn Du das dagegen mit dem FAT-Dateisystem (DOS, Windows) vergleichst, dann sieht das dort etwas anders aus: Dort gibt es sowas wie "hard links" nicht, jede Datei darf nur einmal referenziert werden.
so die Theorie. Tatsächlich ist es auch bei FAT möglich, dass mehrere Verzeichniseinträge auf denselben Cluster (so der FAT-übliche Begriff) verweisen. Das Prinzip der Hardlinks lässt sich dadurch nachbilden.
Allerdings fehlt ein Zähler, der angibt, von wievielen Verzeichniseinträgen ein Cluster referenziert wird. Deswegen ist das Löschen solcher mehrfach referenzierten Dateien problematisch - sie würde schon beim ersten Versuch tatsächlich gelöscht, und weitere noch existierende Verzeichniseinträge würden ins Leere zeigen.
Deswegen gibt es auch keine Möglichkeit, solche Mehrfachreferenzen anzulegen (außer mit einem Disk-Editor von Hand), und wenn welche existieren, wird das bei einer Überprüfung des Datenträgers als Dateisystemfehler gemeldet.
Auf Datenträgern, wo keine Schreibzugriffe vorgesehen sind, wurde das aber früher ab und zu gemacht. Beispielsweise auf Installationsdisketten, die sowieso schreibgeschützt waren.
Alle Metadaten zur Datei werden bereits im Verzeichniseintrag mitgespeichert
Richtig, und das birgt die zusätzliche Problematik, dass Mehrfachverlinkungen -wenn man sie mit Gewalt erzeugt- widersprüchlich sein können, z.B. unterschiedliche Dateigrößen anzeigen.
(Genaugenommen wird bei FAT der erste Block referenziert und alle weiteren Blöcke sind dann über eine Art "Kette", die woanders abgelegt wird, erreichbar.)
Genau, diese Verkettung wird in der File Allocation Table oder kurz FAT abgelegt, die dem Dateisystem seinen Namen gab.
Wenn Du nun aber ein FAT-Dateisystem unter Linux einbindest, dann emuliert der FAT-Dateisystemtreiber unter Linux das INode-Konzept, da die Dateisystemschicht im Linux-Kernel INodes erwartet.
Das ist ein interessantes Detail, danke.
Dies ist nicht nur bei FAT so, es gibt auch noch viele andere Dateisysteme, die das Konzept von Inodes nicht kennen, sondern Dateien irgendwie anders ablegen.
Zum Beispiel ISO9660, das ähnlich aufgebaut ist wie FAT, nur eben ohne FAT - da wird vorausgesetzt, dass eine Datei immer zusammenhängend in aufeinanderfolgenden Sektoren gespeichert ist. Sowas wie Fragmentierung gibt es nicht.
Ciao,
Martin
F: Was macht ein Offizier, der in der Nase bohrt?
A: Er holt das Letzte aus sich heraus.
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(