#macos #filesystems #alternate-data-stream #apfs #file-forks
Вопрос:
С версии 8.1 до Mountain Lion (10.8) ОС поддерживала концепцию, называемую «Именованные вилки«. Именованные вилки эквивалентны «Альтернативным потокам данных» в Windows.
В настоящее время в Интернете существует масса путаницы между именованными вилками и вилкой ресурсов и между именованными вилками и расширенными атрибутами. Это временная шкала, показывающая, что все они являются отдельными концепциями:
- 1984 1.0 : MFS : Вилка данных Вилка ресурсов
- 1985 2.1 : HFS : по-прежнему только вилки данных ресурсов
- 1988 8.1 : HFS : добавлена поддержка именованных вилок
- 2005 10.4 Tiger : HFS : Добавлены расширенные атрибуты
- 2013 10.9 Маверики : HFS : Именованные вилки устарели
- 2017 10.13 Высокая Сьерра : APFS
- Во всех версиях ОС и всех файловых системах Apple всегда были вилки данных и вилки ресурсов. В наши дни единственное место, где ОС, похоже, использует вилки ресурсов, — это предоставление папке пользовательского значка. Это создает файл с именем
Iconr
с разветвлением данных нулевой длины и данными изображений в разветвлении ресурсов. Имя файла содержит фактический символ возврата каретки! - Именованные вилки поддерживались в течение 7 лет, прежде чем были введены расширенные атрибуты.
- HFS определенно поддерживал как именованные вилки, так и расширенные атрибуты в течение 8 лет, хотя я не знаю, может ли один файл иметь и то, и другое, или это то же самое, что проявляется как именованные вилки до Mavericks и как расширенные атрибуты с Mavericks.
- Именованные вилки были устаревшими за 4 года до появления APFS.
Именованные вилки никогда особо не использовались. Я написал код, чтобы попытаться вызвать FSCreateFork
файлы и dir. Он всегда завершается с ошибкой -1402 «Параметр имени вилки неисправен», будь то на томе HFS или APFS, независимо от того, запускаю ли я его под Big Sur или Sierra. У меня нет доступа к другим версиям ОС.
Поэтому, поскольку я не могу найти способ проверить это, и поскольку информация в сети путается, я не могу ее погуглить.
Есть ли здесь какие-либо эксперты, которые знают, поддерживает ли APFS именованные вилки?
Ответ №1:
Быстрый тест показывает, что вилки ресурсов работают с Big Sur в APFS, но произвольные именованные вилки, похоже, не работают:
$; Эхо «сведения вилка» > test.txt
$; Эхо «ресурс вилка» > тест.файл txt/..namedfork/РОКК
$; кат test.txt
сведения вилкой
$; кошка теста.файл txt/..namedfork/РОКК
ресурса вилкой
$; Эхо «ресурс вилка» > тест.файл txt/..namedfork/другие
-Баш: тест.файл txt/..namedfork/другое: не каталог
$;
Что еще более важно, в справочнике по файловой системе Apple описываются внутренние структуры APFS, и в нем подробно описываются два флага индекса INODE_HAS_RSRC_FORK
и INODE_NO_RSRC_FORK
. Никаких ссылок на какие-либо другие типы вилок или наименования вилок, поэтому я думаю, что мы можем с уверенностью сказать, что именованные вилки не существуют в APFS.
Комментарии:
1. Быстрый тест не является окончательным, потому что он ведет себя так же, по крайней мере, в отношении Mountain Lion, предполагая, что поддержка была удалена на других более высоких уровнях, чем fs, поскольку она все еще была задокументирована, если только документация не ошибочна. Однако ссылка APFS на внутренние структуры больше поддерживает эту позицию.
2. Я согласен, что быстрый тест не является окончательным. Документ APFS, по крайней мере, поддерживается, поэтому, по-видимому, отражает текущие возможности.