Interested Article - Микроядро

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

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

Устройство

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

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

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

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

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

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

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

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

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

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

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

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

Поколения

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

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

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

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

  • seL4 от фирмы .
  • ( ) от фирмы «The EROS Group, LLC».
  • .

История

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

Классическим примером микроядерной ОС является 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 по внутренней архитектуре и является микроядерной ОС с выносом всех драйверов устройств, сетевых стеков и графической подсистемы в сервисные процессы.

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

См. также

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

Примечания

  1. от 24 июня 2015 на Wayback Machine . Официальный сайт.
  2. . Дата обращения: 17 мая 2010. 19 сентября 2010 года.

Ссылки

Источник —

Same as Микроядро