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