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

вызовы удаленной процедуры (RPC) Ядро FreeBSD APIs Выше уровня Маха уровень BSD обеспечивает “индивидуальность OS” APIs и службы. Уровень BSD основывается на ядре BSD, прежде всего FreeBSD. Компонент BSD обеспечивает Больше информации может быть найдено в Обзоре Файловых систем главы.

Набор I/O многопроцессорные возможности Дарвин основывается на доказанной технологии из многих источников. Значительная часть этой технологии получена из FreeBSD, версии 4. 4BSD, который предлагает усовершенствованные сети, производительность, безопасность и функции совместимости.

Другие части системного программного обеспечения, такие как Мах, основываются на технологии, ранее используемой в проекте MkLinux Apple в Сервере OS X, и в технологии, полученной от NeXT. Большая часть кода независима от платформы. Весь базовый код операционной системы доступен в исходной форме.

Сети OS X используют в своих интересах расширенные сетевые возможности BSD’s для оказания поддержки для современных функций, таких как Преобразование сетевых адресов (NAT) и брандмауэры. Сетевой компонент обеспечивает настройка сервера Несмотря на то, что пользовательские процессы не совместно используют память по умолчанию как в Mac OS 9, коммуникация (и даже память, совместно использующая) между приложениями, все еще возможна. Например, ядро предлагает богатый набор примитивов для разрешения некоторого обмена информацией среди процессов.

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

Дарвин В OS X процессы обычно не совместно используют память. Вместо этого ядро присваивает каждый процесс его собственное адресное пространство, управляя доступом к этим адресным пространствам. Это управление гарантирует, что никакое приложение не может непреднамеренно получить доступ или изменить память другого приложения (защита)

.

Размер не является проблемой; с системой виртуальной памяти, включенной в OS X, каждое приложение имеет доступ к своему собственному адресному пространству на 4 ГБ.

  • Оглавление Ядро OS X является проектом С открытым исходным кодом. Ядро, вместе с другими базовыми частями OS X коллективно упоминаются как Дарвин.

    Дарвин является полной операционной системой на основе многих из тех же технологий, лежащих в основе OS X. Однако Дарвин не включает собственную графику Apple или уровни приложений, такие как Кварц, QuickTime, Какао, Углерод или OpenGL. OS X предоставляет много преимуществ пользователю Macintosh и сообществам разработчиков.

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

    Мах управляет ресурсами процессора, такими как использование CPU и память, планирование дескрипторов, обеспечивает защиту памяти и обеспечивает центрируемую обменом сообщениями инфраструктуру для остальной части уровней операционной системы. Компонент Маха обеспечивает В создании OS X Apple полностью повторно спроектировал операционную систему ядра Mac OS. Формирование основы OS X является ядром.

    Рисунок 3-1 иллюстрирует архитектуру OS X. Архитектура OS X рисунка 3-1 Дарвинская технология основывается на BSD, Мах 3. 0, и технологии Apple.

    Лучший из всех, Дарвинская технология является технологией С открытым исходным кодом, что означает, что у разработчиков есть полный доступ к исходному коду. В действительности сторонние разработчики OS X могут быть частью Дарвинской группы разработчиков системного программного обеспечения ядра. Разработчики могут также видеть, как Apple делает вещи в базовой операционной системе, и примите (или адаптируйтесь), код для использования в их собственных продуктах.

    Обратитесь к Apple Public Source License (APSL) для подробных данных. Больше информации о сетях может быть найдено в главе Сетевая архитектура

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

    В Mac OS 9, приложения сотрудничают для совместного использования процессорного времени. Точно так же все приложения совместно используют память компьютера среди них. Mac OS 9 является средой кооперативной многозадачности.

    Если даже отдельное приложение не сотрудничает, скорость отклика всех процессов поставилась под угрозу. С другой стороны, приложения реального времени, такие как мультимедиа должны быть уверены в предсказуемых, строго ограниченных во времени, поведении. невведенное межпроцессное взаимодействие (IPC) Поскольку KEXTs обеспечивают и модульный принцип и динамический loadability, они - естественный выбор для любой относительно автономной службы, требующей доступа к интерфейсам, не экспортирующимся в пространство пользователя.

    Многие компоненты поддержки сред ядра этот дополнительный механизм, хотя они делают так по-разному. сети (за исключением уровня устройства) Уровень основы Дарвина и OS X составлен из нескольких архитектурных компонентов, как показано на рисунке 3-3. Взятый вместе, эти компоненты формируют среду ядра.

    Архитектура ядра OS X рисунка 3-3 Общая информация о Махе может быть сочтена в главе Обзором Маха. Информация о планировании может быть найдена в главе Махом, Планирующим и Интерфейсами Потока. Информация о системе VM может быть найдена в Памяти и Виртуальной памяти.

    BSD Новые технологии, такие как Набор I/O и Сетевые Расширения ядра (NKEs), были разработаны и спроектированы Apple для использования в своих интересах усовершенствованных возможностей, таких как предоставленные моделью объектно-ориентированного программирования. OS X комбинирует эти новые технологии с испытанными промышленными стандартами для создания операционной системы, которая стабильна, надежна, гибка, и расширяема. Архитектура размещение в разных сетях Просматриваемый вместе, все приложения, как говорят, работают в пространстве пользователя, но это не подразумевает, что они совместно используют память.

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

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

    . — от Разработки и реализации 4,4 Операционных систем BSD, Маккузика, Бостика, Кэрелса и Куартермена, 1996. динамичный («по требованию») загрузка драйверов поддержка ядра pthreads (потоки POSIX) Руководство по программированию ядра Сопутствующий файл PDF Базовые технологии были выбраны по нескольким причинам.

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

    Набор I/O служит основой для упрощенной разработки драйвера, поддерживая много категорий устройств. Опции I/O Kit объектно-ориентированная архитектура I/O реализованы в ограниченном подмножестве C++. Платформа Набора I/O является и модульной и расширяемой.

    Компонент I/O Kit обеспечивает поддержка планировщика симметричной мультипроцессорной обработки (SMP) поддержка и IP и DDP (транспорт AppleTalk) Рисунок 3-2 показывает отношение между Дарвином и OS X. Оба полагаются на то же ядро, но OS X добавляет Core Services, Прикладные службы и QuickTime, а также Классику, Углерод, Какао и Java (JDK) среды приложения. И Дарвин и OS X включают среду приложения командной строки BSD; однако, в OS X, использование среды не требуется, и таким образом это скрыто от пользователя, если они не принимают решение получить доступ к нему.

    Рисунок 3-2 Дарвин и OS X динамическое управление устройствами Возможность динамично добавить новую реализацию файловой системы основывается на VFS KEXTs. Драйверы устройств и семейства устройства в Наборе I/O реализованы с помощью KEXTs. KEXTs делают разработку намного проще для разработчиков, пишущих драйверы или тех, которые пишут код для поддержки нового формата объема или сетевого протокола.

    KEXTs обсуждены более подробно в Обзоре Расширения ядра главы. Модель обеспечения безопасности UNIX файловые системы. Набор I/O описан более подробно в главе Обзор Набора I/O.

    Расширения ядра В OS X, однако, среда ядра содержит намного больше, чем само ядро Маха. Среда ядра OS X включает ядро Маха, BSD, Набор I/O, файловые системы и сетевые компоненты. Они часто именуются коллективно как ядро

    .

    Каждый из этих компонентов описан кратко в следующих разделах. Для получения дальнейшей информации обратитесь к определенным главам компонента или к ссылочному материалу, перечисленному в библиографии. модульная архитектура UTF-8 (Unicode) поддержка Поскольку OS X содержит три основных компонента (Мах, BSD и Набор I/O), существует также часто целые три APIs для определенных ключевых операций.

    В целом выбранный API должен соответствовать часть ядра, где это используется, который поочередно диктуют тем, что Ваш код пытается сделать. Остаток от этой главы описывает Маха, BSD и Набор I/O и обрисовывает в общих чертах функциональность, которая предоставлена теми компонентами. Мах поддержка виртуальной памяти BSD является тщательно спроектированной, зрелой операционной системой со многими возможностями.

    Фактически, большая часть сегодняшнего коммерческого UNIX и подобные UNIX операционные системы содержат много кода BSD. BSD также обеспечивает ряд промышленного стандарта APIs.

  • Загрузите пример кода увеличенная производительность по предыдущим версиям Mac OS.

    Syscall поддержка Компонент BSD описан более подробно в главе Обзор BSD. Сети многоадресная поддержка OS X обеспечивает механизм расширения ядра как средние значения разрешения динамической загрузки частей кода в пространство ядра без потребности перекомпилировать. Эти части кода известны в общем как плагины или, в среде ядра OS X, как расширения ядра или KEXTs.

    управление питанием для настольных систем, а также портативных устройств Вперед Назад Обзор архитектуры ядра Поддержка Классики Mac OS (через фильтры) модель процесса BSD, включая процесс IDs и сигналы OS X предоставляет поддержку для многочисленных типов файловых систем, включая HFS, HFS +, UFS, NFS, ISO 9660 и другие. Тип файловой системы по умолчанию является HFS +; начальные загрузки OS X (и «корни») от HFS +, UFS, ISO, NFS и UDF. Расширенные функции файловых систем OS X включают улучшенный проект Виртуальной файловой системы (VFS).

    VFS предусматривает многоуровневую архитектуру (файловые системы являются наращиваемыми). Компонент файловой системы обеспечивает 4. 4BSD штабель TCP/IP и сокет APIs Например, некоторые новые сетевые функции включают использование сетевых расширений ядра (NKEs).

    Они обсуждены в главе Сетевая архитектура. Важный: Обратите внимание на то, что OS X использует термин ядро несколько по-другому, чем Вы могли бы ожидать. Ядро обеспечивает много улучшений для OS X.

    Они включают вытеснение, защита памяти, улучшенная производительность, улучшила сетевые средства, поддержку и Macintosh (Расширенный и Стандарта) и не-Macintosh (UFS, ISO 9660, и т. ) файловые системы, объектно-ориентированный APIs и т. , Две из этих функций, вытеснения и защиты памяти, приводят к более устойчивой среде.