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