Mikrokernel
From Wikipedia, the free encyclopedia
Mikrokernel alebo mikrojadro je minimalistický kernel (jadro) operačného systému počítača, ktorý poskytuje iba základné služby operačného systému (systémové volania), kým iné služby (bežne poskytované kernelmi) namiesto neho (a v spolupráci s ním) poskytujú user-space programy nazývané servery. Mikrokernely zvyčajne poskytujú služby ako správa adresného priestoru, vlákien a komunikáciu medzi procesmi, ale nie napríklad podporu sietí či zobrazovacích zariadení.
Neskoršie rozšírenia tohto konceptu viedli k novým architektúram ako nanokernely, exokernely a abstrakčné vrstvy hardvéru (HAL).
Výhody konceptu mikrojadra pri návrhu systémov:
- (a) pridanie novej služby nevyžaduje modifikáciu jadra,
- (b) je principiálne bezpečnejšie, keďže viac operácií sa vykonáva v užívateľskom režime ako v režime jadra,
- (c) jednoduchší dizajn a funkcionalita zvyčajne má za následok spoľahlivejší operačný systém.
"'Mikrokernel'" je minimálny počítačový operačný systém kernel ktorý, vo svojej najčistejšej podobe, neposkytuje takmer žiadne služby operačného systému, iba "mechanizmus" potrebný na implementáciu takých služieb ako je nízko úrovňový adresový priestorový manažment, vláknový manažment a vnútro procesovú komunikáciu (IPC). Ak mikrokernel rozlišuje medzi kernelovským a používateľským módom, tak mikrokernel je jedinou časťou systému vykonávanou v kernel móde. Skutočné služby operačného systému sú poskytované servermi "používateľského módu". Tie zahŕňajú ovládače zariadenia, protokolový zásobník, súborový systém a kód používateľského rozhrania.
Tieto výsledky v systémovej štruktúre sa drasticky odlišujú od monolitických kernelov na masovom trhu. Tento má zvyčajne vertikálne delenú štruktúru, ktorá je založená na tom, že služby sú aplikáciám prideľované na základe systémového volania, ktoré je pre každú službu špecifické. Kým systém založený na mikrokerneli má horizontálnu štruktúru charakteristickú získavaním systémových služieb tým, že vykonajú IPC volanie adresované konkrétnemu serveru.
Mikrokernely majú blízky vzťah s exokernelom. Veľa spoločného majú aj s hypervisormi, ale nerobia si nárok na minimalitu, a špecializujú sa na podporu virtuálnych strojov. L4 mikrokernel je často používaný ako hypervisor, ktorý poukazuje na to, že mikrokernel je možnou implementáciou hypervisor-u. Pojem nanokernel je historicky používaný na odlíšenie od skorších mikrokernelov, ktoré obsahovali aktuálne systémové služby, ale "princíp minimality" použitý Jochen Liedtkem v schéme L4 mikrokernelu naznačuje, že tieto termíny majú rovnaký význam; mikrokernel je moderná terminológia.