Псевдоним (Mac OS)

редактировать
Псевдоним Mac OS
Код типа alis
Универсальный идентификатор типа (UTI) com.apple.alias-file
Магическое число 'book \ 0 \ 0 \ 0 \ 0mark \ 0 \ 0 \ 0 \ 0'
РазработаноApple, Inc.
Тип форматаярлык

В классической Mac OS System 7 и новее, а в macOS - псевдоним - это небольшой файл, который представляет другой объект в локальной, удаленной или съемной файловой системе и обеспечивает динамическую ссылку на него; целевой объект может быть перемещен или переименован, и псевдоним по-прежнему будет ссылаться на него (если исходный файл не будет воссоздан; такой псевдоним неоднозначен, и то, как он разрешается, зависит от версии macOS). В Windows «ярлык», файл с расширением.lnk, выполняет аналогичную функцию.

Аналогичен символической ссылке Unix , но с той разницей, что работает, даже если целевой файл перемещается в другое место на том же диске (в данном случае он действует как жесткая ссылка , но источник и цель ссылки могут находиться в разных файловых системах, а целью ссылки может быть каталог). Как потомок BSD, macOS также поддерживает символические (и жесткие) ссылки Unix.

Содержание

  • 1 Функция
  • 2 Предотвращение сбоя псевдонима
  • 3 Отличительные знаки
  • 4 Файловая структура
    • 4.1 Структура записи псевдонима за пределами длины
  • 5 Управление псевдонимами
    • 5.1 Пользователь интерфейс
    • 5.2 API программирования
  • 6 Связь с символическими и жесткими ссылками BSD
  • 7 Ссылки
  • 8 Внешние ссылки

Функция

Псевдоним действует как замещающий для любого объекта в файловой системе, например, документ, приложение, папка, жесткий диск, сетевой ресурс или съемный носитель или принтер. При двойном щелчке компьютер будет действовать так же, как если бы исходный файл был дважды нажат. Аналогично, выбор файла псевдонима в диалоговом окне «Открыть файл» откроет исходный файл. Назначение псевдонима - помочь пользователю управлять большим количеством файлов, предоставляя альтернативные способы доступа к ним без необходимости копировать сами файлы. В то время как типичный псевдоним в классической Mac OS был небольшим, от 1 до 5 КБ, в macOS он может быть довольно большим, более 5 МБ (5000 КБ) для псевдонима папки.

Предотвращение сбоя псевдонима

Псевдоним - это динамическая ссылка на объект. Оригинал можно переместить в другое место в той же файловой системе, не разрывая ссылку. Операционная система хранит несколько частей информации об оригинале в ветке ресурсов файла псевдонима. Примеры информации, используемой для поиска оригинала:

  • path
  • ID файла (номер inode)
  • ID каталога (номер inode)
  • name
  • размер файла

Поскольку любое из этих свойств может изменяться без ведома компьютера, в результате действий пользователя используются различные алгоритмы поиска для поиска наиболее вероятной цели. Эта отказоустойчивость отличает псевдоним от аналогичных функций в некоторых других операционных системах, таких как символическая ссылка Unix или Microsoft Windows ярлык, за счет повышенной сложности и непредсказуемости. Например, приложение может быть перемещено из одного каталога в другой в пределах той же файловой системы, но существующий псевдоним все равно запускает то же приложение при двойном щелчке.

Может возникнуть вопрос, как должен работать псевдоним, если файл перемещается, а затем создается файл с тем же именем, что и исходный перемещенный файл, поскольку псевдоним может использоваться для определения местоположения как исходного имени и новое расположение исходного файла. С символическими ссылками ссылка однозначна (мягкие ссылки относятся к новому файлу, жесткие ссылки - к оригиналу). Однако до Mac OS X 10.2 такой неоднозначный псевдоним постоянно находил исходный перемещенный файл, а не воссозданный файл. В Mac OS X 10.2 и более поздних версиях обнаруживается новый файл, соответствующий поведению символических ссылок [1]. При необходимости приложения macOS могут программно использовать старое поведение.

Псевдонимы аналогичны по работе теням в графической Workplace Shell операционной системы OS / 2.

Отличительные знаки

В системах с 7 по Mac OS 9 псевдонимы визуально выделялись для пользователя тем, что их имена файлов были выделены курсивом. Для поддержки языков без курсива (например, японский ) в Mac OS 8.5 был добавлен другой отличительный знак - значок со стрелкой-псевдонимом - черная стрелка с небольшая белая рамка - аналогичная той, что используется для ярлыков в Microsoft Windows.

В macOS имена файлов псевдонимов не выделяются курсивом, но значок стрелки остается.

Структура файла

Файлы псевдонимов в macOS начинаются с магического числа 62 6F 6F 6B 00 00 00 00 6D 61 72 6B 00 00 00 00, который находится в ASCII bookmark␀␀␀␀(␀, представляющий нулевой символ ).

После магического числа было сообщено, что у псевдонима есть набор записей внутри, каждая запись имеет длину 150 байт и состоит из полей, показанных ниже (все целые числа с прямым порядком байтов). Однако файлы псевдонимов намного больше, чем можно было бы объяснить, и включают другую информацию, по крайней мере, включая значки.

  1. 4 байта имя типа пользователя / код создателя приложения = длинная текстовая строка ASCII (none = 0)
  2. 2 размер записи в байтах = короткая общая длина без знака
  3. 2 байта версия записи = короткая целочисленная версия (текущая версия = 2)
  4. 2 байта псевдоним kind = короткое целое значение (файл = 0; каталог = 1)
  5. 1 байт длина строки имени тома = длина байта без знака
  6. 27 байтов строка имени тома (если строка имени тома < 27 chars then pad with zeros)
  7. 4 байта тома создана mac date = длинное беззнаковое значение в секунд с начала 1904 по 2040 год
  8. 2 байта сигнатуры тома = короткое беззнаковое значение HFS
  9. 2 байта тип тома = короткое целочисленное значение mac os (типы: фиксированный HD = 0; сетевой диск = 1; 400 КБ FD = 2; 800 КБ FD = 3; 1,4 МБ FD = 4; Другой извлекаемый носитель = 5)
  10. 4 байта идентификатор родительского каталога = длинное беззнаковое значение HFS
  11. Длина строки имени файла 1 байт = длина байта без знака
  12. 63 байта файл нет me строка (если строка имени файла < 63 chars then pad with zeros)
  13. 4 байта номер файла = длинное беззнаковое значение HFS
  14. 4 байта файл создан mac date = длинное беззнаковое значение в секундах с начала 1904 по 2040 год
  15. 4 байта имя типа файла = длинная текстовая строка ASCII
  16. 4 байта имя создателя файла = длинная текстовая строка ASCII
  17. 2 байта nlvl From (каталоги от псевдонима до корня) = короткий диапазон целых чисел
  18. 2 байта nlvl To (каталоги от корня до источника) = короткий целочисленный диапазон (если псевдоним на другом томе, то установлен выше на -1)
  19. 4 байта атрибутов тома = длинные шестнадцатеричные флаги
  20. 2 байта тома идентификатор файловой системы = короткое целое значение HFS
  21. 10 байтов зарезервировано = 80-битное значение установлено на ноль
  22. 4+ байта необязательные дополнительные строки данных = короткое целочисленное значение + короткая длина строки без знака (типы: Extended Info End = -1; Имя каталога = 0; ID каталога = 1; Абсолютный путь = 2; Имя зоны AppleShare = 3; Имя сервера AppleShare = 4; Имя пользователя AppleShare = 5; Имя драйвера = 6; Обновленная информация об AppleShare = 9; AppleRemoteAccess dialup info = 10)
  23. строковые данные = шестнадцатеричный дамп
  24. нечетные длины имеют 1 байт нечетной длины строки pad = байтовое значение, установленное на ноль

Структура записи псевдонима вне длины размера

Следующее предназначено для использования с диспетчером ресурсов псевдонима Apple.

  1. 4 байта имя типа ресурса = длинная текстовая строка ASCII
  2. 2 байта ID ресурса = короткое целочисленное значение
  3. 2 байта конца ресурса = короткое значение, установленное на ноль

Код Java для flag an alias file

// Эта функция проверяет, соответствует ли файл магическому номеру псевдонима. public static boolean checkForMacAliasFile (File inputFile) выбрасывает FileNotFoundException, IOException {// Только файлы могут быть псевдонимами. // Не проверять каталоги; они будут ложными. if (inputFile.isFile ()) {byte bookmark = новый байт {0x62, 0x6F, 0x6F, 0x6B, 0x00, 0x00, 0x00, 0x00, 0x6D, 0x61, 0x72, 0x6B, 0x00, 0x00, 0x00, 0x00}; длинная длина = inputFile.length (); if (длина>16) {байт результат = новый байт [16]; FileInputStream fis = новый FileInputStream (inputFile); fis.read (результат); fis.close (); return Arrays.equals (результат, закладка); }} return false; }

Управление псевдонимами

Пользовательский интерфейс

В Системе 7 единственным способом создания псевдонима было выбрать оригинал и выбрать «Создать псевдоним» в меню «Файл». Затем в той же папке будет создан псевдоним с таким же именем и добавленным «псевдонимом». В более поздних версиях стало возможным создавать псевдонимы с помощью перетаскивания, удерживая нажатыми клавиши-модификаторы команд и параметров.

В Mac OS 8.5 добавлена ​​функция повторного подключения псевдонимов, которые были повреждены по той или иной причине (когда простые алгоритмы поиска не смогли найти надежную замену). Это было сделано путем выбора новой цели в стандартном диалоговом окне «Открыть файл».

В Mac OS 8.5 были добавлены параметры для команды -опции перетаскивания объекта в Finder для создания псевдонима в этом месте. Здесь в систему был добавлен курсор-псевдоним. Курсор отражает внешний вид курсора «создать ярлык» в системах Windows.

API программирования

API диспетчера псевдонимов является частью Carbon. Неизвестно, присутствовал ли он в Mac OS Classic.

Mac OS X 10.6 представила некоторые связанные с псевдонимами API для Какао как часть NSURL.

Relation to Символические и жесткие ссылки BSD

Unix и аналогичные операционные системы предоставляют 2 функции, очень похожие на псевдонимы macOS: символические ссылки и жесткие ссылки. При использовании macOS Finder ссылки отображаются и обрабатываются в основном как псевдонимы macOS и даже несут идентичный атрибут «Kind». Однако при использовании командной строки оболочки псевдонимы macOS не распознаются: например, вы не можете использовать команду cd с именем файла псевдонима. Это связано с тем, что псевдоним реализован в виде файла на диске, который должен интерпретироваться API, в то время как ссылки реализованы в файловой системе и, таким образом, работают на любом уровне ОС.

В настоящее время нет предварительно установленной команды для разрешения псевдонима пути к файлу или каталогу, на который он ссылается. Однако в свободно доступной программе на C для выполнения этой задачи используются API Mac Carbon. Учитывая это, такие команды, как cd, могут быть настроены для проверки псевдонимов и обработки их как символических или жестких ссылок.

Ссылки

Внешние ссылки

.

Последняя правка сделана 2021-06-10 23:06:20
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте