Мікроядро в Operaсистема ting: Archiтектура, переваги
⚡ Розумний підсумок
Мікроядро — це мінімальне ядро операційної системи, яке зберігає лише основні функції — управління пам'яттю, планування процесів та міжпроцесну взаємодію — у просторі ядра, тоді як драйвери пристроїв, файлові сервери та інші служби працюють окремо в просторі користувача.

Перш ніж ми вивчатимемо мікроядро, давайте розберемося:
Що таке ядро?
Ядро – це важлива частина ОС, яка керує системними ресурсами. Воно також виступає посередником між програмним та апаратним забезпеченням комп’ютера. Це одна з перших програм, яка завантажується під час запуску після завантажувача. Ядро також відповідає за забезпечення безпечного доступу до апаратного забезпечення машини для різних програм. Воно також вирішує, коли і як довго певна програма використовуватиме конкретне обладнання.
Що таке Microkernel?
Мікроядро — це програмне забезпечення або код, який містить необхідну мінімальну кількість функцій, даних та можливостей для реалізації операційної системи. Воно забезпечує мінімальну кількість механізмів, чого достатньо для виконання найбазовіших функцій операційної системи. Воно дозволяє реалізовувати інші частини операційної системи, оскільки не нав'язує багато політик.
Мікроядра та їх середовища користувача зазвичай реалізуються в C++ or Мови програмування C з невеликою збіркою. Однак інші мови реалізації можливі з деяким кодуванням високого рівня.
Що таке монолітне ядро?
Монолітне ядро виконує всі основні системні служби, такі як управління процесами, управління пам'яттю, зв'язок вводу/виводу та обробка переривань, файлова система тощо, в просторі ядра.
У цьому типі підходу до ядра вся операційна система працює як єдина програма в режимі ядра. Операційна система пишеться як набір процедур, пов'язаних разом у великий виконуваний двійковий файл програми.
Мікроядро Archiтектура
Мікроядро є найважливішою частиною для правильної реалізації операційної системи. Як видно на діаграмі нижче, мікроядро виконує основні операції, такі як пам'ять, механізми планування процесів та міжпроцесна взаємодія.
На основі мікроядра Operating System
Мікроядро — це єдине програмне забезпечення, яке виконується на привілейованому рівні. Інші важливі функції ОС вилучені з режиму ядра та виконуються в режимі користувача. Ці функції можуть включати драйвери пристроїв, програми, файлові сервери, міжпроцесну комунікацію тощо.
Компоненти мікроядра
Мікроядро містить лише основні функції системи. Компонент включається до мікроядра лише тоді, коли його розміщення за його межами порушить функціональність системи. Усі інші несуттєві компоненти слід перевести в режим користувача.
Мінімальні функціональні можливості, необхідні для мікроядра:
- Управління пам'яттю Такі механізми, як адресні простори, повинні бути включені до мікроядра. Воно також містить функції захисту пам'яті.
- Механізми планування процесора повинні містити планувальники процесів і потоків.
- Міжпроцесовий зв’язок керує серверами, які мають власні адресні простори.
Різниця між мікроядром і монолітним ядром
| Параметри | Монолітне ядро | Мікроядро |
|---|---|---|
| Базовий | Це великий процес, що виконується в одному адресному просторі. | Його можна розбити на окремі процеси, які називаються серверами. |
| Code | Щоб написати монолітне ядро, потрібно менше коду. | Для написання мікроядра потрібно більше коду. |
| Безпека | Якщо служба виходить з ладу, вся система руйнується в монолітному ядрі. | Якщо служба виходить з ладу, це ніколи не впливає на роботу мікроядра. |
| Комунікація | Це один статичний бінарний файл. | Сервери спілкуються через IPC. |
| Приклад | Linux, BSD, Microsoft Windows (95, 98, Мене), Solaris, OS-9, AIX, DOS, XTS-400 тощо. | L4Linux, QNX, Symbian, K42, Mac OS X, Integrity, І т.д. |
Переваги Microkernel
Ось переваги/плюси використання мікроядра:
- Архітектура мікроядра мала та ізольована, тому вона може функціонувати краще.
- Мікроядра безпечні, оскільки включають лише ті компоненти, які в іншому випадку порушили б функціональність системи.
- Розширення системи є більш доступним, тому його можна додати до системної програми, не порушуючи ядро.
- Мікроядра є модульними, і різні модулі можна замінювати, перезавантажувати або модифікувати, навіть не торкаючись ядра.
- Менше системних збоїв у порівнянні з монолітними системами.
- Інтерфейс мікроядра допомагає вам забезпечити більш модульну структуру системи.
- Нові функції можна додавати без перекомпіляції.
- Несправність сервера також є ізольованою, як і несправність будь-якої іншої користувацької програми.
- Мікроядерна система є гнучкою, тому в системі можуть співіснувати різні стратегії та API, реалізовані різними серверами.
- Підвищена безпека та стабільність є результатом зменшення обсягу коду, що виконується в режимі ядра.
Недоліки мікроядра
Ось недоліки/протипоказання використання мікроядра:
- Надання послуг у мікроядерній системі є дорогим порівняно зі звичайною монолітною системою.
- Перемикання контексту або виклик функції потрібен, коли драйвери реалізовані як процедури або процеси відповідно.
- Продуктивність системи мікроядра може бути байдужою та призвести до деяких проблем.

