Мікроядро

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
Структура операційних систем на монолітному ядрі, мікроядрі і гібридному ядрі

Мікроядро — це мінімальна реалізація функцій ядра операційної системи.

Класичні мікроядра реалізують лише дуже обмежений набір низькорівневих примітивів, або системних викликів, що являють собою базові сервіси операційної системи.

До них відносяться:

Всі інші сервіси ОС, які в класичних монолітних ядрах ОС реалізуються безпосередньо ядром, в мікроядерній архітектури реалізуються в користувацькому адресному просторі. Програми, що надають такі сервіси, у різних ОС можуть називатися по-різному: сервери, менеджери ресурсів. Прикладами є сервери мережевих протоколів, файлових систем, драйверів пристроїв.

Така конструкція дозволяє збільшити загальну швидкодію і час реакції системи. Невелике ядро може (і часто проектуєтся таким чином) поміститися в кеші процесора.

Недоліки мікроядра: оскільки код ядра виконується у режимі супервізора (привілейованому), а сервіси у режимі користувача (найменш привілейованому), то часто відбувається переключення контексту (context switch); цей факт власне і пояснює труднощі в проектуванні і написанні ядер подібної конструкції. Ці недоліки здатні обійти ядра, побудовані на архітектурі екзоядра, яка є подальшим розвитком мікроядерної архітектури.[джерело?]

Приклади операційних систем на основі мікроядра: QNX, L4 (мікроядро), Minix3, GNU Hurd.

Історія[ред. | ред. код]

Міжпроцесна взаємодія[ред. | ред. код]

Сервери[ред. | ред. код]

Сервери (інша назва — «менеджер ресурсів», як, наприклад, у операційній системі QNX[1]) у мікроядерних системах — програми, що працюють у режимі користувача, і є, по суті, демонами, але такими, що можуть мати спеціальні привілеї, надані ядром, як то: доступ до фізичної пам'яті, портів вводу/виводу, інших системних ресурсів, що як правило недоступні користувацьким застосункам.

Сервери можуть виконувати роль драйверів пристроїв, реалізувати мережні протоколи, файлові системи, псевдопристрої і інші програмні концепції. Розробка і запуск серверів відбувається у середовищі користувача, аналогічно до звичайних застосунків, а спеціальні «модулі ядра» (і пов'язані з цим особливі привілеї) не потрібні.

Драйвери пристроїв[ред. | ред. код]

Продуктивність[ред. | ред. код]

Безпека[ред. | ред. код]

Мікроядра «третього покоління»[ред. | ред. код]

Наноядро[ред. | ред. код]

Джерела[ред. | ред. код]