Лекции_операционные системы (Информатики)
.pdfФрагмент учебника «Операционные системы, сети и интернеттехнологии» С.А.Жданов, Н.Ю.Иванова, В.Г.Маняхина, С.Н.Мягков.
разработке 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