Srovnávací graf
Základ pro porovnání | Microkernel | Monolitické jádro |
---|---|---|
Základní | V uživatelských službách a jádrech microkernel jsou služby uchovávány v odděleném adresním prostoru. | V monolitickém jádru jsou uživatelské služby i služby jádra uchovávány ve stejném adresním prostoru. |
Velikost | Mikrokernel je menší. | Monolitické jádro je větší než mikrokernel. |
Provedení | Pomalé provádění. | Rychlé provedení. |
Prodlužitelný | Mikrokernel je snadno rozšiřitelný. | Monolitické jádro je těžké rozšířit. |
Bezpečnostní | Pokud dojde ke zhroucení služby, ovlivní to fungování mikrokernelu. | Pokud dojde ke zhroucení služby, celý systém havaruje v monolitickém jádře. |
Kód | Chcete-li napsat mikrokernel, je zapotřebí více kódu. | Chcete-li napsat monolitické jádro, je potřeba méně kódu. |
Příklad | QNX, Symbian, L4Linux, Singularity, K42, Mac OS X, Integrita, PikeOS, HURD, Minix a Coyotos. | Linux, BSD (FreeBSD, OpenBSD, NetBSD), Microsoft Windows (95, 98, Me), Solaris, OS-9, AIX, HP-UX, DOS, OpenVMS, XTS-400 atd. |
Definice Microkernel
Microkernel jako jádro spravuje všechny systémové prostředky. V mikrokernelu jsou však uživatelské služby a služby jádra implementovány v jiném adresním prostoru. Uživatelské služby jsou uchovávány v uživatelském adresním prostoru a služby jádra jsou uchovávány v adresovém prostoru jádra . To snižuje velikost jádra a dále snižuje velikost operačního systému.
Kromě komunikace mezi aplikací a hardwarem systému poskytuje microkernel minimální služby správy procesů a paměti. Komunikace mezi klientským programem / aplikací a službami běžícími v uživatelském adresním prostoru probíhá prostřednictvím předávání zpráv. Nikdy nepůsobí přímo. To snižuje rychlost provádění microkernelu.
V mikrokernelu jsou uživatelské služby izolovány od služeb jádra, takže pokud některá uživatelská služba selže, neovlivní to službu jádra, a proto operační systém zůstává nedotčen . To je jedna z výhod mikrokernelu. Mikrokernel je snadno rozšiřitelný . Pokud mají být nové služby přidány, přidají se do uživatelského adresního prostoru, a proto prostor jádra nevyžaduje žádnou změnu. Mikrokernel je také snadno přenosný, bezpečný a spolehlivý.
Definice monolitického jádra
Monolitické jádro spravuje systémové prostředky mezi aplikací a hardwarem systému. Na rozdíl od mikrokernelu jsou však uživatelské služby a služby jádra implementovány ve stejném adresním prostoru. To zvyšuje velikost jádra, což dále zvyšuje velikost operačního systému.
Monolitické jádro poskytuje plánování systému, správu paměti, správu souborů a další funkce operačního systému prostřednictvím systémových volání. Vzhledem k tomu, že uživatelské služby a služby jádra sídlí ve stejném adresním prostoru, výsledkem je rychle se spouštějící operační systém.
Jednou z nevýhod monolitického jádra je, že pokud některá služba selže, je celý systém havarován. Má-li být v monolitickém jádru přidána nová služba, musí být celý operační systém upraven.
Klíčové rozdíly mezi mikrokernelem a monolitickým jádrem
- Základním bodem, na kterém se jádro microkernel a monolitické jádro odlišuje, je to, že microkernel implementuje uživatelské služby a služby jádra v různých adresních prostorech a monolitické jádro implementuje jak uživatelské služby, tak služby jádra pod stejným adresním prostorem .
- Velikost mikrokernelu je malá, protože v adresovém prostoru jádra se nacházejí pouze služby jádra. Velikost monolitického jádra je však poměrně větší než mikrokernel, protože služby jádra i uživatelské služby jsou umístěny ve stejném adresním prostoru.
- Provedení monolitického jádra je rychlejší, protože komunikace mezi aplikací a hardwarem je navázána pomocí systémového volání . Na druhé straně je provádění microkernelu pomalé, protože komunikace mezi aplikací a hardwarem systému je založena na předávání zpráv .
- Mikrokernel lze snadno rozšířit, protože nová služba má být přidána do uživatelského adresního prostoru, který je izolován od prostoru jádra, takže jádro nemusí být upravováno. Opačný je případ s monolitickým jádrem jestliže nová služba má být přidána v monolitickém jádře pak celé jádro potřebuje být upraven.
- Microkernel je bezpečnější než monolitické jádro, jako kdyby služba v mikrokernelu selhala, operační systém zůstane nedotčen. Na druhou stranu, pokud služba selže v monolitickém jádru, celý systém selže.
- Návrh monolitického jádra vyžaduje méně kódu, což dále vede k menšímu počtu chyb. Na druhou stranu, microkernel navrhování potřebuje více kódu, který dále vede k více chyb.
Závěr:
Microkernel je pomalejší, ale bezpečnější a spolehlivější než monolitické jádro. Monolitické jádro je rychlé, ale méně bezpečné, protože jakékoli selhání služby může vést k havárii systému.