Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лекции_операционные системы (Информатики)

.pdf
Скачиваний:
57
Добавлен:
06.06.2015
Размер:
3.81 Mб
Скачать

Фрагмент учебника «Операционные системы, сети и интернеттехнологии» С.А.Жданов, Н.Ю.Иванова, В.Г.Маняхина, С.Н.Мягков.

разработке Apple, IBM и Motorola. Однако, в 2006 г. состоялся переход Macintosh на процессоры Intel x86 и версия Mac OS 10.4

«Тигр» была выпущена и для процессоров Power PC, и для Intel.

Однако, соглашение с конечным пользователем (EULA) OS X

запрещает установку системы на компьютеры, не помеченные фирменным знаком Apple, поэтому, несмотря на совместимость,

Mac OS X не устанавливается на IBM PC-совместимые компьютеры.

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

Для разработки ядра новой операционной системы Mac OS X

Apple использовала открытую версию Unix-подобной ОС BSD 4.4 и

микроядро Mach. Первоначально ядро Mach было разработано в Университете Carnegie-Mellon в рамках исследовательских работ в области операционных систем, распределѐнных и параллельных вычислений. Mach – один из самых первых примеров микроядра, до сих пор он являющихся стандартом для всех. Mach служили микроядром для многих ОС семейства Unix.

Чтобы ускорить ввод новой системы и повысить ее качество компания Apple инициализировала проект Darwin по созданию свободной Unix-подобной ОС с открытыми кодами (в рамках публичной лицензии на исходники Apple). Darwin совмещает код,

написанный самой компанией Apple, с кодом ОС NeXTSTEP

(разработанной компанией NeXT Computer и перешедшей к Apple

после поглощения), кодом FreeBSD (свободная Unix-подобная ОС) и

кодами других свободных проектов. Модули ядра Darwin были полностью открыты и доступны для программистов-разработчиков.

Таким образом, над разработкой и реализацией Darwin трудилось свыше 100 тыс. человек. В результате, ядро OS X вобрало в себя все

151

Фрагмент учебника «Операционные системы, сети и интернеттехнологии» С.А.Жданов, Н.Ю.Иванова, В.Г.Маняхина, С.Н.Мягков.

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

Mach, так и монолитной архитектуры FreeBSD.

Архитектура Mac OS X имеет многоуровневую структуру.

Рис. 11.3. Архитектура Mac OS X.

В привилегированном режиме ядра выполняются компоненты подсистемы Darwin – системные утилиты и ядро XNU, в свою очередь состоящее из микроядра Mach и набора системных утилит

BSD. Остальные компоненты системы выполняются в непривилегированном режиме пользователя.

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

152

Фрагмент учебника «Операционные системы, сети и интернеттехнологии» С.А.Жданов, Н.Ю.Иванова, В.Г.Маняхина, С.Н.Мягков.

Важным компонентом Mach является I/O Kit – система ввода-

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

Система ввода-вывода (I/O Kit) построена на объектно-

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

Система ввода-вывода обеспечивает режим plug-and-play

(технология, предназначенная для быстрого определения и конфигурирования устройств в компьютере), динамическое управление устройствами и динамическую загрузку драйверов по мере необходимости, управление энергопотреблением,

многопроцессорную обработку.

Модули FreeBSD отвечают за взаимодействие с пользователем,

обработку сигналов, поддержку различных файловых систем и сетевых технологий, а также совместимость со стандартами POSIX,

что гарантирует функционирование большинства программ,

написанных для Unix и в Mac OS X. Для добавления новых сетевых технологий без необходимости перекомпиляции ядра предусмотрен механизм сетевых расширений ядра — Network Kernel Extensions (NKE).

Следующий слой – Базовые службы (Core services), к которым относятся базовая среда программирования Core Foundation, базовые службы и не графический (non-GUI) программный интерфейс.

Через базовые службы происходит взаимодействие приложений и их сервисов с ядром и аппаратурой.

153

Фрагмент учебника «Операционные системы, сети и интернеттехнологии» С.А.Жданов, Н.Ю.Иванова, В.Г.Маняхина, С.Н.Мягков.

Слой Прикладные сервисы (Application services) часто называют Медиа или даже просто Графика. Связано это с тем, что именно в этом слое расположены компоненты графической подсистемы и мультимедиа. Так, Quartz отвечает за вывод двухмерной графической информации. С помощью Quartz осуществляется управление цветностью и разрешением (стандартными являются разрешение 1024x768 точек при глубине цветности 16 бит), а также сглаживание (anti-aliasing). Quartz обеспечивает такие графические механизмы, как 2D-ускорение и доступ к кадровому видеобуферу

(video frame buffer access). Двухуровневая архитектура типа клиент-

сервер, реализованная в Quartz, позволяет осуществлять гибкую и скоростную работу приложений с графикой. Низший уровень

(базовые графические сервисы, Core Graphics Services) обеспечивает серверные функции управления окнами, поддержки событий и др.

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

Rendering), основными функциями которого являются: отображение информации на экране; создание PDF-кода и его преобразование в код принтера (растровый или PostScript) автоматическое создание

«миниатюр» (thumbnails) изображений (например, при отображении графических файлов в окне папки). Помимо встроенного в Quartz

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

Кроме Quartz в слое Прикладных сервисов находится OpenGL –

стандартная технология отображения трехмерной графики и

QuickTime – универсальная многоплатформенная мультимедийная

154

Фрагмент учебника «Операционные системы, сети и интернеттехнологии» С.А.Жданов, Н.Ю.Иванова, В.Г.Маняхина, С.Н.Мягков.

архитектура. QuickTime отвечает за отображение всего, что не попадает в зону ответственности Quartz и OpenGL.

Следующий, более высокий уровень архитектуры, занимает

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

Classic поддерживает приложения, созданные для предыдущих версий Mac OS, для их исполнения запускается Classic и создает виртуальную среду Mac OS 9, в которой исполняются все приложения старых ОС. Если какое-либо Classic-приложение приводит к сбою, система защиты памяти срабатывает не для этого отдельного приложения, а для всего Classic-окружения. Кроме того,

существует целый ряд ограничений для Classic-приложений.

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

Cocoa – API Mac OS X, позволяющее полностью задействовать все технологии новой ОС.

Кроме того, Mac OS X поддерживает и ряд дополнительных

API, например Java, программное окружение BSD, которое осуществляет поддержку BSD-приложений.

Самым верхним слоем в иерархии системы Mac OS X является графический интерфейс пользователя Aqua, при помощи которого

155

Фрагмент учебника «Операционные системы, сети и интернеттехнологии» С.А.Жданов, Н.Ю.Иванова, В.Г.Маняхина, С.Н.Мягков.

пользователь взаимодействует с приложениями, операционной

системой и компьютером.

11.2. Файловые системы

Mac OS X работает с различными файловыми системами,

благодаря компонентам системы BSD и в том числе механизму,

который называется виртуальной файловой системой (Virtual File System, VFS), при помощи которой обеспечивается абстрагирование от конкретной файловой системы. Вызовы приложений, связанные с обслуживанием файлов (открытие, закрытие, чтение и запись файлов и др.) поступают сначала в VFS, которая преобразует их в формат, принятый в той или иной файловой системой.

В Mac OS X поддерживаются следующие файловые системы:

HFS+;

HFS;

UFS;

UDF.

Логическая организация файловых систем Mac OS X

существенно отличается от Windows и более напоминает организацию в Unix-подобных ОС, хотя и отклоняется от стандарта

FHS (Filesystem Hierarchy Standard), принятого для унификации местонахождения файлов и каталогов с общим назначением в файловой системе ОС UNIX. Например, такие каталоги как /bin, /usr

и др., в файловом менеджере Finder и в прикладных программах скрыты от пользователя.

В Mac OS X корневой файловой системой становится та,

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

156

Фрагмент учебника «Операционные системы, сети и интернеттехнологии» С.А.Жданов, Н.Ю.Иванова, В.Г.Маняхина, С.Н.Мягков.

межмашинную унификацию – к какому бы компьютеру ни подключили, например, флеш-накопитель, у него будет один и тот же путь в структуре каталогов файловой системы. Это облегчает создание переносимого рабочего окружения, включающего программы, настройки и документы пользователя.

В Mac OS X пользователь может работать со следующими папками, расположенными в корневом каталоге:

Applications – предназначена для прикладных программ;

System – основные файлы операционной системы;

Library – дополнительные файлы системы и прикладных программ, а также общесистемные настройки;

Users – домашние каталоги пользователей, в которых, в

свою очередь, могут находиться вложенные папки Library

и Applications.

Как в любой Unix-подобной системе, четко разграничиваются права пользователей на доступ к отдельным объектам файловой системы. Например, приложение может осуществлять запись настроек только в каталог Library (либо системный, либо у текущего пользователя), а запись пользовательских документов — только в домашний каталог. Только при наличии соответствующих полномочий пользователь может разместить файлы в другие каталоги.

Файловые системы HFS и HFS+

HFS (Hierarchical File System) – иерархическая файловая система, разработанная операционной системы Mac OS.

HFS Plus (HFS+ или Mac OS Extended) – усовершенствованная версия прежней HFS для расширения возможностей Mac OS.

157

Фрагмент учебника «Операционные системы, сети и интернеттехнологии» С.А.Жданов, Н.Ю.Иванова, В.Г.Маняхина, С.Н.Мягков.

HFS+ заменила ранее использующуюся на компьютерах

Macintosh файловую систему HFS.

Преимущества HFS+:

поддержкой файлов большого размера (32-битная адресация вместо 16-битной);

поддержка журналирования;

использование кодировки Unicodе для имен файлов и каталогов;

поддерка длинных имена до 255 символов;

использование 32-битной (вместо 16-битной) таблицы привязки файла к месту на диске (allocation mapping table).

Вэтой файловой системе каждый файл состоит из двух раздельных частей: data fork и resource fork (вилки данных и вилки ресурсов). Вилка ресурсов предназначена для сохранения служебной информации (метаданных файла), вилка данных для сохранения собственно данных файла.

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

Файловая система UFS

UFS (Unix File System) – файловая система, созданная для операционных систем семейства BSD и используемая в операционных системах FreeBSD, OpenBSD, NetBSD. Поддержка данной файловой системы есть в ядре Linux и операционной системе

Solaris.

В UFS не используются forks, от которых Apple планирует в дальнейшем отказаться.

158

Фрагмент учебника «Операционные системы, сети и интернеттехнологии» С.А.Жданов, Н.Ю.Иванова, В.Г.Маняхина, С.Н.Мягков.

Файловая система UDF

Mac OS X поддерживает файловую систему UDF (Universal Disk Format), которая используется для обмена данными с накопителями CD-ROM и DVD.

Контрольные вопросы:

1.В чем причины популярности компьютеров Macintosh и Mac OS?

2.Каковы отличия Mac OS и Mac OS X?

3.Почему некоторые специалисты относят Mac OS X к Unix-

подобным ОС?

4.Какие слои выделяют в архитектуре Mac OS X, и какого назначение каждого слоя?

5.Каковы особенности в строении ядра Mac OS X?

6.Какие файловые системы поддерживаются в Mac OS X?

159