Ich bin kein Experte in diesem Bereich, aber ich habe ein wenig gelesen, um zu verstehen, was los ist.
Ich würde sagen "Verwirrung entsteht durch die Tatsache, dass:
- Die Beziehung zwischen diesen Konzepten ist komplex und
- hat sich im Laufe der Zeit geändert und
- Apple hat sowohl APIs auf Programmebene als auch Tools wie ls oder cp implementiert, um viele der Unterschiede zwischen den Konzepten zu verbergen. "
AIUI, die HFS + -Katalogdatei enthält unter anderem Katalogdatensätze. Der Katalogdateidatensatz enthält die normalen Informationen zu der Datei, z. B. Erstellungsdatum, Zugriffsdatum usw. Der Katalogdateidatensatz enthält außerdem zwei Strukturen, die Informationen zum Speicherort und zur Größe des Datengabels und des Ressourcengabels enthalten.
AIUI, HFS + hat auch (kopiert von Wikipedia HFS +) eine "Attributdatei [die] ein neuer B-Baum in HFS Plus ist, der keine entsprechende Struktur in HFS hat. Die Attributdatei kann drei verschiedene Arten von 4-KB-Datensätzen speichern: Inline-Datenattribut-Datensätze, Fork-Datenattribut-Datensätze und Erweiterungsattribut-Datensätze. Inline-Datenattribut-Datensätze speichern kleine Attribute, die in den Datensatz selbst passen. Fork-Datenattribut-Datensätze enthalten Verweise auf maximal acht Bereiche, die größere Attribute enthalten können. Erweiterungsattribute sind wird verwendet, um einen Fork Data Attribute-Datensatz zu erweitern, wenn seine acht Extent-Datensätze bereits verwendet werden. "
AIUI, die Daten, die in der Attributdatei gespeichert sind (oder aus dieser referenziert werden) (ob Inline-, Fork-Daten- oder Erweiterungsattribute), werden als erweiterte Attribute bezeichnet.
Das sind die Datenstrukturen. Wie werden sie verwendet?
AIUI, frühere Versionen des Betriebssystems (möglicherweise Versionen vor 10.4 Tiger, auf die John Siracusa anscheinend einige wesentliche Änderungen in diesem Bereich hingewiesen hat), verwiesen auf die Datengabelung und die Ressourcengabelung aus der Katalogdatei.
AIUI, sobald wir 10.4 Tiger erreicht haben, wird die Attributdatei häufig zum Speichern aller Arten von Daten verwendet.
Es ist möglich (aber ich weiß nicht), dass in 10.4 und danach auf Ressourcengabeln aus der Attributdatei verwiesen wird. Das heißt, als Antwort auf Ihre erste Frage würde ich sagen, dass benannte Gabeln erweiterte Attribute sind, es sei denn, es handelt sich um die Ressourcengabel, und auf die Ressourcengabel wird aus der Katalogdatei verwiesen.
Das Problem beim Wissen, wie Dinge implementiert werden, besteht darin, dass zur Wahrung der Abwärtskompatibilität und wahrscheinlich insbesondere zur Unterstützung des Zugriffs auf Dateisysteme, die von einer Version von Mac OS aus einer anderen Version geschrieben wurden, verschiedene Dinge und Mischungen von Dingen transparent unterstützt werden müssen.
An den normalen Terminal-Befehlszeilentools können wir nicht erkennen, wo tatsächlich Daten gespeichert sind.
Der Zugriff auf rsrc
könnte also darauf hindeuten, dass auf die Ressourcengabel in der Katalogdatei zugegriffen wird.
$ ls -l Icon^M/rsrc
-rwxr-xr-x 1 root admin 486 23 Jul 2004 Icon?/rsrc
Wir wissen jedoch, dass die Syntax zwar so aussieht, als würde auf eine Datei unterhalb des Icon^M
Verzeichnisses zugegriffen, dies jedoch nicht wirklich der Fall ist, da
$ ls -lR Icon^M
-rwxr-xr-x@ 1 root admin 0 23 Jul 2004 Icon?
Deshalb hat Apple einen Sonderfall für Resource Forks implementiert.
Wenn wir es stattdessen tun
$ ls -l@
-rwxr-xr-x@ 1 root admin 0 23 Jul 2004 Icon?
com.apple.FinderInfo 32
com.apple.ResourceFork 486
Dies deutet darauf hin, dass wir auf die Attributdatei zugreifen. Aber auch hier kann die Implementierung von ls
einen Sonderfall für Resource Forks haben.
John Siracusa weist hier darauf hin, dass die ACL-Listen als 'Erweiterte Attribute' gespeichert sind, aber speziell ausgeblendet sind, damit sie nicht angezeigt werden xattr
. Es gibt also wieder eine Sonderfallverarbeitung bei der Implementierung von xattr.
(Beachten Sie, dass sich diese Sonderfallverarbeitung möglicherweise im Code des Tools oder im Code der zugrunde liegenden APIs befindet, auf die die Tools zugreifen.)
GregW, wenn Sie das sehen, wäre es schön, eine Expertenmeinung darüber zu bekommen, ob ich in der richtigen Richtung bin oder nur hoffnungslos verwirrt.