управления доступом к устройствам ввода-вывода (открытие/закрытие доступа к портам ввода-вывода и MMIO-памяти устройств);
коммуникации и синхронизации процессов (англ.inter process communications, IPC) (управляемое и контролируемое нарушение изоляции памяти процесса для организации обмена данными).
Остальные примитивы/функции/компоненты/сервисы/модули, например:
Преимущества ОС, построенной на микроядре, по сравнению с ОС, построенной на монолитном ядре:
простота реализации (ядро и компоненты реализуют чётко определённую функциональность, поэтому размер их кода невелик);
простота отладки (компоненты — обычные процессы, поэтому могут отлаживаться с помощью инструментов, созданных для отладки процессов);
гарантированная безопасность (код небольшого размера можно проверить на корректность вручную или автоматически — с помощью математических рассуждений);
надёжность (в ОС с микроядерной архитектурой ошибка в одном из компонентов приведёт к завершению процесса компонента; в ОС с монолитным ядром отказ компонента приведёт к отказу ОС);
модульность (в микроядерной ОС большее число компонентов может быть запущено и остановлено по необходимости; например, для исправления ошибки можно внести изменения в код компонента, скомпилировать новый компонент, остановить старый и запустить новый).
Недостатки ОС, построенной на микроядре, по сравнению с ОС, построенной на монолитном ядре:
более низкая производительность (из-за накладных расходов на 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 по внутренней архитектуре и является микроядерной ОС с выносом всех драйверов устройств, сетевых стеков и графической подсистемы в сервисные процессы.
Недостаток — плата за принудительное «переключение» процессов в ядре (переключение контекста); этот факт собственно и объясняет трудности в проектировании и написании ядер подобной конструкции. Эти недостатки способны обойти ОС, использующие архитектуру экзоядра, являющуюся дальнейшим развитием микроядерной архитектуры.