Microkernel in Operasystém ting: Architecture, Výhody
⚡ Chytré shrnutí
Mikrojádro je minimální jádro operačního systému, které v prostoru jádra uchovává pouze základní funkce – správu paměti, plánování procesů a komunikaci mezi procesy – zatímco ovladače zařízení, souborové servery a další služby běží samostatně v uživatelském prostoru.

Než se naučíme mikrojádro, pojďme si ujasnit:
Co je to jádro?
Jádro je důležitou součástí operačního systému, která spravuje systémové prostředky. Funguje také jako most mezi softwarem a hardwarem počítače. Je to jeden z prvních programů, který se načte při spuštění po bootloaderu. Jádro je také zodpovědné za poskytování bezpečného přístupu k hardwaru počítače pro různé programy. Také rozhoduje o tom, kdy a jak dlouho bude určitá aplikace používat konkrétní hardware.
Co je Microkernel?
Mikrojádro je software nebo kód, který obsahuje požadované minimální množství funkcí, dat a vlastností pro implementaci operačního systému. Poskytuje minimální počet mechanismů, což je dostatečné pro spuštění nejzákladnějších funkcí operačního systému. Umožňuje implementaci dalších částí operačního systému, protože nezavádí mnoho pravidel.
Mikrojádra a jejich uživatelská prostředí jsou obvykle implementována v C++ or C programovací jazyky s trochou montáže. S některým kódováním na vysoké úrovni jsou však možné i jiné implementační jazyky.
Co je to monolitické jádro?
Monolitické jádro spouští všechny základní systémové služby, jako například řízení procesu, správa paměti, I/O komunikace a zpracování přerušení, souborový systém atd. v prostoru jádra.
V tomto typu přístupu k jádru běží celý operační systém jako jeden program v režimu jádra. Operační systém je napsán jako kolekce procedur, které jsou propojeny do velkého spustitelného binárního programu.
Mikrokernel Architecture
Mikrojádro je nejdůležitější součástí pro správnou implementaci operačního systému. Jak je vidět na níže uvedeném diagramu, mikrojádro plní základní operace, jako je paměť, mechanismy plánování procesů a komunikace mezi procesy.
Na bázi mikrokernelu Operasystém
Mikrojádro je jediný software běžící na privilegované úrovni. Další důležité funkce operačního systému jsou vyjmuty z režimu jádra a běží v uživatelském režimu. Mezi tyto funkce mohou patřit ovladače zařízení, aplikace, souborové servery, komunikace mezi procesy atd.
Komponenty mikrokernelu
Mikrojádro zahrnuje pouze základní funkce systému. Komponenta je zahrnuta do mikrojádra pouze tehdy, pokud by její umístění mimo něj narušilo funkčnost systému. Všechny ostatní neesenciální komponenty by měly být uvedeny do uživatelského režimu.
Minimální funkce požadované v mikrojádru jsou:
- Správa paměti Mikrojádro by mělo zahrnovat mechanismy, jako jsou adresní prostory. Obsahuje také funkce ochrany paměti.
- Procesorové plánovací mechanismy by měly obsahovat plánovače procesů a vláken.
- Meziprocesová komunikace spravuje servery, které provozují své vlastní adresní prostory.
Rozdíl mezi mikrojádrem a monolitickým jádrem
| parametry | Monolitické jádro | Mikrokernel |
|---|---|---|
| Basic | Jedná se o rozsáhlý proces běžící v jednom adresním prostoru. | Lze jej rozdělit na samostatné procesy nazývané servery. |
| Code | Aby bylo možné napsat monolitické jádro, je potřeba méně kódu. | Aby bylo možné napsat mikrojádro, je zapotřebí více kódu. |
| Bezpečnost | Pokud dojde k selhání služby, celý systém se zhroutí v monolitickém jádře. | Pokud dojde k selhání služby, nikdy to neovlivní fungování mikrojádra. |
| Komunikace | Je to jeden statický binární soubor. | Servery komunikují přes IPC. |
| Příklad | Linux, BSD, Microsoft Windows (95, 98, Já), Solaris, OS-9, AIX, DOS, XTS-400 atd. | L4Linux, QNX, Symbian, K42, Mac OS X Integrity, Etc. |
Výhody mikrokernelu
Zde jsou výhody/výhody použití mikrojádra:
- Architektura mikrojádra je malá a izolovaná, proto může fungovat lépe.
- Mikrojádra jsou bezpečná, protože obsahují pouze ty komponenty, které by jinak narušily funkčnost systému.
- Rozšíření systému je dostupnější, takže jej lze přidat do systémové aplikace bez narušení jádra.
- Mikrojádra jsou modulární a různé moduly lze nahradit, znovu načíst nebo upravit, aniž by se bylo nutné dotknout jádra.
- Méně systémových pádů ve srovnání s monolitickými systémy.
- Rozhraní mikrojádra vám pomáhá vynutit modulárnější strukturu systému.
- Nové funkce lze přidat bez nutnosti rekompilace.
- Porucha serveru je také izolovaná, stejně jako porucha jakéhokoli jiného uživatelského programu.
- Systém mikrojádra je flexibilní, takže v systému mohou koexistovat různé strategie a API implementované různými servery.
- Zvýšená bezpečnost a stabilita jsou důsledkem menšího množství kódu běžícího v režimu jádra.
Nevýhody mikrojádra
Zde jsou nevýhody/nevýhody použití mikrojádra:
- Poskytování služeb v mikrojádrovém systému je ve srovnání s běžným monolitickým systémem drahé.
- Přepnutí kontextu nebo volání funkce je nutné, pokud jsou ovladače implementovány jako procedury nebo procesy.
- Výkon mikrokernelu může být lhostejný a může vést k určitým problémům.

