Jump to content

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

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

Появление и реализация

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

В системах 68k

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

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

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

В системах PowerPC

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

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

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

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

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

Интерфейсы программирования

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

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

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

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

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

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

Наследие

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

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

См. также

[ редактировать ]
  1. ^ Apple Inc. (6 июля 1996 г.). «Инструкции по линии А» . Архивировано из оригинала 2 июля 2004 г. Альтернативный URL
  2. ^ Apple Inc. (6 июля 1996 г.). «О управляющем ловушками» . Архивировано из оригинала 2 июля 2004 г. Альтернативный URL
  3. ^ Jump up to: а б Олсон, Джеймс Х. (4 сентября 1997 г.). «Мак Аламанак II» . Linux/m68k для Macintosh .
  4. ^ Apple Inc. (6 июля 1996 г.). «Загрузочные блоки» . Архивировано из оригинала 12 марта 2004 г. Альтернативный URL
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 03c8cb8352262db2c8b105959668e5ed__1719676320
URL1:https://arc.ask3.ru/arc/aa/03/ed/03c8cb8352262db2c8b105959668e5ed.html
Заголовок, (Title) документа по адресу, URL1:
Macintosh Toolbox - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)