Гибридное ядро - Hybrid kernel - Wikipedia

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

Обзор

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

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

Примеры

Ядро NT

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

Одним из ярких примеров гибридного ядра является Microsoft Windows Ядро NT который поддерживает все операционные системы в Windows NT семья, до включительно Windows 10 и Windows Server 2019, и полномочия Windows Phone 8, Windows Phone 8.1, и Xbox One. Windows на базе NT классифицируется как гибридное ядро ​​(или макроядро).[2]), а не монолитное ядро, потому что подсистемы эмуляции работают в серверных процессах пользовательского режима, а не в режиме ядра, как в монолитном ядре, и, кроме того, из-за большого количества целей проектирования, которые напоминают цели проектирования в Mach (в частности, разделение личностей ОС из общего дизайна ядра). И наоборот, причина, по которой NT не является системой с микроядром, заключается в том, что большинство компонентов системы работают в одном и том же адресное пространство в качестве ядра, как это было бы в случае с монолитным дизайном (в традиционном монолитном дизайне не было бы микроядра как такового, но ядро ​​реализовывало бы в целом аналогичные функции микроядра NT и подсистем режима ядра).

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

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

Ядро XNU

Ядро XNU

XNU это ядро который Apple Inc. приобретены и разработаны для использования в macOS, iOS, watchOS, и tvOS операционных систем и выпущен как бесплатное программное обеспечение с открытым исходным кодом как часть Операционная система Дарвина. XNU является акроним за X не Unix.[4]

Первоначально разработан Следующий для Следующий шаг операционной системы, XNU было гибридным ядром, объединяющим версию 2.5 Ядро Маха разработан в Университет Карнеги Меллон с компонентами из 4.3BSD и объектно-ориентированный API для написания драйверов под названием Driver Kit.

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

Описание

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

XNU работает на РУКА как часть iOS,[7] IA-32, и x86-64 на базе процессоров.

Другие

Смотрите также

Примечания

[10]

  1. ^ "Линус Торвальдс". Что до всего «гибридного ядра» - это просто маркетинг. Это «О, у этих микроядер был хороший пиар, как мы можем попытаться получить хороший пиар для нашего рабочего ядра? О, я знаю, давайте использовать крутое имя и попытаться намекнуть, что у него есть все преимущества пиара, которые есть у другой системы.
  2. ^ а б "Пользователь MS Windows NT в режиме ядра и официальный документ GDI". Корпорация Майкрософт. 2007 г.. Получено 2007-03-01.
  3. ^ Проберт, Дэйв (2005). «Обзор архитектуры Windows». Использование проектов на основе внутренних API NT для обучения принципам работы с ОС. Microsoft Research / Азия - Пекин. Получено 2007-03-01.
  4. ^ «Перенос приложений UNIX / Linux на OS X: Глоссарий». Компьютер Apple. 2005 г.. Получено 2017-06-16.
  5. ^ а б Джим Маги. WWDC 2000 Сессия 106 - Mac OS X: ядро. 14 минут в.
  6. ^ Дуглас М. Уэллс. «Надежная, масштабируемая среда операционной системы реального времени» (PDF). S2CID  5205380. Цитировать журнал требует | журнал = (помощь)
  7. ^ Обнаружен процессор iPhone: процессор ARM с тактовой частотой 620 МГц (1 июля 2007 г. Дата обращения 06 января 2008.
  8. ^ Дрю Мейджор; Грег Миншалл; Кайл Пауэлл. «Обзор операционной системы NetWare».
  9. ^ «Ядро OS / 2». Получено 2020-09-04.
  10. ^ WWDC 2000 Сеанс 106 - Mac OS X: ядро, автор: Джим Маги URL: [1]

Рекомендации