WikiSort.ru - Не сортированное

ПОИСК ПО САЙТУ | о проекте
Архитектура микроядра, основанная на программах-серверах, работающих в пользовательском режиме

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

Устройство

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

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

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

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

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

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

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

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

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

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

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

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

См. также

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

Примечания

Ссылки

Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".

Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.

Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .




Текст в блоке "Читать" взят с сайта "Википедия" и доступен по лицензии Creative Commons Attribution-ShareAlike; в отдельных случаях могут действовать дополнительные условия.

Другой контент может иметь иную лицензию. Перед использованием материалов сайта WikiSort.ru внимательно изучите правила лицензирования конкретных элементов наполнения сайта.

2019-2024
WikiSort.ru - проект по пересортировке и дополнению контента Википедии