Микроядро

Микроядро (англ. microkernel) или μ-ядро (англ. μ‑kernel) — ядро операционной системы, реализующее минимальный набор функций.

Архитектура микроядра, основанная на программах-серверах, работающих в пользовательском режиме

Устройство

Работа с микроядром осуществляется так же, как и с монолитным ядром — через системные вызовы.

Микроядра предоставляют лишь небольшой набор низкоуровневых примитивов/механизмов/сервисов для:

  • управления физической и виртуальной памятью компьютера (выделение памяти процессам, обеспечение её изоляции/защиты);
  • управления процессорным временем (сервисы для работы с потоками (нитями) процессов (см. планировщик потоков (англ. scheduling));
  • управления доступом к устройствам ввода-вывода (открытие/закрытие доступа к портам ввода-вывода и MMIO-памяти устройств);
  • коммуникации и синхронизации процессов (англ. inter process communications, IPC) (управляемое и контролируемое нарушение изоляции памяти процесса для организации обмена данными).

Остальные примитивы/функции/компоненты/сервисы/модули, например:

работают в пространстве пользователя в виде отдельных процессов, взаимодействуют с ядром с помощью системных вызовов, взаимодействуют друг с другом с помощью IPC. В операционной системе с монолитным ядром эти компоненты работают в пространстве ядра в виде потоков ядра.

На процессорах архитектуры x86 используется так называемая кольцевая защита. Процессы пространства пользователя работают на третьем кольце (англ. ring 3), не могут выполнять некоторые действия, доступные на нулевом кольце (англ. ring 0). Ошибка в процессе пространства пользователя в худшем случае приведёт к завершению процесса.

Достоинства и недостатки

Преимущества ОС, построенной на микроядре, по сравнению с ОС, построенной на монолитном ядре:

  • простота реализации (ядро и компоненты реализуют чётко определённую функциональность, поэтому размер их кода невелик);
  • простота отладки (компоненты — обычные процессы, поэтому могут отлаживаться с помощью инструментов, созданных для отладки процессов);
  • гарантированная безопасность (код небольшого размера можно проверить на корректность вручную или автоматически — с помощью математических рассуждений);
  • надёжность (в ОС с микроядерной архитектурой ошибка в одном из компонентов приведёт к завершению процесса компонента; в ОС с монолитным ядром отказ компонента приведёт к отказу ОС);
  • модульность (в микроядерной ОС большее число компонентов может быть запущено и остановлено по необходимости; например, для исправления ошибки можно внести изменения в код компонента, скомпилировать новый компонент, остановить старый и запустить новый).

Недостатки ОС, построенной на микроядре, по сравнению с ОС, построенной на монолитном ядре:

  • более низкая производительность (из-за накладных расходов на IPC).

Для того, чтобы микроядерная ОС по скорости не уступала ОС, построенной на базе монолитного ядра, требуется очень аккуратно проектировать разбиение системы на компоненты и стараться минимизировать взаимодействие между ними. Таким образом, основная сложность при создании микроядерных ОС — необходимость очень аккуратного проектирования.

Поколения

Микроядра условно делят на поколения. Микроядра разных поколений различаются устройством и технологическими решениями.

Первое поколение

Второе поколение

Третье поколение

История

Микроядра типа ядра ОС Minix и GNU Hurd развиваются гораздо медленнее, чем Linux и ядро систем семейства BSD. По словам создателя Minix 3 Эндрю Таненбаума, он пытается «построить сверхнадёжную систему, которая может использоваться в том числе на серверах, которым необходимы годы безотказной работы»[2].

Классическим примером микроядерной ОС является Symbian OS. Это пример распространённой и отработанной микроядерной (a начиная c версии Symbian OS v8.1, и наноядерной) операционной системы.

Создателям Symbian OS удалось совместить эффективность и концептуальную стройность, несмотря на то, что современные версии этой системы предоставляют обширные возможности, в том числе средства для работы c потоковыми данными, стеками протоколов, критичными к латентности ядра, графикой и видео высокого разрешения. Разработчики Symbian вынесли практически все прикладные (т. e. выходящие за пределы компетенции ядра) задачи в модули-серверы, функционирующие в пользовательском адресном пространстве.

В ОС Windows NT версий 3.х микроядерная архитектура с сервисным процессом использовалась для подсистемы графики и пользовательского интерфейса. В частности, драйвер графической аппаратуры загружался в контекст сервисного процесса, а не ядра. Начиная с версии 4, от этого отказались, сервисный процесс сохранился только для управления консольными окнами командной строки, а собственно графическая подсистема вместе с драйвером аппаратуры (в том числе трёхмерной графики) переместилась в специально обособленный регион ядра ОС.

ОС Windows CE (и созданные на её основе сборки, такие как Windows Mobile), будучи практически полностью совместимой (как подмножество) с Windows NT по вызовам и методам программирования приложений, тем не менее полностью отличается от Windows NT по внутренней архитектуре и является микроядерной ОС с выносом всех драйверов устройств, сетевых стеков и графической подсистемы в сервисные процессы.

Недостаток — плата за принудительное «переключение» процессов в ядре (переключение контекста); этот факт собственно и объясняет трудности в проектировании и написании ядер подобной конструкции. Эти недостатки способны обойти ОС, использующие архитектуру экзоядра, являющуюся дальнейшим развитием микроядерной архитектуры.

См. также

Виды ядер
Операционные системы, построенные на основе микроядер

Примечания

Ссылки

🔥 Top keywords: Заглавная страницаЯндексДуров, Павел ВалерьевичСлужебная:ПоискYouTubeЛунин, Андрей АлексеевичПодносова, Ирина ЛеонидовнаВКонтактеФоллаут (телесериал)WildberriesTelegramРеал Мадрид (футбольный клуб)Богуславская, Зоя БорисовнаДуров, Валерий СемёновичРоссияXVideosСписок умерших в 2024 годуЧикатило, Андрей РомановичFallout (серия игр)Список игроков НХЛ, забросивших 500 и более шайбПопков, Михаил ВикторовичOzon17 апреляИльин, Иван АлександровичMail.ruСёгун (мини-сериал, 2024)Слово пацана. Кровь на асфальтеПутин, Владимир ВладимировичЛига чемпионов УЕФАГагарина, Елена ЮрьевнаБишимбаев, Куандык ВалихановичЛига чемпионов УЕФА 2023/2024Турнир претендентов по шахматам 2024Манчестер СитиMGM-140 ATACMSРоссийский миротворческий контингент в Нагорном КарабахеЗагоризонтный радиолокаторПинапВодительское удостоверение в Российской Федерации