
Діаграма порівняння
Основа для порівняння | Мікроядро | Монолітне ядро |
---|---|---|
Основний | У послугах і ядрі користувачів ядра, послуги зберігаються в окремому адресному просторі. | У монолітному ядрі обидва сервіси користувача та служби ядра зберігаються в одному і тому ж просторі адрес. |
Розмір | Мікроядра мають менші розміри. | Монолітне ядро більше, ніж мікроядра. |
Виконання | Повільне виконання. | Швидке виконання. |
Розширюваний | Мікроядро легко розширюється. | Монолітне ядро важко розширити. |
Безпека | Якщо служба аварійно завершує роботу, вона впливає на роботу мікроядра. | Якщо служба аварійно завершується, вся система збігається в монолітному ядрі. |
Код | Для написання мікроядра потрібно більше коду. | Щоб написати монолітне ядро, потрібно менше коду. |
Приклад | QNX, Symbian, L4Linux, Singularity, K42, Mac OS X, цілісність, PikeOS, HURD, Minix і Coyotos. | Linux, BSD (FreeBSD, OpenBSD, NetBSD), Microsoft Windows (95, 98, Me), Solaris, OS-9, AIX, HP-UX, DOS, OpenVMS, XTS-400 тощо. |
Визначення мікроядра
Мікроядро, будучи ядром, управляє всіма системними ресурсами. Але в мікроядрі користувальницькі сервіси і сервіси ядра реалізовані в різних адресних просторах. Користувацькі служби зберігаються в адресному просторі користувача, а послуги ядра зберігаються в адресному просторі ядра . Це зменшує розміри ядра і ще більше зменшує розміри операційної системи.
Крім зв'язку між застосуванням і апаратним забезпеченням системи, мікроядро забезпечує мінімальні послуги управління процесами і пам'яттю. Зв'язок між клієнтською програмою / програмою та службами, що виконуються в адресному просторі користувача, встановлюється через передачу повідомлень. Вони ніколи не взаємодіють безпосередньо. Це знижує швидкість виконання мікроядра.
У мікроядрі користувальницькі сервіси ізольовані від сервісів ядра, тому, якщо будь-яка послуга користувача не працює, це не впливає на службу ядра і, отже, операційна система залишається незмінною . Це одне з переваг мікроядра. Мікроядро легко розширюється . Якщо додати нові послуги, вони додаються до адресного простору користувача і, отже, простір ядра не потребує ніяких змін. Мікроядро також легко переноситься, безпечно і надійно.
Визначення монолітного ядра
Монолітне ядро управляє системними ресурсами між додатком і апаратними засобами системи. Але на відміну від мікроядра, сервіси користувача і сервіси ядра реалізовані в одному і тому ж просторі адрес. Це збільшує розмір ядра, ще більше збільшує розмір операційної системи.
Монолітне ядро забезпечує планування процесора, управління пам'яттю, управління файлами та інші функції операційної системи через системні виклики. Оскільки сервіси користувачів і сервіси ядра перебувають у одному і тому ж просторі адрес, це призводить до швидкої операційної системи.
Один з недоліків монолітного ядра полягає в тому, що будь-яка служба не впорається з цією системою. Якщо в монолітному ядрі буде додано нову послугу, необхідно змінити всю операційну систему.
Основні відмінності між ядром і монолітним ядром
- Основною точкою, на якій розрізняється мікроядро і монолітне ядро, є те, що мікроядро реалізує користувальницькі сервіси і сервіси ядра в різних адресних просторах, а монолітне ядро реалізує як користувальницькі сервіси, так і сервіси ядра під одним адресним простором .
- Розмір мікроядра невеликий, оскільки в адресному просторі ядра знаходяться лише служби ядра. Тим не менш, розмір монолітного ядра порівняно більший, ніж мікроядро, оскільки обидва сервіси ядра і користувацькі служби знаходяться в одному і тому ж просторі адрес.
- Виконання монолітного ядра відбувається швидше, оскільки зв'язок між прикладною програмою та обладнанням встановлюється за допомогою системного виклику . З іншого боку, виконання мікроядра відбувається повільно, оскільки зв'язок між додатками і апаратними засобами системи встановлюється через передачу повідомлень .
- Микроядро легко розширювати, оскільки в адресному просторі користувача, який є ізольованим від простору ядра, потрібно додати нову послугу, тому ядро не потребує модифікації. Протилежним є випадок з монолітним ядром, якщо в монолітному ядрі буде додано нову послугу, то потрібно змінити ціле ядро.
- Мікроядро є більш безпечним, ніж монолітне ядро, так як якщо служба не працює в мікроядрі, то операційна система залишається незмінною. З іншого боку, якщо служба не працює в монолітному ядрі, то вся система не працює.
- Монолітне проектування ядра вимагає менше коду, що призводить до зменшення кількості помилок. З іншого боку, проектування мікроядра потребує більше коду, який призводить до появи більшої кількості помилок.
Висновок:
Мікроядро відбувається повільніше, але більш безпечно і надійно, ніж монолітне ядро. Монолітне ядро швидко, але менш захищене, оскільки будь-яка помилка служби може призвести до збою системи.