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