Monolitické jádro

Monolitické jádro je druh jádra operačního systému, jehož veškerý kód (nebo jeho převážná většina) běží ve stejném (jaderném) paměťovém prostoru, který se anglicky označuje jako kernel space. Tím se liší od tzv. mikrojádra, které většinu tradičních činností monolitického jádra, jako je třeba správa souborových systémů, implementuje v procesech, které běží v uživatelském paměťovém prostoru.

Schéma fungování monolitického kernelu

Přestože jsou monolitická jádra psána tak, aby byla činnost jednotlivých subsystémů oddělená, jsou jednotlivé části silně provázány. A navíc, protože sdílejí stejný paměťový prostor, může chyba v jednom subsystému zablokovat jiný, nebo dokonce shodit celé jádro. Na druhou stranu, pokud je dbáno na správnou implementaci jednotlivých částí, je monolitické jádro velice efektivní.

Rozhraní mezi operačním systémem a procesy zajišťují v monolitickém jádře tzv. systémová volání. Pomocí systémových volání mohou procesy využívat služby nabízené jádrem operačního systému, je-li jim to povoleno.

Dynamické nahrávání modulů

editovat

Unixové jádro je typickým příkladem monolitického jádra včetně systémů Linux, FreeBSD, NetBSD nebo třeba Solaris. Jejich novější generace přidávají podporu zavádění modulů za běhu, a proto není nutné při přidání dalšího hardware restartovat celý systém (např. USB flash disk), ale i jiné funkce (například podpora pro další síťové protokoly). Stačí za běhu nahrát moduly, které se zavedou do adresového prostoru jádra a propojí se s jeho funkcemi. Modulární jádro ale i s moduly zůstává monolitickým jádrem, protože vše běží v jediném paměťovém prostoru.

Při zavádění modulů až v okamžiku jejich potřeby vzniká jisté zpoždění, které je v mnoha případech akceptovatelné, ale někdy jsou moduly zaváděny ihned po startu systému.

Příklady monolitického kernelu

editovat

Související články

editovat