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


Гибридное ядро ​​— это архитектура ядра операционной системы , которая пытается объединить аспекты и преимущества архитектуры микроядра и монолитного ядра , используемых в компьютерных операционных системах . [1] [2] [ ненадежный источник? ]

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

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

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

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

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


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