Doporučená, 2021

Redakce Choice

Rozdíl mezi mikrokernelem a monolitickým jádrem

Jádro je základní součástí operačního systému; spravuje systémové prostředky. Jádro je jako most mezi aplikací a hardwarem počítače. Jádro lze dále rozdělit do dvou kategorií: Microkernel a Monolitické jádro. Microkernel je ten, ve kterém jsou uživatelské služby a služby jádra uchovávány v odděleném adresním prostoru. Nicméně v monolitických uživatelských službách jádra a službách jádra jsou oba uchovávány ve stejném adresním prostoru. Pojďme diskutovat o některých dalších rozdílech mezi Microkernelem a monolitickým jádrem pomocí srovnávací tabulky uvedené níže.

Srovnávací graf

Základ pro porovnáníMicrokernelMonolitické 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.
VelikostMikrokernel 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ódChcete-li napsat mikrokernel, je zapotřebí více kódu.Chcete-li napsat monolitické jádro, je potřeba méně kódu.
PříkladQNX, 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

  1. 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 .
  2. 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.
  3. 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 .
  4. 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.
  5. 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.
  6. 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.

Top