Гибридное ядро ​​-

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

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

СОДЕРЖАНИЕ
  • 1 Обзор
  • 2 Примеры
    • 2.1 ядро NT
    • 2.2 Ядро XNU
      • 2.2.1 Описание
    • 2.3 Другое
  • 3 См. Также
  • 4 Примечания
  • 5 ссылки
Обзор

Традиционные категории ядер - это монолитные ядра и микроядрананоядрами и экзоядрами, рассматриваемыми как более экстремальные версии микроядер). Категория «гибридные» вызывает споры из-за сходства гибридных ядер и обычных монолитных ядер; Линус Торвальдс отверг этот термин как простой маркетинг.

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

Примеры

Ядро NT

Основная статья: Архитектура ядра Windows NT § Архитектура семейства операционных систем Windows NT состоит из двух уровней ( пользовательский режим и режим ядра ) с множеством различных модулей внутри обоих этих уровней.

Одним из ярких примеров гибридного ядра является ядро Microsoft Windows NT, которое поддерживает все операционные системы семейства Windows NT, вплоть до Windows 10 и Windows Server 2019, включая Windows Phone 8, Windows Phone 8.1 и Xbox One.

Windows NT была первой операционной системой Windows, основанной на гибридном ядре. Гибридное ядро ​​было разработано как модифицированное микроядро под влиянием микроядра Маха, разработанного Ричардом Рашидом из Университета Карнеги-Меллона, но не отвечающее всем критериям чистого микроядра. Windows на базе NT классифицируется как гибридное ядро ​​(или макроядро), а не как монолитное ядро, потому что подсистемы эмуляции работают в серверных процессах пользовательского режима, а не в режиме ядра, как в монолитном ядре, и, кроме того, из-за большого количества целей дизайна, которые напоминают цели дизайна Mach (в частности, отделение личностей ОС от общего дизайна ядра). И наоборот, причина, по которой NT не является системой с микроядром, заключается в том, что большинство компонентов системы работают в том же адресном пространстве, что и ядро, как это было бы в случае с монолитным дизайном (в традиционном монолитном дизайне не было бы микроядра на каждый se, но ядро ​​будет реализовывать в целом аналогичные функции с микроядром NT и подсистемами режима ядра).

Основная особенность операционной системы Windows - это Windows API, который всегда присутствует. Подсистема эмуляции, которая реализует индивидуальность Windows, называется подсистемой времени выполнения клиент / сервер (csrss.exe). В версиях NT до 4.0 этот процесс подсистемы также содержал диспетчер окон, интерфейс графического устройства и драйверы графического устройства. Однако по соображениям производительности в версии 4.0 и новее эти модули (которые часто реализуются в пользовательском режиме даже в монолитных системах, особенно разработанных без поддержки внутренней графики) работают как подсистема режима ядра.

Приложения, работающие на NT, написаны для одной из личностей ОС (обычно Windows API), а не для собственного NT API, документация для которого не является общедоступной (за исключением подпрограмм, используемых при разработке драйверов устройств). Индивидуальность ОС реализуется через набор библиотек DLL пользовательского режима (см. « Библиотека динамической компоновки» ), которые при необходимости отображаются в адресные пространства прикладных процессов вместе с серверным процессом подсистемы эмуляции (как описано ранее). Приложения получают доступ к системным службам, вызывая индивидуальные библиотеки DLL ОС, отображенные в их адресные пространства, которые, в свою очередь, вызывают библиотеку времени выполнения NT (ntdll.dll), также отображаемую в адресное пространство процесса. Библиотека времени выполнения NT обслуживает эти запросы путем перехвата в режим ядра для вызова исполнительных подпрограмм режима ядра или выполнения локальных вызовов процедур (LPC) для соответствующих серверных процессов подсистемы пользовательского режима, которые, в свою очередь, используют NT API для связи с прикладные процессы, подсистемы режима ядра и друг друга.

Ядро XNU

Ядро XNU

Основная статья: XNU

XNU - это ядро, которое Apple Inc. приобрела и разработала для использования в операционных системах macOS, iOS, watchOS и tvOS и выпустила как бесплатное программное обеспечение с открытым исходным кодом как часть операционной системы Darwin. XNU - это аббревиатура от X is Not Unix.

Первоначально разработанный NeXT для операционной системы NeXTSTEP, XNU представлял собой гибридное ядро, объединяющее версию 2.5 ядра Mach с компонентами из 4.3BSD и объектно-ориентированным API для написания драйверов под названием Driver Kit.

После того, как Apple приобрела NeXT, компонент Mach был обновлен до OSFMK 7.3, которая представляет собой микроядро. Apple использует сильно модифицированный OSFMK 7.3, функционирующий как гибридное ядро ​​с включенными частями FreeBSD. (OSFMK 7.3 включает применимый код из ядра Mach 4 Университета Юты и применимый код из многих вариантов Mach 3.0, которые возникли из исходного ядра Mach 3.0 Университета Карнеги-Меллона.) Компоненты BSD были обновлены кодом из проекта FreeBSD и Driver Kit был заменен C ++ API для написания драйверов под названием I / O Kit.

Описание

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

Другие

Смотрите также
Примечания
использованная литература
Последняя правка сделана 2023-03-29 11:48:44
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте