Панель инструментов Macintosh

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

В Macintosh Toolbox реализует многие из функций высокого уровня в классическом Mac OS, в том числе набора интерфейсов прикладного программирования для разработки программного обеспечения на платформе. Панель инструментов состоит из ряда «менеджеров», программных компонентов, таких как QuickDraw, отвечающих за рисование экранной графики, и Менеджера меню, которые поддерживают структуры данных, описывающие строку меню. Поскольку исходный Macintosh был разработан без виртуальной памяти или защиты памяти, было важно классифицировать код в соответствии с тем, когда он должен быть загружен в память или сохранен на диске, и как к нему следует обращаться. Панель инструментов состоит из подпрограмм, достаточно важных, чтобы постоянно храниться в памяти и быть доступными с помощью двухбайтовой машинной инструкции ; однако он исключает основные функции «ядра», такие как управление памятью и файловой системой. Обратите внимание, что Toolbox не отображает меню на экране: меню было разработано так, чтобы иметь настраиваемый вид, поэтому код рисования хранился в ресурсе, который мог находиться на диске.

Содержание
  • 1 Пришествие и реализация
    • 1.1 В системах 68k
    • 1.2 В системах PowerPC
  • 2 Функциональность
    • 2.1 Интерфейсы программирования
    • 2.2 Использование при загрузке
  • 3 Наследие
  • 4 См. Также
  • 5 ссылки
  • 6 Внешние ссылки
Пришествие и реализация

В системах 68k

Исходная реализация операционной системы Macintosh семейства Motorola 68000 выполняет системные вызовы, используя механизм обработки исключений недопустимого кода операции этого процессора. Motorola указала, что инструкции, начинающиеся с 1111 и 1010, никогда не будут использоваться в будущих процессорах семейства 68000, тем самым освобождая их для использования операционной системой как таковые. Кроме того, у каждого из них был свой собственный выделенный вектор прерывания, отдельный от универсального обработчика недопустимого кода операции. Как +1111 был зарезервирован для использования со -processors, такие как 68881 FPU, Apple выбрала 1010 ( шестнадцатеричное A) в качестве префикса для операционной системы вызовов. Обработка незаконных инструкций известна как перехват, поэтому эти специальные инструкции были названы A-ловушками. Когда процессор встречает такую ​​инструкцию, он передает управление операционной системе, которая находит соответствующую задачу и выполняет ее. У этого механизма было два преимущества:

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

Система была дополнительно оптимизирована путем выделения некоторых битов инструкции A-trap для хранения параметров наиболее распространенных функций. Например, выделение памяти - очень распространенная задача, поэтому ее следует выражать как можно меньшим количеством байтов кода. Иногда программист хочет очистить блок памяти до нулей, поэтому либо функция распределения должна принимать логический параметр, либо должно быть две функции распределения. Для передачи параметра потребовалась бы дополнительная двухбайтовая инструкция, что было бы неэффективно. Наличие двух функций потребует как минимум четырех дополнительных байтов ОЗУ, используемых для адреса в таблице поиска функций. Наиболее эффективное решение - сопоставить несколько A-ловушек одной и той же подпрограмме, которая затем использует A-ловушку в качестве параметра. Это верно для наиболее часто используемых подпрограмм. Однако Toolbox состоит из менее часто используемых подпрограмм. Toolbox был определен как набор подпрограмм, которые не принимали параметров в A-ловушке и были проиндексированы из таблицы диспетчеризации размером 4 килобайта с 1024 записями. (Машины, поставляемые с ОЗУ менее одного мегабайта, используют одну таблицу из 512 записей, что соответствует таблице диспетчеризации ОС с 256 записями более поздних версий ПЗУ.)

В системах PowerPC

В 1994 году компания Apple выпустила Макинтоши, используя PowerPC архитектуру, которая не хватало аппаратной поддержки для механизма A-ловушки, доступных на 68k системах. Однако из-за их использования при наложении программных исправлений таблицы диспетчеризации были сохранены. Код библиотеки API, лежащий в основе любой подпрограммы Toolbox, не делает ничего, кроме ссылки на таблицу отправки. Таблица отправки связана только с эмулированным кодом семейства 68000. Функции панели инструментов, реализованные в собственном коде PowerPC, должны сначала отключить эмулятор с помощью диспетчера смешанного режима. Ради единообразия и расширяемости новые записи о функциях даже продолжали добавляться в Toolbox после перехода на PowerPC.

Однако альтернативный механизм существовал в диспетчере фрагментов кода, который использовался для загрузки и динамического связывания собственных программ PowerPC. Средство системных вызовов PowerPC, аналогичное механизму A-trap, использовалось для взаимодействия с наноядром Mac OS, которое предлагало несколько сервисов, непосредственно полезных для приложений.

Функциональность

Программные интерфейсы

Панель инструментов состоит из часто используемых функций, но не из наиболее часто используемых. В результате он превратился в мешанину из разных библиотек API. Панель инструментов включает в себя большинство основных функций, которые отличают классическую Mac OS. Ссылки Apple «Inside Macintosh: Macintosh Toolbox Essentials» и «Inside Macintosh: More Macintosh Toolbox», столь же расплывчатые по объему, также документируют большую часть Toolbox.

Использовать при загрузке

Поскольку большая часть Toolbox реализована в ПЗУ, наряду с прошивкой компьютера, его было удобно использовать в качестве среды загрузчика. В сочетании с ресурсами, хранящимися в микросхеме ПЗУ, Toolbox может превращать экран в серый цвет, отображать диалоговое окно с подписью приветствия «Добро пожаловать в Macintosh» и отображать курсор мыши. Используя Toolbox для загрузки машины, рудиментарная среда, подобная Mac, может быть инициализирована еще до загрузки чемодана системы с диска (фактически до того, как были выполнены ПЗУ на картах NuBus), когда принимается решение использовать 24-разрядную или 32-разрядную версию. -битовая адресация должна быть произведена. (Для поддержки 32-разрядной адресации системой 7 требуются 32-разрядные чистые ПЗУ, так как старые ПЗУ Mac не поддерживают это). Необходимость в диагностике, как в резидентном BIOS для плат, совместимых с IBM PC, не требуется, поскольку Macintosh имеет большую часть своей диагностики в POST и автоматически сообщает об ошибках с помощью кодов " Sad Mac ".

Однако сходство между загрузочной средой и реальной операционной системой не следует путать с идентичностью. Хотя процесс загрузки "Classic Mac OS" запутан и в значительной степени недокументирован, он не более ограничен, чем BIOS, совместимый с IBM PC. Подобно основной загрузочной записи ПК, Mac на основе ПЗУ считывает и выполняет код из первых блоков («загрузочных блоков») раздела диска, выбранного в качестве загрузочного устройства. Затем загрузочные блоки проверяют, существует ли подходящая рудиментарная среда, и используют ее для загрузки чемодана системы. Другая операционная система с другой файловой системой может загрузиться, просто используя свой собственный код в загрузочных блоках. Однако эта система не использовалась для PowerPC Linux, потому что Open Firmware в машинах New World ROM требует загрузчика в файловой системе HFS - причина, не имеющая ничего общего с Toolbox или «старомодными» Mac в целом. Более узко, панель управления Startup Disk в классическом Mac OS и MacOS только позволяет пользователю выбрать файсистему с очень конкретными ограничениями.

Наследие

В Mac OS X Toolbox вообще не используется, хотя классическая среда загружает ROM-файл Toolbox на свою виртуальную машину. Большая часть инструментов была реорганизована и реализована в рамках компании Apple Carbon программирования API, позволяющий программистам, знакомые с панели инструментов в порту их программный код более легко Mac OS X.

Смотрите также
Ссылки
  1. ↑ Apple Inc. (6 июля 1996 г.). «Прямые инструкции». Архивировано из оригинала на 2004-07-02. Альтернативный URL
  2. ↑ Apple Inc. (6 июля 1996 г.). «О ловушке». Архивировано из оригинала на 2004-07-02. Альтернативный URL
  3. ^ a b Олсон, Джеймс Х. (4 сентября 1997 г.). «Мак Аламанак II». Linux / m68k для Macintosh.
  4. ↑ Apple Inc. (6 июля 1996 г.). «Загрузочные блоки». Архивировано из оригинала на 2004-03-12. Альтернативный URL
внешние ссылки
Последняя правка сделана 2023-12-31 12:01:25
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте