Русская Википедия:Микроядро
Микроядро (Шаблон:Lang-en) или μ-ядро (Шаблон:Lang-en) — ядро операционной системы, реализующее минимальный набор функций.
Устройство
Работа с микроядром осуществляется так же, как и с монолитным ядром — через системные вызовы.
Микроядра предоставляют лишь небольшой набор низкоуровневых примитивов/механизмов/сервисов для:
- управления физической и виртуальной памятью компьютера (выделение памяти процессам, обеспечение её изоляции/защиты);
- управления процессорным временем (сервисы для работы с потоками (нитями) процессов (см. планировщик потоков (Шаблон:Lang-en));
- управления доступом к устройствам ввода-вывода (открытие/закрытие доступа к портам ввода-вывода и MMIO-памяти устройств);
- коммуникации и синхронизации процессов (Шаблон:Lang-en, IPC) (управляемое и контролируемое нарушение изоляции памяти процесса для организации обмена данными).
Остальные примитивы/функции/компоненты/сервисы/модули, например:
- драйверы устройств;
- реализации файловых систем;
- стеки TCP/IP, USB и др.
работают в пространстве пользователя в виде отдельных процессов, взаимодействуют с ядром с помощью системных вызовов, взаимодействуют друг с другом с помощью IPC. В операционной системе с монолитным ядром эти компоненты работают в пространстве ядра в виде потоков ядра.
На процессорах архитектуры x86 используется так называемая кольцевая защита. Процессы пространства пользователя работают на третьем кольце (Шаблон:Lang-en), не могут выполнять некоторые действия, доступные на нулевом кольце (Шаблон:Lang-en). Ошибка в процессе пространства пользователя в худшем случае приведёт к завершению процесса.
Достоинства и недостатки
Преимущества ОС, построенной на микроядре, по сравнению с ОС, построенной на монолитном ядре:
- простота реализации (ядро и компоненты реализуют чётко определённую функциональность, поэтому размер их кода невелик);
- простота отладки (компоненты — обычные процессы, поэтому могут отлаживаться с помощью инструментов, созданных для отладки процессов);
- гарантированная безопасность (код небольшого размера можно проверить на корректность вручную или автоматически — с помощью математических рассуждений);
- надёжность (в ОС с микроядерной архитектурой ошибка в одном из компонентов приведёт к завершению процесса компонента; в ОС с монолитным ядром отказ компонента приведёт к отказу ОС);
- модульность (в микроядерной ОС большее число компонентов может быть запущено и остановлено по необходимости; например, для исправления ошибки можно внести изменения в код компонента, скомпилировать новый компонент, остановить старый и запустить новый).
Недостатки ОС, построенной на микроядре, по сравнению с ОС, построенной на монолитном ядре:
- более низкая производительность (из-за накладных расходов на IPC).
Для того, чтобы микроядерная ОС по скорости не уступала ОС, построенной на базе монолитного ядра, требуется очень аккуратно проектировать разбиение системы на компоненты и стараться минимизировать взаимодействие между ними. Таким образом, основная сложность при создании микроядерных ОС — необходимость очень аккуратного проектирования.
Поколения
Микроядра условно делят на поколения. Микроядра разных поколений различаются устройством и технологическими решениями.
Первое поколение
- Микроядро Mach от университета Карнеги — Меллон (CMU).
- Микроядро ОС ChorusOS от института INRIA.
Второе поколение
- Микроядро из ОС 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
- Genode OS Framework
- Mac OS X [гибридное ядро с фрагментами ядра Mach]
- AmigaOS
- OpenVMS [?! монолитное ядро с модулями]
- Integrity
- Amoeba
- Minix
- Redox
Примечания
Ссылки
Шаблон:Аспекты операционных систем Шаблон:Rq
- ↑ Проект «Nova» Шаблон:Wayback. Официальный сайт.
- ↑ Шаблон:Cite web