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

Гибридное ядро — это операционной системы архитектура ядра , которая пытается объединить аспекты и преимущества микроядерной и монолитной архитектуры ядра, используемой в операционных системах. [1] [2] [ ненадежный источник? ]
Обзор [ править ]
Традиционными категориями ядер являются монолитные ядра и микроядра (при этом наноядра и экзоядра рассматриваются как более крайние версии микроядер). Категория «гибридные» спорна из-за сходства гибридных ядер и обычных монолитных ядер; отверг этот термин Линус Торвальдс как простой маркетинг. [3]
Идея гибридного ядра состоит в том, чтобы иметь структуру ядра, аналогичную структуре микроядра, но реализовать эту структуру в виде монолитного ядра. В отличие от микроядра, все (или почти все) службы операционной системы в гибридном ядре все еще находятся в пространстве ядра . Наличие сервисов в пространстве пользователя не дает никаких преимуществ в плане надежности , как в случае с микроядром . Однако, как и в случае с обычным монолитным ядром , здесь нет никаких затрат на производительность при передаче сообщений и переключении контекста между режимом ядра и пользовательским режимом, которые обычно возникают в микроядре.
Примеры [ править ]
Ядро NT [ править ]
Этот раздел нуждается в дополнительных цитатах для проверки . ( Август 2022 г. ) |

Ярким примером гибридного ядра является ядро Microsoft Windows NT , которое поддерживает все операционные системы семейства Windows NT , вплоть до Windows 11 и Windows Server 2022 включительно , а также поддерживает Windows Phone 8 , Windows Phone 8.1 , Xbox One и Xbox One . серии Xbox Консоли .
Windows NT была первой операционной системой Windows, основанной на гибридном ядре. [ нужна ссылка ] . Гибридное ядро было разработано как модифицированное микроядро под влиянием микроядра Маха , разработанного Ричардом Рашидом в Университете Карнеги-Меллон, но не отвечающее всем критериям чистого микроядра. Windows на базе NT классифицируется как гибридное ядро (или макроядро). [4] ), а не монолитное ядро, поскольку подсистемы эмуляции работают в серверных процессах пользовательского режима, а не в режиме ядра, как в монолитном ядре, и, кроме того, из-за большого количества целей проектирования, которые напоминают цели проектирования Маха (в частности, разделение особенностей ОС из общего дизайна ядра). И наоборот, причина, по которой NT не является системой микроядра, заключается в том, что большинство компонентов системы работают в том же адресном пространстве , что и ядро, как и в случае с монолитной схемой (в традиционной монолитной конструкции не было бы микроядра для каждого ядра). так, но ядро будет реализовывать во многом аналогичную функциональность микроядру и подсистемам режима ядра NT).
Основной особенностью операционной системы Windows является Windows API , который всегда присутствует. Подсистема эмуляции, реализующая особенности Windows, называется подсистемой выполнения клиент/сервер (csrss.exe). В версиях NT до 4.0 этот процесс подсистемы также содержал оконный менеджер, интерфейс графического устройства и драйверы графического устройства. Однако из соображений производительности в версии 4.0 и более поздних версиях эти модули (которые часто реализуются в пользовательском режиме даже в монолитных системах, особенно в тех, которые разработаны без внутренней графической поддержки) работают как подсистема режима ядра. [4]
Приложения, работающие в NT, записываются на одну из особенностей ОС (обычно Windows API), а не на собственный NT API, документация по которому не является общедоступной (за исключением подпрограмм, используемых при разработке драйверов устройств). Личность ОС реализуется через набор библиотек DLL пользовательского режима (см. Библиотеку динамической компоновки ), которые при необходимости отображаются в адресные пространства процессов приложений вместе с серверным процессом подсистемы эмуляции (как описано ранее). Приложения получают доступ к системным службам, вызывая библиотеки DLL ОС, сопоставленные с их адресными пространствами, которые, в свою очередь, вызывают библиотеку времени выполнения NT (ntdll.dll), также отображаемую в адресном пространстве процесса. Библиотека времени выполнения NT обслуживает эти запросы, перехватывая их в режим ядра, чтобы либо вызвать исполнительные процедуры режима ядра, либо выполнить вызовы локальных процедур (LPC) соответствующим серверным процессам подсистемы пользовательского режима, которые, в свою очередь, используют API NT для связи с процессы приложений, подсистемы режима ядра и друг друга. [5]

Ядро XNU [ править ]
XNU — это ядро , которое компания Apple Inc. приобрела и разработала для использования в операционных системах macOS , iOS , watchOS и tvOS и выпустила как бесплатное программное обеспечение с открытым исходным кодом как часть операционной системы Darwin . XNU — это аббревиатура от X is Not Unix . [6]
Первоначально разработанное NeXT для операционной системы NeXTSTEP , XNU представляло собой гибридное ядро, сочетающее версию 2.5 ядра Mach с компонентами из 4.3BSD и объектно-ориентированный API для написания драйверов под названием Driver Kit.
После того, как Apple приобрела NeXT, компонент Mach был обновлен до OSFMK 7.3. [7] что такое микроядро. [8] Apple использует сильно модифицированную OSFMK 7.3, функционирующую как гибридное ядро с включенными частями FreeBSD. [7] (OSFMK 7.3 включает применимый код из ядра Mach 4 Университета Юты и применимый код из многих вариантов Mach 3.0, которые произошли от исходного ядра Mach 3.0 Университета Карнеги-Меллона.) Компоненты BSD были обновлены с использованием кода из проекта FreeBSD и Набор драйверов был заменен C++ API для написания драйверов под названием I/O Kit. [ нужна ссылка ] .
Описание [ править ]
Как и некоторые другие современные ядра , XNU представляет собой гибрид, содержащий функции как монолитного , так и микроядра , пытаясь наилучшим образом использовать обе технологии, такие как возможность передачи сообщений микроядер, обеспечивающая большую модульность. [ нужна ссылка ] и более крупные части ОС, чтобы получить выгоду от защищенной памяти , [ нужна ссылка ] а также сохранение скорости монолитных ядер для некоторых критически важных задач.
Другие [ править ]
- БеОС
- Слог
- BSD на основе
- DragonFly BSD (первая ОС, отличная от Mach BSD, использующая гибридное ядро)
- NetWare [9]
- План 9 от Bell Labs
- ОС/2 [10]
- электростанция
- АркаОС
- ОС/4
- РеактОС
См. также [ править ]
- Микроядро
- Экзоядро
- Наноядро
- Монолитное ядро
- Операционная система с единым адресным пространством
- Архитектура Windows NT
- XNU
Примечания [ править ]
- ^ «Гибридное ядро — OSDev Wiki» . wiki.osdev.org . Проверено 11 января 2021 г.
- ^ «Что такое гибридное ядро? — Определение из Techopedia» . Techopedia.com . 22 августа 2011 года . Проверено 11 января 2021 г.
- ^ «Линус Торвальдс» .
Что касается всего этого «гибридного ядра» — это просто маркетинг. Это: «О, у этих микроядер был хороший пиар, как мы можем попытаться получить хороший пиар для нашего рабочего ядра? О, я знаю, давайте использовать крутое имя и попытаться дать понять, что у него есть все преимущества пиара, которые есть у другой системы.
- ^ Jump up to: Перейти обратно: а б «Пользователь в режиме ядра MS Windows NT и технический документ по GDI» . Корпорация Майкрософт. 2007 . Проверено 24 августа 2022 г.
- ^ Проберт, Дэйв (2005). «Обзор архитектуры Windows» . Использование проектов на основе внутренних API-интерфейсов NT для обучения принципам работы ОС . Microsoft Research/Азия – Пекин. Архивировано из оригинала 28 ноября 2007 г. Проверено 1 марта 2007 г.
- ^ «Портирование приложений UNIX/Linux на OS X: глоссарий» . Компьютер Apple. 2005 . Проверено 16 июня 2017 г.
- ^ Jump up to: Перейти обратно: а б Джим Мэги. WWDC 2000, сеанс 106 — Mac OS X: ядро . 14 минут.
- ^ Дуглас М. Уэллс (1994). Надежная масштабируемая среда операционной системы реального времени (PDF) . 1994 г. Конференция IEEE по технологиям и приложениям двойного назначения. S2CID 5205380 . Архивировано из оригинала (PDF) 22 августа 2017 г.
- ^ Дрю Мейджор; Грег Миншалл; Кайл Пауэлл. «Обзор операционной системы NetWare» .
- ^ «Ядро OS/2» . Проверено 4 сентября 2020 г.
Ссылки [ править ]
- Марк Руссинович (23 ноября 2004 г.). «Внутри собственного API» . Сисинтерналы . Архивировано из оригинала 15 марта 2006 года . Проверено 24 июля 2006 г.