МікроядроМікроядро — це мінімальна реалізація функцій ядра операційної системи. Класичні мікроядра реалізують лише дуже обмежений набір низькорівневих примітивів, або системних викликів, що являють собою базові сервіси операційної системи. До них належать:
Всі інші сервіси ОС, які в класичних монолітних ядрах ОС реалізуються безпосередньо ядром, в мікроядерній архітектури реалізуються в користувацькому адресному просторі. Програми, що надають такі сервіси, у різних ОС можуть називатися по-різному: сервери, менеджери ресурсів. Прикладами є сервери мережевих протоколів, файлових систем, драйверів пристроїв. Така конструкція дозволяє збільшити загальну швидкодію і час реакції системи. Невелике ядро може (і часто проектуєтся таким чином) поміститися в кеші процесора. Недоліки мікроядра: оскільки код ядра виконується у режимі супервізора (привілейованому), а сервіси у режимі користувача (найменш привілейованому), то часто відбувається перемикання контексту; цей факт власне і пояснює труднощі в проектуванні і написанні ядер подібної конструкції. Ці недоліки здатні обійти ядра, побудовані на архітектурі екзоядра, яка є подальшим розвитком мікроядерної архітектури.[джерело?] Приклади операційних систем на основі мікроядра: QNX, L4 (мікроядро), Minix3, GNU Hurd. СервериСервери (інша назва — «менеджер ресурсів», як, наприклад, у операційній системі QNX[1]) у мікроядерних системах — програми, що працюють у режимі користувача, і є, по суті, демонами, але такими, що можуть мати спеціальні привілеї, надані ядром, як то: доступ до фізичної пам'яті, портів вводу/виводу, інших системних ресурсів, що як правило недоступні користувацьким застосункам. Сервери можуть виконувати роль драйверів пристроїв, реалізувати мережні протоколи, файлові системи, псевдопристрої і інші програмні концепції. Розробка і запуск серверів відбувається у середовищі користувача, аналогічно до звичайних застосунків, а спеціальні «модулі ядра» (і пов'язані з цим особливі привілеї) не потрібні. Джерела
|