— Скажите, а что нового в Mac OS X?

— Ну, во-первых, новый интерфейс — Aqua...

Нет, позвольте не согласиться. Aqua — не во-первых и даже не во-вторых. Если бы дело ограничивалось новым интерфейсом да рядом очередных программ, Mac OS X не привлекла бы столько внимания как со стороны пользователей, так и со стороны разработчиков ПО, системных администраторов, Web-мастеров.

Интерес к Mac OS X, проявленный чуть ли не всем компьютерным сообществом, отнюдь не случаен. Интрига заключается в ее архитектуре — внутреннем строении. Почему интрига? А как еще можно назвать тот факт, что ядром новой операционной системы для платформы Apple служит... UNIX-система?

Дарвин и Сообщество открытых исходных текстов

Так называемое ядро составляет основу любой операционной системы, это — святая святых, компонент, ответственный за организацию работы аппаратных средств, файловой системы, базовых систем ввода-вывода, обеспечивающий на самом низком уровне работу приложений (например, выделяющий им память). Ядро Mac OS X, которому разработчики дали название Дарвин (Darwin), представляет собой одну из версий UNIX, приспособленную для работы на аппаратной платформе Apple — процессорах PowerPC G3, G4 и некоторых системах на PowerPC 604.

Более того, разработка Дарвина производилась в рамках так называемого Сообщества открытых исходных кодов (Open Source Community). Де-юре просто: исходные коды ядра системы доступны любому разработчику. Де-факто это означает принципиально отличную от стандартной философию программирования, когда продукт строится «снизу вверх», начинаясь с небольших, малофункциональных, но работающих модулей, которые постепенно «обрастают» все большим количеством функций. Идеи сообщества программистов суммируются, анализируются, и из них выстраивается готовый продукт (более подробно о «восходящем» программировании см. «Мир ПК», №1/01, с. 62). Создатель UNIX Кен Томпсон называл такой метод программирования «компьютерным дарвинизмом». Вероятнее всего, именно поэтому ядро Mac OS X получило название Дарвин.

Архитектура Mac OS X

Итак, для разработки ядра новой операционной системы Apple использовала технологию открытых текстов, взяв за основу открытую версию операционной системы UNIX — BSD 4.4 и создав новое микроядро (kernel) — Mach 3.0 (предыдущие версии Mach служили микроядром для многих ОС клона UNIX; первоначально ядро Mach было разработано в Университете Carnegie-Mellon при непосредственном участии Авадиса Тавеняна, занимающего сейчас пост вице-президента компании Apple по программному обеспечению).

Давайте посмотрим, каковы возможности Дарвина и какие преимущества дает использование UNIX-ядра BSD.

Начнем с самых «глубинных» новинок. Прежде всего нужно сказать о том, что Дарвин обеспечивает защиту памяти. Именно этот механизм позволяет Apple говорить о небывалой надежности новой ОС.

Одной из основных функций операционной системы, точнее ее ядра, является распределение памяти между приложениями. Дело это очень непростое и ответственное, так как если приложение попытается записать что-либо в область памяти, отведенную другому приложению или самой операционной системе, крах ее («зависание») практически неизбежен. Защитой памяти и называют предотвращение подобных случаев. Дарвин выделяет каждому приложению свою область памяти и строго охраняет ее границы. Даже если приложение по каким-то внутренним причинам «зависнет», Дарвин просто очистит соответствующую область памяти, не затронув систему и другие работающие приложения. Сбой приложения почти никогда не приводит к сбою всей системы.

Еще одним интересным механизмом ядра Дарвин является механизм приоритетной, или вытесняющей, многозадачности (preemptive multitasking), обеспечивающей надежность одновременной работы нескольких приложений.

Каждое приложение, работающее в данный момент времени, требует не только определенного количества оперативной памяти, но и ресурсов процессора — процессорного времени. Предыдущие версии Mac OS поддерживали лишь один способ распределения ресурсов процессора между задачами — так называемую кооперативную (совместную) многозадачность (cooperative multitasking), при которой задача, получившая доступ к процессору, занимает его до тех пор, пока поток команд от нее непрерывен. Если задача на время освобождает процессор, тогда его ресурсы немедленно передаются другой. При таком подходе одна задача, как правило, получает большую часть процессорного времени, в то время как другим его может сильно не хватать.

Новый (для Mac OS) способ распределения ресурсов процессора позволяет избежать «притеснения» одних приложений другими. Дарвин по целому ряду критериев, таких как активность приложения, его требования к ресурсам процессора и т.п., определяет приоритет каждой задачи и принудительно распределяет процессорное время в соответствии с этими приоритетами. Это позволяет также избежать простоев процессора.

Помимо нового типа многозадачности, Mac OS X поддерживает также и многопроцессорность. Ряд факторов, и в первую очередь низкие темпы развития процессорной базы, побудили Apple искать средства увеличения производительности своих машин. Одним из решений стало использование систем с несколькими (обычно двумя) процессорами. Такие компьютеры (например, Power Mac G4-500 DP) уже появились в продаже, однако под управлением Mac OS 9 и более ранних версий наличие второго процессора не сильно увеличивает производительность — эти операционные системы не умеют корректно распределять нагрузку (см. статью Стефана Сомогая «Новый Power Macintosh: два в одном» — «Мир ПК», №12/2000, с. 72). Разумеется, Apple не могла оставить ситуацию в таком виде. Новая Mac OS X поддерживает многопроцессорные системы, обеспечивая распределение нагрузки между процессорами оптимальным образом. Надо, однако, отметить, что это хотя и необходимо для использования всего потенциала многопроцессорных систем, но далеко не достаточно, так как и сами приложения должны поддерживать многопроцессорность.

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

Будучи основанным на BSD UNIX, Дарвин поддерживает всю «внутреннюю кухню» BSD: в него включена полная поддержка стандарта POSEX, что дает возможность исполнять любые UNIX-приложения, совместимые с этим стандартом; используется UNIX-модель процессов (идентификаторы процессов, сигналы и проч.); поддерживаются потоки (или нити — threads) UNIX, что позволяет назвать Mac OS X не только многозадачной, но и многопотоковой системой, в которой каждое приложение имеет ряд параллельно выполняемых задач. (Более подробно о тонкостях организации UNIX-систем см. серию публикаций Виктора Хименко о системе Linux — «Мир ПК», № 2/2000, с. 64; № 3/2000, с. 50; № 5/2000, с. 42; № 6/2000, с. 54.) Кроме того, в Дарвине применяется политика безопасности UNIX (идентификаторы пользователя, полномочия, атрибуты и т. п.), но об этом — чуть ниже.

Дарвин обеспечивает также функционирование файловой системы компьютера. Он поддерживает три основных файловых системы (более корректно следовало бы говорить о «форматах томов» — volume formats, но для нас это несущественно):

  • HFS (Hierarchical File System, иерархическая файловая система). В этой файловой системе каждый файл состоит из двух раздельных частей — форков (forks). Один форк содержит ресурсы файла и различную служебную информацию о нем, а другой — собственно данные. Также каждый файл имеет целый ряд атрибутов, таких как разрешения на чтение/запись/выполнение и коды, определяющие тип файла, его владельца и т. п.
  • HFS+. Используется во всех версиях Mac OS начиная с 8.1. Ее основное отличие от HFS схоже с отличием FAT32 от FAT16 — она позволяет оптимизировать размещение данных на жестких дисках больших емкостей за счет снижения минимального объема дискового пространства, отводимого под один файл.
  • UFS. Дарвин, являясь версией BSD UNIX, поддерживает ее файловую систему (UFS, Unix File System), что, помимо прочего, означает первый шаг в сторону отказа от форков, который планирует Apple. В UFS форки не используются.

Кроме того, Дарвин поддерживает такие форматы, как ISO-9660 — стандартный формат записи CD-ROM, и UDF (Universal Disk Format) — формат CD-RW и DVD-дисков. Работу с файлами в локальных сетях обеспечивают два сетевых файловых формата: AFP (Apple File Protocol), основной формат сетей Macintosh, и NFS (Network File Service) — формат сетей UNIX.

Конечно, этим возможности Дарвина не исчерпываются. Во-первых, есть еще много интересных деталей и функций, которых мы не коснулись (главным образом в силу их технической сложности и специфичности). А во-вторых, его разработка не завершена, и перспектива, которую заявляет Apple, в совокупности с технологией «восходящего» программирования, весьма заманчива (см. врезку «Эволюция Дарвина»).

Система отображения информации

Второй компонент Mac OS X, о котором мы поговорим, включает в себя средства формирования и отображения графической и текстовой информации на экране компьютера и принтере.

Графическая система Mac OS X основана на трех графических технологиях, обеспечивающих работу с двух- и трехмерной графикой. Следует также отметить, что все описанные ниже графические технологии поддерживают так называемый Velocity Engine — модуль процессоров G4, обеспечивающий аппаратную работу с векторной графикой.

Quartz. Этот компонент отвечает за вывод двухмерной графической информации. С помощью Quartz осуществляется управление цветностью и разрешением (стандартными являются разрешение 1024x768 точек при глубине цветности 16 бит), а также сглаживание (anti-aliasing). Quartz обеспечивает такие графические механизмы, как 2D-ускорение и доступ к кадровому видеобуферу (video frame buffer access).

В основе Quartz лежит технология PDF (Portable Document Format, переносной формат документов), разработанная и широко применяемая компанией Adobe Systems. Принципиальным преимуществом этого формата является независимость от аппаратной и программной платформ, а также поддержка (точнее, использование) всех поколений языка PostScript, что позволяет без особого труда работать с PostScript-принтерами (подробнее о формате PDF см. врезку «Portable Document Format компании Adobe Systems», а также информацию на www.adobe.com).

Двухуровневая архитектура типа клиент—сервер, реализованная в Quartz, позволяет осуществлять гибкую и скоростную работу приложений с графикой. Низший уровень (базовые графические сервисы, Core Graphics Services) обеспечивает серверные функции управления окнами, поддержки событий и проч. для приложений-клиентов, которые и занимаются непосредственно отображением (rendering) графической информации. Quartz имеет собственное приложение-клиент для отображения двухмерных объектов (базовое графическое отображение, Core Graphics Rendering), основными функциями которого являются:

  • отображение информации на экране;
  • создание PDF-кода и его преобразование в код принтера (растровый или PostScript);
  • автоматическое создание «миниатюр» (thumbnails) изображений (например, при отображении графических файлов в окне папки).

Помимо встроенного в Quartz клиента отображения, Mac OS X предоставляет в распоряжение приложений библиотеку двухмерной графики QuickDraw.

OpenGL. Основным клиентом отображения трехмерной графики в Mac OS X является библиотека OpenGL, модифицированная Apple для работы с Core Graphics Services (стандарт OpenGL был разработан компанией Silicon Graphics Inc.). Нет нужды представлять эту библиотеку, так как без нее не обходится сейчас практически ни одно приложение, работающее с трехмерной графикой. Достаточно назвать игры Quake компании Id Software, которые написаны на основе OpenGL.

OpenGL обеспечивает эффективное построение и трансформацию трехмерных объектов, текстурирование, прозрачность (alpha-blending), сглаживание, специальные эффекты (например, дым или туман).

QuickTime. Еще одним клиентом отображения графики Mac OS X является приложение QuickTime, обеспечивающее поддержку большого количества мультимедиа-форматов данных: изображений, видео (включая потоковое), звука, 3D-объектов, объектов виртуальной реальности. Более подробно о QuickTime и других приложениях Mac OS X см. в следующем номере.

Технология печати. Возможности печати в Mac OS X обусловлены в большой степени тем, что все службы печати базируются на модуле Quartz.

Стандарт PDF, обеспечивающий аппаратно-независимый вывод текста и графики, легко справляется и с их отображением на любых принтерах. Он же позволяет получать абсолютно точное изображение того, что будет напечатано, в режиме предварительного просмотра (так называемый WYSIWYG — аббревиатура от английской фразы «What You See Is What You Get»: «то, что ты видишь, есть то, что ты получишь»). Кроме того, формат PDF поддерживает языки PostScript уровней 1—3, что дает возможность печатать на PostScript-принтерах.

«Центр печати» (Print Center) — единый для всех приложений интерфейс, организующий передачу документов в систему печати и управление их очередью.

Программное окружение

В связи с коренной перестройкой ядра и архитектуры Mac OS X ее разработчикам пришлось искать решения, призванные обеспечить одновременно использование всех возможностей новой ОС и поддержку приложений, созданных для предыдущих версий Mac OS. Таким решением стало создание трех типов программного окружения (application environment).

Classic. Mac OS X сама по себе не поддерживает приложения, созданные для предыдущих версий Mac OS. Поэтому для их исполнения запускается специфическое приложение (его даже видно в Доке — элементе интерфейса Mac OS, на котором, в частности, отображаются работающие приложения), именуемое Classic и представляющее собой... вариант Mac OS 9. Вот на этом виртуальном компьютере и исполняются все приложения старых ОС. Если закрыть приложение Classic, все работавшие в нем приложения тоже будут завершены. Если какое-либо Classic-приложение приводит к сбою, система защиты памяти срабатывает не для этого отдельного приложения, а для всего Classic-окружения. Кроме того, существует целый ряд ограничений для Classic-приложений, например невозможность использовать PDF как глобальное средство отображения информации.

Такое решение Apple, видимо, вполне оправданно, несмотря на все его неудобства. Скорее всего, Classic попросту не понадобится большинству пользователей Macintosh, так как Mac OS X предоставляет разработчикам действительно значительно более богатые возможности по сравнению с предыдущими версиями ОС, и разработка новых версий большинства наиболее популярных программ будет завершена еще до официального выхода Mac OS X. Уже сейчас в список программ, имеющих версии для Mac OS X, входит более 40 приложений (www.apple.com/macosx/applications/index.htm). Это, разумеется, помимо продуктов самой Apple.

Carbon. Кроме того, существует и компромиссный вариант перехода на Mac OS X. Программное окружение Carbon представляет собой способ перевода приложений для старых версий Mac OS на новую с минимальными затратами. Незначительная модификация приложений, конечно, не приводит к использованию всех возможностей Mac OS X, но позволяет все же избавиться от ограничений и неудобства Classic-окружения.

Cocoa — так называется «полноценное» программное окружение Mac OS X, позволяющее полностью задействовать все технологии новой ОС (и нового оборудования — Cocoa поддерживает многопроцессорность и Velocity Engine). Одной из интересных его особенностей является способ организации приложения в системе, дающий возможность гибкой настройки и расширения функциональных возможностей (см. врезку «Bundles»).

Кроме упомянутых выше, Mac OS X поддерживает и ряд дополнительных окружений, например Java. Сюда же следует отнести и поддержку BSD-приложений.

Подытоживая, можно сказать, что Mac OS X предоставляет превосходные возможности для программ, написанных специально для нее, поддерживает (но не более) программы для предыдущих версий Mac OS и обеспечивает в совокупности с политикой «открытых текстов» достаточно быстрый и безболезненный перевод программных продуктов в новую среду.

Работа в сети и многопользовательская среда

Использование BSD UNIX в качестве ядра позволило Apple обеспечить своей новой ОС стабильную и хорошо защищенную многопользовательскую работу. Причем неважно, идет ли речь о сети компьютеров или об одном компьютере с несколькими пользователями.

В соответствии с политикой безопасности UNIX каждый объект файловой системы (файл или каталог) и даже каждый процесс (запущенное приложение, например) имеет ряд атрибутов, которые указывают на владельца (owner) данного объекта и определяют возможности других пользователей при работе с ним через систему так называемых «полномочий» (permissions). Владелец объекта может запретить/разрешить другим пользователям выполнять те или иные операции: для файлов это обычно чтение, запись, удаление, копирование, для приложений — запуск, для процессов — завершение, выделение ресурсов (при сетевой работе) и т. п.

В самой Mac OS X для каждого пользователя создается учетная запись (account), имеющая уникальное имя (log-in name), и пароль. Помимо обеспечения защиты данных и приложений в учетной записи хранятся все настройки системы, например фон и рисунок Рабочего стола, вид папок и др.

Для собственно работы в сети Mac OS X предоставляет большой набор различных сетевых протоколов и служб. Это такие распространенные повсеместно протоколы сетевой работы, как TCP/IP и PPP (последний обеспечивает практически все Dial-Up-соединения), PAP (протокол сетевых принтеров), HTTP и FTP, DNS, LDAP, NTP. Поддерживаются и разработанные самой Apple протоколы AppleTalk и Open Transport, хотя в последнее время предпочтение отдается все же более быстрым IP-сетям.

Помимо этого в Mac OS X встроен целый ряд серверных компонентов, которые обеспечивают маршрутизацию (по протоколу RIP) и множественную адресацию (multihoming), а также позволяют организовывать хорошо защищенный внутрисетевой доступ к файлам на основе широко распространенного в Internet HTTP-сервера Apache, встроенного в систему.

Интерфейс Aqua

Вот теперь настало время поговорить и об интерфейсе Mac OS X. Все рассмотренные выше возможности «обернуты» компанией Apple в очень красивый и достаточно удобный интерфейс, носящий имя Aqua. Это название не случайно — стилем нового интерфейса является полупрозрачность, «текучесть» и подвижность элементов. Об Aqua написано уже очень много, поэтому ограничимся лишь кратким обзором наиболее интересных его компонентов.

Значки. Что нового может быть в значках файлов? Однако всего лишь за счет полноцветности и масштабируемости значков Apple добилась значительно более приятного вида своей новой ОС. Кроме того, графические файлы и ролики QuickTime представлены в виде миниатюр, что облегчает поиск нужных файлов.

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

Док

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

Если значки в Доке покажутся слишком мелкими, то можно включить функцию увеличения (magnification), и при наведении курсора мыши на значки Дока часть из них, оказавшаяся непосредственно под курсором, увеличится.

Попробуем теперь свернуть окно приложения. Оно изящно «стечет» в Док, причем будет отображаться там во всех подробностях: если мы свернули папку с тремя файлами, то в Доке будет достаточно отчетливо видно, что это именно папка и именно с тремя файлами. Свернутый же видеоролик QuickTime будет продолжать играть! Впрочем, это перестанет казаться удивительным, если вспомнить о графической системе Mac OS X и формате PDF, позволяющем с легкостью масштабировать изображение.

Диалоговые окна (Panel). Новый способ их расположения может действительно облегчить работу, поскольку приходится иметь дело с ними довольно часто. Окна печати, открытия или сохранения файла как бы «выезжают» из верхней границы окна документа и оказываются жестко прикрепленными к этому окну, так что всегда понятно, о каком документе в них идет речь. Кроме того, разработчики Mac OS X снизили приоритет этих окон, и теперь их появление не прерывает работу с другими приложениями.

Этим новшества интерфейса Aqua не ограничиваются, однако очевидно, что они во многом базируются на внутренних изменениях ОС. Мы увидели, что Mac OS X принципиально отличается от предыдущих версий, имеет новое ядро и новую архитектуру. Именно это в первую очередь привлекает к ней интерес пользователей.

В следующем номере мы расскажем о тех программах, которые входят в комплект Mac OS X и обеспечивают минимальный набор функций, необходимых каждому пользователю, — операции с файлами, редактирование текста, работу в Internet и с электронной почтой и др.

Окончание в следующем номере.

ОБ АВТОРЕ

Владимир Мохов — аспирант МГУ, e-mail: vlm@actuar.math.msu.su

Редакция выражает благодарность официальному представителю Apple в России компании DPI за помощь в подготовке этого материала.


Эволюция Дарвина

История. История создания Дарвина началась в 1997 г., когда Apple купила компанию NeXT Software. К тому времени последняя имела несколько интересных наработок в области создания операционных систем. Две версии NeXT ОС — NEXTSTEP (более ранняя) и OPENSTEP (более поздняя) — основывались на BSD UNIX 4.3. Именно эти ОС и стали фундаментом Mac OS X.

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

Следующей вехой в истории Дарвина стала работа по модификации BSD на основе нового ядра Mach в Университете Carnegie-Mellon.

В 1999 г. Apple провозгласила разработку в рамках «открытых кодов» одним из ключевых принципов своей стратегии, значок «Входите, открыто» стал красоваться рядом с яблочком, и в марте 1999 г. появились исходные тексты первой версии Дарвина.

Перспектива. В целом можно сказать, что Дарвин развивается, как минимум, по трем направлениям. Во-первых, ведется его доработка, модификация и усовершенствование в качестве ядра Mac OS. Во-вторых, усилия разработчиков направлены на создание на основе Дарвина самостоятельного, существующего независимо от Mac OS X, дистрибутива ОС — такого же, как, например, Linux или FreeBSD.

В-третьих, и, на наш взгляд, это очень сильный ход Apple, ведется работа по адаптации Дарвина к платформе PC. Видимо, выхода Дарвина (как независимой ОС) для Intel-систем можно ожидать достаточно скоро, так как существенная часть его исходного текста является платформонезависимой (как, например, FreeBSD). Кто знает, может быть, мы увидим и... Mac OS для PC?


Portable Document Format компании Adobe Systems

Формат PDF был разработан компанией Adobe Systems — создателем таких известных программных продуктов, как Adobe Photoshop, Adobe Illustrator, Adobe PageMaker и др., в качестве универсального формата для «переноса» страничных документов, содержащих текст и графику, между компьютерами вне зависимости от их аппаратной платформы, а также от программных продуктов, создавших файлы.

Каждый документ представляет собой одну или несколько страниц, описанных специальным языком. Для этого описания используется модель отображения языка PostScript. Благодаря особенностям этой модели обеспечивается независимость изображения от аппаратных средств (на любом мониторе и любом принтере эти страницы будут выглядеть абсолютно одинаково).

Документ PDF содержит всю информацию, необходимую для отображения используемых в нем шрифтов. Если указанный шрифт имеется на компьютере или встроен в документ, то текст будет отображаться с его помощью. Если же шрифт недоступен, то для отображения будет использован специальный внутренний шрифт, который позволяет сохранять особенности исходного шрифта (ширину и высоту символов). Благодаря этому макет документа останется в исходном виде.

Страницы документа упорядочены, и доступ к ним осуществляется с помощью таблицы перекрестных ссылок. Эта таблица позволяет автору документа создавать оглавление и внутренние ссылки (например, нажатие мышью надписи «Глава 3» позволит попасть в соответствующее место документа), а пользователю — пользоваться закладками.

Для уменьшения размеров PDF-файлов поддерживаются такие стандарты сжатия, как JPEG, CCITT Group 3, CCITT Group 4, ZIP и LZW.

Формат PDF может неограниченно расширяться благодаря поддержке модулей расширения (Plug-Ins).

Наиболее известным продуктом для работы с этим форматом является пакет программ Adobe Acrobat. В частности, он позволяет переводить любой документ, который может быть распечатан на принтере, в формат PDF — компоненты Adobe Distiller и Adobe PDFWriter устанавливаются в операционную систему как принтеры. Компонент пакета, Adobe Acrobat Reader, предназначенный для просмотра файлов PDF, распространяется бесплатно.


Bundles

Точно перевести слово bundle применительно к компьютерному миру трудно. Дословно это означает «узел, связка, пачка, вязанка, пучок» или же «пакет, сверток». Условимся пользоваться словом «пакет», хотя оно и не совсем точно отражает смысл понятия bundle.

Итак, в Mac OS X пакеты представляют собой скрытые папки, содержащие один (или более) исполняемый файл и ресурсы, необходимые для его (их) исполнения. Для пользователя же чаще всего пакет представлен как единичный объект файловой системы.

Существует три вида пакетов — приложения (applications), фреймворки (frameworks) и подгружаемые пакеты (loadable bundles).

Приложения — это пакеты, содержащие ресурсы, необходимые для исполнения программного кода, включая сами исполняемые файлы.

Фреймворки — это пакеты, содержащие те или иные ресурсы, включая некоторые части исполняемого кода, необходимые для поддержки и обеспечения работы приложений, но не являющиеся отдельными приложениями. Как правило, это динамические библиотеки с их ресурсами.

Подгружаемые пакеты используются приложениями непосредственно в процессе их выполнения. Наиболее распространенный тип подгружаемых пакетов — так называемые дополнительные модули (Plug-ins), встречающиеся во множестве различных приложений.

Теперь, кратко познакомившись с видами пакетов, давайте попробуем понять смысл самой идеи пакета.

Во-первых, любое приложение использует те или иные ресурсы — строки текста (например, пункты меню), изображения, звуки и др. Во-вторых, часто возникает потребность в каких-либо функциях, не принадлежащих самому приложению, скажем, функциях печати. Здесь используется механизм динамических библиотек кодов. Наконец, во многих приложениях применяются те или иные дополнительные модули, подгрузку которых необходимо осуществлять непосредственно в процессе выполнения приложения.

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

  • Приложение представляет собой (для пользователя) один исполняемый файл. На самом деле это пакет, который может содержать несколько вариантов исполняемых файлов, например для разных операционных систем или даже платформ. Для удаления приложения из системы достаточно просто положить этот файл в Корзину.
  • Пакетная архитектура обеспечивает превосходный способ локализации приложений: локализованные ресурсы хранятся прямо «внутри» приложения и подгружаются в зависимости от настроек системы. Для добавления нового языка достаточно перетащить полученный от производителя файл ресурсов на значок приложения.
  • С помощью механизма «перетащи-и-отпусти» (drag-and-drop) можно добавлять (а также удалять и перемещать в другие приложения) и прочие пакеты, например дополнительные модули, а также и сами приложения.

И наконец, последнее: можно ли увидеть пакеты такими, как они есть? Да, можно. У каждого пакета существует так называемый «бит пакета» (bundle bit), атрибут, который управляет отображением пакета в виде объекта или же папки.

назад