Архивы: по дате | по разделам | по авторам

Яблоко на срезе

АрхивМаковое поле (архив)
автор : Олег Свиргстин   24.10.2000

Как устроена классическая операционная система для «Макинтоша» изнутри и чем она отличается от других ОС?

Загрузка

Начнем с самого начала — с загрузки. Исправный «Мак» стартует рявкнув, как хороший автомобиль. Такой вот жизнерадостный всплеск электронных эмоций. Вскоре на экране появляется улыбающийся товарный знак MacOS. Никаких загадочных слов и чисел на черном космическом фоне. Такие крайне интересные для пользователя вещи, как версии и кодовые наименования портов, слотов, BIOS, памяти, драйверов и т.п. не высвечиваются в хаотической спешке, вместо них появляется приветливая мордочка [1] (рис.1). Затем в нижней части экрана выстраиваются иконки — это включаются системные расширения. Загрузка продолжается тридцать-сорок секунд, после чего компьютер готов к работе, а расположение окон на экране точно такое же, в каком мы выключались.


Рисунок 1

Как аборигены обходятся без Autoexec.bat, Config.sys, и страшно сказать, без Registry? Без всех этих очень полезных вещей они обходятся на удивление легко — благодаря непревзойденной изобретательности инженеров и дизайнеров интерфейса.

Так, любой накопитель информации, подключенный к компьютеру, может быть сделан загрузочным. Для этого должно быть выполнено два условия: на этом диске должна быть расположена папка (folder), в которой на одном уровне есть файлы с названиями System, Finder и System Enabler. Системная папка называется System Folder, автоматически выделяется специальной иконкой (улыбающийся «Мак», товарный знак продукта), и, кстати, помещается даже на дискету. Кроме загрузки с дисков, возможна загрузка компьютера и через сеть.

Все, что так или иначе относится к операционной системе, расположено в системной папке. Если на один и тот же логический диск записать две, три или более систем, то при разном «возрасте» запустится наиболее «юная». Есть утилиты, позволяющие выбирать одну из нескольких систем, размещенных на диске., а стандартная контрольная панель Startup Disk (рис. 2) позволяет одним кликом [2] выбрать любой из логических дисков или подключенных накопителей (CD, FireWire-диск, SCSI-накопитель и т. п.) в качестве стартового. Естественно, в другой системе мы окажемся после рестарта.


Рисунок 2

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

Ресурсы

Ресурсы в устройстве MacOS играют настолько важную роль, что сразу после загрузки перейдем к рассказу о них. Они выполняют примерно те же функции, что и их «тезки» в Windows, но есть и отличия. Файл в MacOS состоит из двух частей, которые называют «форками» (forks), то есть «разветвлениями». Одна часть (ресурс-форк) поддерживает определенный формат хранения специфически представленных данных, собственно ресурсов, а вторая (дата-форк, или «форк данных») практически ничем не отличается от обыкновенного файла в обыкновенной операционной системе.

Ресурсы в MacOS выполняют чрезвычайно разнообразные задачи. «Кодовые ресурсы», такие как драйверы, процедуры-определения окон, органов управления, меню, планок меню и т.п. позволяют вместо стандартных элементов пользовательского интерфейса создавать свои, либо изощренные, либо просто выполняющие дополнительные функции. Кодовые ресурсы содержат кусочки исполняемого кода. Правила написания большинства типов «публичных» кодовых ресурсов опубликованы, на что публика откликнулась тысячами произведений. На «старых» «Маках» с процессором 68к исполняемый код программы хранился в ресурсах типа CODE, каждый из которых являлся сегментом, а CODE 0 — таблицей сегментов. Код PowerPC хранится иначе — в «фрагментах» в форке данных, хотя могут храниться и в ресурс-форке. Таким образом, в одном файле может существовать код для разных систем: для 68к (в ресурсах) и для PPC (в дата-форке того же файла).

Есть стандартные ресурсы для хранения бинарных данных, например SND, FONT, FOND, PICT… — их очень много. Есть и «описательные» ресурсы (диалоги, списки элементов диалогов, окна, органы управления и т. п.). Система ресурсов прозрачна, тщательно задокументирована, существуют (в том числе бесплатные и весьма неплохие) графические редакторы ресурсов — в результате число «самодельных» ресурсов (в том числе и кодовых) в MacOS превосходит все мыслимые пределы.

Файл по имени «Система» (System)

Фактически это огромный архив самых разных ресурсов. Ресурс-форк этого файла всегда открыт и доступен любой работающей программе. Так, если программе А с открытым документом Б необходим ресурс типа WDEF с номером 0, поиск начинается с ресурс-форка файла Б. Если там этого ресурса не найдено, поиск продолжается в А, а затем в файле системы. Однако если этот ресурс есть в системе (а WDEF 0 в системе есть, это процедура стандартного маковского окна самого банального типа) и в приложении А или документе Б, то использован будет первый найденный ресурс подобного типа.

Система хранит «заплатки» к коду в ПЗУ, драйверы, шрифты, системные звуки, информацию касающуюся локализации, «ИНИТы», — тысячи и тысячи расфасованных кусочков информации, определяющих поведение и вид операционной системы. Редакторы ресурсов делают все это гигантское многообразие легко доступным рядовому взломщику. Те, кто, «покрутив» «Мак» не влезая в «недра» решил, что это — простой и примитивный компьютер, в корне не правы. И если для кого-то смысл упражнений с компьютером заключается в постановке последнего «на уши», «Макинтош» и бесплатный ResEdit по количеству удовольствия легко переплюнут любую другую машину.


Рисунок 3

Если открыть файл System двойным щелчком, то окажется, что внутри что система похожа на папку с «файлами» — шрифтами, звуками, драйверами, аксессуарами рабочего стола, ресурсами клавиатур и скриптов (рис. 3). Причем компоненты этой «папки» можно удалять или добавлять… перетаскиванием. Иногда это оказывается полезным.

Файл Finder

Это «исполняемый код» системной графической оболочки. Отвечает за запуск программ, копирование/перемещение файлов, папок, изменение внешнего вида. Кроме всего прочего, это еще и приложение в среде MacOS. При необходимости его можно выключить (чтобы обеспечить больше места для выполнения других приложений). Аналогом Finder’а для Windows «свежих» версий (98, 2000) является Explorer.

Меню-яблоко

Во времена первых MacOS меню «Яблоко» использовалось для доступа к «аксессуарам рабочего стола» — микропрограммам типа калькулятора, будильника, «пятнашек» или буфера (clipboard) для промежуточного хранения скопированных данных (в русской версии это буфер назвали «Альбом»). По своей сути эти микропрограммы являлись… драйверами, точнее, извращенными их вариантами — не самый плохой выход в условиях однозадачной операционной системы. Правила написания таких псевдодрайверов были документированы и опубликованы, и, поскольку меню «Яблоко» всегда было под рукой, эти «сопутствующие услуги» были доступны из любой программы..

В этом же меню находился и «Селектор» (Chooser) — утилитка, с помощью которой можно было настроить систему на любой из принтеров, чей драйвер был в системе. Эта утилита до сих пор играет очень важную роль в MacOS, и только с ее помощью можно выбирать сетевые серверы, к которым происходит подключение, и принтеры, на которые будет производиться печать — в отличие от Windows, под MacOS невозможно сменить рабочий принтер из приложения. Но яблочко всегда под рукой…

Позже, в 3-й или 4-й системе, в «яблочном» меню появилась и небольшая утилита Control Panels, представлявшая собой комбинацию из микропанелей, управляющих параметрами системы, правила написания которых и точная спецификация были задокументированы. Начиная с MacOS 7.0 «Пульты» (так Control Panels были названы в первых локализациях операционной системы, выполненной Юрием Шакулой) стали помещаться в специальную папку внутри System Folder и запускаться обычным двойным щелчком, превратившись, по сути, в микроприложения.


Рисунок 4

Во времена системы 5 и 6 многозадачность была факультативным свойством. По выбору пользователя, система могла стартовать после перезагрузки в Finder (однозадачная система) или MultiFinder, однако, начиная с седьмой версии, система стала исключительно многозадачной, и необходимость в микропрограммах отпала. В меню «Яблоко» появились новые элементы и возможности, а в System Folder появилась папка с названием «элементы меню Яблоко». Все, что расположено в этой папке, с отображением вложенных папок в виде меню более глубокого уровня, будь это контрольная панель, аксессуар, программа, документ или ссылка на программу или документ, отображается в меню Яблоко. Именно концепция «яблочного» меню была использована Microsoft при создании в Windows 95 кнопки-меню «Start» (рис. 4).


[1] - Я и раньше отмечал, что с точки зрения психологии разработчикам MacOS равных нет — вместо мании величия Windows, подавляющей пользователей при загрузке полноэкранным изображением собственного логотипа, «Макинтош» стартует с крохотной улыбчивой иконки — ей-ей, вспоминаются разные тамагочи. — Сергей Scout Кащавцев.
[обратно к тексту]

[2] - Еще одна особенность маковского интерфейса, непривычная для пользователей PC, заключена в том, что большинство системных изменений не требуют дополнительного подтверждения нажатием кнопок «Ok» или «Enter». — Сергей Scout Кащавцев.
[обратно к тексту]

© ООО "Компьютерра-Онлайн", 1997-2021
При цитировании и использовании любых материалов ссылка на "Компьютерру" обязательна.