Jump to content

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

Псевдоним MacOS
Введите код оставлять
Единый идентификатор типа (UTI) com.apple.alias-файл
Магическое число 'book\0\0\0\0mark\0\0\0\0'
Разработано Эппл, Инк.
Тип формата ярлык

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

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

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

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

[ редактировать ]

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

  • путь
  • идентификатор файла (номер индексного дескриптора)
  • идентификатор каталога (номер индексного дескриптора)
  • имя
  • размер файла

Поскольку любое из этих свойств может измениться без ведома компьютера в результате активности пользователя, для поиска наиболее вероятной цели используются различные алгоритмы поиска. Эта отказоустойчивость отличает псевдоним от аналогичных функций в некоторых других операционных системах, таких как 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. Окна.

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

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

[ редактировать ]

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

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

  1. 4-байтовое имя типа пользователя/код создателя приложения = длинная текстовая строка ASCII (нет = 0)
  2. Размер записи 2 байта = короткая общая длина без знака
  3. Версия записи размером 2 байта = версия короткого целого числа (текущая версия = 2)
  4. 2-байтовый псевдоним вида = короткое целое значение (файл = 0; каталог = 1)
  5. Длина строки имени тома длиной 1 байт = длина беззнакового байта
  6. Строка имени тома длиной 27 байт (если строка имени тома < 27 символов, то дополняется нулями)
  7. Созданный том размером 4 байта Mac-дата = длинное беззнаковое значение в секундах с начала 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 байта (если строка имени файла < 63 символов, то дополняется нулями)
  13. Номер файла длиной 4 байта = длинное беззнаковое значение HFS
  14. Созданный файл размером 4 байта Mac-дата = длинное беззнаковое значение в секундах с начала с 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+ байта = короткий целочисленный тип + длина короткой беззнаковой строки (типы: конец расширенной информации = -1; имя каталога = 0; идентификаторы каталогов = 1; абсолютный путь = 2; имя зоны AppleShare = 3; имя сервера AppleShare = 4; Имя пользователя AppleShare = 5; Имя драйвера = 6; Обновленная информация AppleShare = 9;
  23. строковые данные = шестнадцатеричный дамп
  24. нечетные длины имеют поле нечетной длины строки длиной 1 байт = значение байта установлено в ноль

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

[ редактировать ]

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

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

Код Java для пометки файла псевдонима

// This function checks whether a file matches the alias magic number.
public static boolean checkForMacAliasFile(File inputFile) throws FileNotFoundException, IOException {

    // Only files can be aliases.
    // Do not test directories; they will be false.
    if (inputFile.isFile()) {
        byte[] bookmark = new byte[] {
            0x62, 0x6F, 0x6F, 0x6B, 0x00, 0x00, 0x00, 0x00, 0x6D, 0x61, 0x72, 0x6B, 0x00, 0x00, 0x00, 0x00
        };
        long length = inputFile.length();
        if (length > 16) {
            byte[] result = new byte[16];
            FileInputStream fis = new FileInputStream(inputFile);
            fis.read(result);
            fis.close();
            return Arrays.equals(result, bookmark);
        }
    }

    return false;
}

есть Репозиторий на github с рабочим C++-кодом здесь .

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

[ редактировать ]

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

[ редактировать ]

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

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

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

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

[ редактировать ]

API Alias ​​Manager является частью Carbon , которая позволяет разработчикам создавать псевдонимы и получать доступ к файлу с псевдонимом. [5]

Mac OS X 10.6 представила API закладок для Cocoa как набор методов NSURL и функции для CFURL. [6] [7] В Mac OS X 10.7.3 API был расширен для тестовой среды приложения с помощью закладок с областью безопасности, которые добавляют разрешения безопасности к псевдонимам для каждого приложения или для каждого документа. [8]

В Mac OS X 10.8 API Alias ​​Manager был официально объявлен устаревшим в пользу API закладок. [5]

[ редактировать ]

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

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

  1. ^ «Глава 4 — Менеджер псевдонимов / О менеджере псевдонимов — Стратегии поиска» . Внутри Macintosh : Файлы . Архивировано из оригинала 7 октября 2008 года.
  2. ^ «Некоторая информация о псевдонимах MacOS, собранная из Интернета» . Архивировано из оригинала 20 января 2010 г.
  3. ^ «Почему файлы псевдонимов Finder в последнее время стали такими огромными?» . Сообщества поддержки Apple . Архивировано из оригинала 07 мая 2021 г.
  4. ^ «Дополнительная информация, включая изменения в различных версиях Mac OS» . Архивировано из оригинала 30 апреля 2013 г. Проверено 11 октября 2018 г.
  5. ^ Перейти обратно: а б «Менеджер псевдонимов» . Документация разработчика Apple . Архивировано из оригинала 11 августа 2020 г.
  6. ^ «Примечания к выпуску NSURL и CFURL» . Справочная библиотека Mac OS X. 05.06.2008. Архивировано из оригинала 26 октября 2018 г.
  7. ^ «Руководство по программированию файловой системы» . Библиотека разработчиков Mac OS X. 06.06.2011. Архивировано из оригинала 6 октября 2011 г.
  8. ^ «Подробно о песочнице приложения» . Библиотека разработчиков Mac OS X. 13 сентября 2016 г. Архивировано из оригинала 11 июля 2012 г.
  9. ^ Дэвис, Тос. "getTrueName.c" . Советы по Mac OS X. ИДГ. Архивировано из оригинала 13 ноября 2014 г. Проверено 24 октября 2016 г.
[ редактировать ]


Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 395774a7965c255a9952c4aa68859736__1712772720
URL1:https://arc.ask3.ru/arc/aa/39/36/395774a7965c255a9952c4aa68859736.html
Заголовок, (Title) документа по адресу, URL1:
Alias (Mac OS) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)