Jump to content

Расширение (Mac OS)

В классической Mac OS (первоначальная Apple операционная система Macintosh ) расширения представляли собой небольшие фрагменты кода, расширявшие функциональность системы. Первоначально они запускались во время запуска и управлялись различными механизмами, включая исправление ловушек и другие методы изменения кода. Первоначально разработанные разработчиками Apple, расширения стали стандартным способом создания модульной операционной системы. Большое количество важных системных служб, таких как сетевые стеки TCP/IP (MacTCP и Open Transport), а также поддержка USB и FireWire, были дополнительными компонентами, реализованными как расширения. Позже фраза «расширение системы» стала охватывать безликие фоновые приложения и .

Расширения обычно выполняли ту же роль, что и или DOS программы завершения и пребывания в демоны , Unix резидентные хотя, исправляя базовый код ОС, они имели возможность изменять существующее поведение ОС, а два других - нет. [ сомнительно обсудить ]

Механизм ИНИТ

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

Понятие расширений не присутствовало в исходном системном программном обеспечении Macintosh, но система, тем не менее, имела частный механизм исправлений, которым вскоре научились пользоваться разработчики — загрузчик INIT. Этот код будет искать системные ресурсы типа «INIT», загружать и запускать их во время загрузки. Ресурсы кода должны были храниться непосредственно в System Mac ответвлении ресурсов чемодана , а это означало, что они были действительно доступны только «опытным пользователям», которым было бы удобно использовать ResEdit или другой редактор ресурсов.

Поскольку использование этого механизма было неподдерживаемым взломом и таким способом можно было загрузить только 32 INIT, Apple в ответ предоставила более управляемое решение. Первоначально это само по себе было в форме ресурса «INIT» с идентификатором 31, помещенного в системный файл, который будет искать дополнительные файлы типа «INIT» в системной папке , а также загружать и запускать ресурсы INIT внутри них. (Вот почему некоторые опытные программисты Mac до сих пор называют механизм загрузки расширений «трюком INIT 31». [1] INIT теперь можно было установить, просто поместив файл в системную папку, что вполне доступно обычному пользователю. Начиная с System 7, расширения для удобства были перемещены в папку «Расширения» внутри системной папки, а также был реализован механизм автоматической маршрутизации, так что размещение расширения в системной папке путем перетаскивания фактически помещало файл в соответствующую подпапку.

Расширения сохраняли тип ресурса «INIT» на протяжении всего своего существования, а загрузчик постепенно совершенствовался для поиска этих ресурсов во многих местах, в том числе в вилках ресурсов панелей управления в различных форматах и ​​Chooser .

Расширения

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

INIT превратились в системные расширения, получив дополнительные специальные попутно протоколы, такие как предоставление значка, отображаемого во время загрузки (происхождение этого было «ShowINIT»). «Парад кусочков головоломки и значков» на экране при загрузке каждого расширения стал знаком всем пользователям Mac. Сама Apple в конечном итоге выпустила основные (но необязательные) части операционной системы в виде расширений, таких как QuickTime , QuickDraw 3D и многие другие. Значительное количество служб и драйверов в Mac OS — как официальных, так и сторонних — предоставлялось в виде расширений, что позволяло сократить работу ОС путем их отключения.

Системные расширения были частым источником нестабильности на Macintosh, поскольку сторонний код имел разное качество и часто исправлял систему способами, которые не всегда работали правильно. Некоторые расширения не работали вместе должным образом или работали только при загрузке в определенном порядке. Кроме того, разные расширения могут попытаться исправить одну и ту же часть системы, что может привести к конфликтам расширений и другой нестабильности. Отслеживание этих источников проблем было еще одной задачей, с которой в какой-то момент сталкивалось большинство пользователей Mac. Устранение неполадок расширений Mac OS может оказаться трудоемким процессом, состоящим из проб и ошибок .

Самый простой способ чистой загрузки операционной системы — удерживать клавишу Shift: загрузка расширений будет пропущена. В Системе 7.5 добавлен Менеджер расширений , который позволял пользователю быстро включать или отключать отдельные расширения, а также определять их наборы, которые будут корректно работать вместе. Extensions Manager поставлялся с двумя базовыми наборами, доступными только для чтения: один содержал подмножество расширений, необходимых для базовой работы ОС, а другой включал все официальные расширения, поставляемые с ОС, но отключал все сторонние расширения.

Порядок загрузки расширений был побочным эффектом функции GetFInfo, которая использовалась загрузчиком для перечисления файлов в папке «Расширения». Хотя Apple всегда заявляла, что порядок перечисления файлов с использованием этой функции не определен, на томах HFS эта функция перечисляет файлы в порядке, хранящемся в каталоге HFS. Люди поняли, что изменение первого символа в имени файла может изменить порядок загрузки расширений, что вызвало проблемы при переходе Mac OS 8.1 на HFS+. В итоге Apple пришлось изменить загрузчик, чтобы сортировать имена файлов, возвращаемые этой функцией, в таблицу, и предоставила интерфейс, позволяющий программному обеспечению изменять таблицу. [2]

Панели настройки и управления

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

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

В System 7 панели управления становятся отдельными плагинами Finder на диске, которые может запускать пользователь. Вставив код INIT в панель управления, стало возможным создавать гибриды расширения и панели управления, которые модифицировали операционную систему во время загрузки и содержали собственный встроенный интерфейс конфигурации в той же форме, что и любая другая панель управления операционной системой.

Безликие фоновые приложения

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

MultiFinder и System 7 и более поздние версии поддерживали безликие фоновые приложения, подобные демонам UNIX или службам Windows , но с использованием совместной многозадачности . Примеры включают синхронизатор времени ( переход на летнее время и удаленную синхронизацию времени), планировщик обновлений программного обеспечения и действия с папками (обработка событий папки). Безликие фоновые приложения представляли собой обычные приложения с тем ограничением, что они не отображались в меню приложений. Единственные технические различия между безликим фоновым приложением и обычным приложением заключались в том, что в разделе ' SIZE'ресурс. Им было запрещено открывать обычное окно уровня приложения: если бы они это сделали, система зависала бы.

Однако они могли свободно открывать глобальные плавающие окна, поскольку они не могли ни получить, ни потерять фокус. Полоса управления в Mac OS 8 и 9 была примером безликого фонового приложения, которое отображало глобальное плавающее окно для обеспечения взаимодействия с пользователем. Переключатель приложений был еще одним. Однако пользователь никогда не знал, что Control Strip — это работающий процесс; это было просто представлено как дополнительная функция интерфейса. Система просто описывала безликие фоновые приложения как «системные приложения». [ нужна ссылка ]

Языковые функции в открытой архитектуре сценариев (и, следовательно, AppleScript ) изначально были реализованы как динамически загружаемые плагины, известные как «дополнения сценариев» или OSAX. В Mac OS 8 и 9 они были дополнены безликими фоновыми приложениями, которые загружались в фоновом режиме по требованию. Как и в случае с обычными приложениями, доступ к этим приложениям осуществлялся с помощью tell предложения: глобальное пространство имен не обновлялось, как в случае с OSAX. Операционная система не указывала на запуск таких процессов и не указывала, запущены они или нет.

Другие расширения, не относящиеся к INIT

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

Расширения типа INIT загружались во время загрузки для обновления операционной системы. Как ни странно, в папку «Расширения» можно было поместить и другие файлы, многие из которых не загружались во время загрузки. Наиболее примечательными из них были общие библиотеки , которые для удобства поиска обычно помещались в папку «Расширения». Общие библиотеки не загружались во время загрузки.

Файлы типа INIT были не единственным типом системных расширений. Другим типом было scri или расширение WorldScript. Загрузчик BootX Linux был реализован как scri просто потому, что такие файлы загружались очень рано в процессе загрузки, до всех других расширений. Затем BootX может отобразить диалоговое окно, предлагающее пользователю завершить загрузку Mac OS или вместо этого загрузить Linux.

См. также

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