Микроядро
Микроядро (англ. microkernel) или μ-ядро (англ. μ‑kernel) — ядро операционной системы, реализующее минимальный набор функций.
Устройство
Работа с микроядром осуществляется так же, как и с монолитным ядром — через системные вызовы.
Микроядра предоставляют лишь небольшой набор низкоуровневых примитивов/механизмов/сервисов для:
- управления физической и виртуальной памятью компьютера (выделение памяти процессам, обеспечение её изоляции/защиты);
- управления процессорным временем (сервисы для работы с потоками (нитями) процессов (см. планировщик потоков (англ. scheduling));
- управления доступом к устройствам ввода-вывода (открытие/закрытие доступа к портам ввода-вывода и MMIO-памяти устройств);
- коммуникации и синхронизации процессов (англ. inter process communications, IPC) (управляемое и контролируемое нарушение изоляции памяти процесса для организации обмена данными).
Остальные примитивы/функции/компоненты/сервисы/модули, например:
- драйверы устройств;
- реализации файловых систем;
- стеки TCP/IP, USB и др.
работают в
На
Достоинства и недостатки
Преимущества ОС, построенной на микроядре, по сравнению с ОС, построенной на монолитном ядре:
- простота реализации (ядро и компоненты реализуют чётко определённую функциональность, поэтому размер их кода невелик);
- простота отладки (компоненты — обычные процессы, поэтому могут отлаживаться с помощью инструментов, созданных для отладки процессов);
- гарантированная безопасность (код небольшого размера можно проверить на корректность вручную или автоматически — с помощью математических рассуждений);
- надёжность (в ОС с микроядерной архитектурой ошибка в одном из компонентов приведёт к завершению процесса компонента; в ОС с монолитным ядром отказ компонента приведёт к отказу ОС);
- модульность (в микроядерной скомпилироватьновый компонент, остановить старый и запустить новый).
Недостатки ОС, построенной на микроядре, по сравнению с ОС, построенной на монолитном ядре:
- более низкая производительность (из-за накладных расходов на IPC).
Для того, чтобы микроядерная ОС по скорости не уступала ОС, построенной на базе монолитного ядра, требуется очень аккуратно проектировать разбиение системы на компоненты и стараться минимизировать взаимодействие между ними. Таким образом, основная сложность при создании микроядерных ОС — необходимость очень аккуратного проектирования.
Поколения
Микроядра условно делят на поколения. Микроядра разных поколений различаются устройством и технологическими решениями.
Первое поколение
Второе поколение
- Микроядро из ОС Minix от Эндрю Таненбаума (свободный университет Амстердама).
- L3 от Йохена Лидтке.
- L4/x86 от Йохена Лидтке.
Третье поколение
История
Микроядра типа ядра ОС 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 по внутренней архитектуре и является микроядерной ОС с выносом всех драйверов устройств, сетевых стеков и графической подсистемы в сервисные процессы.
Недостаток — плата за принудительное «переключение» процессов в ядре (переключение контекста); этот факт собственно и объясняет трудности в проектировании и написании ядер подобной конструкции. Эти недостатки способны обойти ОС, использующие архитектуру экзоядра, являющуюся дальнейшим развитием микроядерной архитектуры.
См. также
- Виды ядер
- Наноядро
- Экзоядро
- Гибридное ядро
- Микроядро (или μ‑ядро)
- Монолитное ядро
- Операционные системы, построенные на основе микроядер
- QNX
- AIX [?! UNIX система на базе монолитного ядра]
- osFree
- KasperskyOS
- Genode OS Framework
- Mac OS X[гибридное ядро с фрагментами ядра Mach]
- AmigaOS
- OpenVMS [?! монолитное ядро с модулями]
- Integrity
- Amoeba
- Minix
- Redox
Примечания
- ↑ Проект «Nova» Архивная копия от 24 июня 2015 на Wayback Machine. Официальный сайт.
- ↑ Интервью для русскоязычного сообщества разработчиков и пользователей ОС MINIX 3 . Дата обращения: 17 мая 2010. Архивировано 19 сентября 2010 года.
Ссылки
Для улучшения этой статьи желательно:
|