Я думаю, что существует некоторая общая путаница в отношении между всеми четырьмя из этих предметов, разбросанных по сети. Я хотел уладить это.
- Являются ли именованные вилки такими же, как расширенные атрибуты ? Если нет, то каковы расширенные атрибуты?
- Является ли вилка ресурсов все еще реализованы в виде вилки или в качестве расширенного атрибута ? Если это реализовано как-то иначе, то как?
- Метаданные хранятся с файлом (создателем, датой изменения ...) есть какое - либо отношение или перекрытие в терминологии между тремя другими упомянутым в тексте. Примером могут служить расширенные атрибуты, просто дополнительные пары метаданных (ключ + значение), хранящиеся в файле.
Любые ответы, которые могут прояснить, как все четыре из них взаимосвязаны, особенно в отношении трех вопросов, будут высоко оценены, и будут способствовать урегулированию споров, которые я вижу, возникающих между различными ресурсами.
metadata
hfs
resources
extended-attributes
terminology
rubixibuc
источник
источник
Ответы:
Путаница возникает из-за того, что отношения между этими понятиями сложны и со временем изменились. В современных системах различие между именованным ответвлением и расширенным атрибутом является в значительной степени академическим.
Для расширенного атрибута фактические данные сохраняются в записи данных атрибута.
Для форка хранится список блоков выделения диска, которые содержат данные. Ресурсная вилка все еще является форком.
Основные метаданные файловой системы хранятся в отдельных элементах самой записи файловой системы, независимо от атрибутов и именованных ссылок на ветвления.
источник
com.apple.FinderInfo
может показаться , в качестве расширенного атрибута Extended Finder Info (обычноdate_added
,extended_flags
плюс три зарезервированных полей) не является не расширенный атрибут.Я не эксперт в этом, но я прочитал немного, чтобы попытаться понять, что происходит.
Я бы сказал, «Путаница возникает из-за того, что:
AIUI, файл каталога HFS + содержит записи файла каталога (среди прочего). Запись файла каталога содержит обычную информацию о файле, такую как дата создания, дата доступа и т. Д. Запись файла каталога также содержит две структуры, которые предоставляют информацию о местоположении и размере ветвления данных и ветвления ресурса.
AIUI, HFS + также имеет (скопировано из Википедии HFS +) «Файл атрибутов [который] является новым B-деревом в HFS Plus, который не имеет соответствующей структуры в HFS. Файл атрибутов может хранить три различных типа записей по 4 КБ: Встроенные записи атрибутов данных, записи атрибутов данных вилки и записи атрибутов расширения. Встроенные записи атрибутов данных хранят небольшие атрибуты, которые могут поместиться в самой записи. Записи атрибутов данных вилки содержат ссылки максимум на восемь экстентов, которые могут содержать более крупные атрибуты. используется для расширения записи атрибута данных Fork, когда его восемь записей экстента уже используются. "
AIUI, данные, хранящиеся в (или на которые ссылаются) файле атрибутов (будь то встроенные, форковые данные или атрибуты расширения), называются расширенными атрибутами.
Это структуры данных, так как они используются?
AIUI, ранние версии операционной системы (возможно, версии до 10.4 Tiger, которые, по- видимому, указывает Джон Сиракуза , имел некоторые существенные изменения в этой области), указывал на ветвь данных и ветвь ресурсов из файла каталога.
AIUI, как только мы доберемся до 10.4 Tiger, файл атрибутов станет широко использоваться для хранения всех видов данных.
Возможно (но я не знаю), что в 10.4 и позже любые Ресурсные Форки указываются из Файла Атрибутов. То есть, отвечая на ваш первый вопрос, я бы сказал, что именованные вилки - это расширенные атрибуты, если они не являются вилкой ресурсов, а ссылка на вилку ресурса указана из файла каталога.
Проблема в знании того, как все реализовано, заключается в том, что для сохранения обратной совместимости и, возможно, особенно для поддержки доступа к файловым системам, написанным одной версией Mac OS из другой версии, необходимо прозрачно поддерживать разные вещи и их комбинации.
Мы не можем сказать из обычных инструментов командной строки терминала, где на самом деле хранятся данные.
Таким образом, доступ к
rsrc
может означать, что к ресурсной вилке в файле каталога осуществляется доступ.Тем не менее, мы знаем , что , хотя синтаксис выглядит как файл ниже
Icon^M
каталога осуществляется доступ, это не совсем так, потому чтопоэтому Apple реализовала специальный кейс для Resource Forks.
Если вместо этого мы делаем
Это говорит о том, что мы обращаемся к файлу атрибутов. Но опять же, реализация
ls
может иметь особый случай для Resource Forks.Джон Сиракуза указывает здесь, что списки ACL хранятся как «Расширенные атрибуты», но специально замаскированы, поэтому они не отображаются в
xattr
. Итак, опять же, в реализации xattr есть особая обработка.(Обратите внимание, что эта особая обработка может происходить в коде инструмента или в коде базовых API, к которым инструменты получают доступ.)
GregW, если вы видите это, было бы неплохо получить более экспертное мнение относительно того, нахожусь ли я в правильном направлении, или просто безнадежно запутался.
источник