Jednou jsem četl, že jednou z výhod mikrokernelové architektury je, že můžete zastavit/spustit základní služby, jako jsou sítě a souborové systémy, aniž byste museli restartovat celý systém. Ale vzhledem k tomu, že linuxové jádro v dnešní době (bylo tomu tak vždy?) nabízí možnost používat moduly k dosažení stejného efektu, jaké jsou (zbývající) výhody mikrojádra?
Přijatá odpověď:
Mikrojádra vyžadují méně kódu ke spuštění v nejvnitřnějším a nejdůvěryhodnějším režimu než monolitická jádra. To má mnoho aspektů, jako například:
- Mikrokernely umožňují libovolné načítání a vyjímání nezákladních funkcí (jako jsou ovladače pro hardware, který není připojen nebo se nepoužívá). Toho lze většinou dosáhnout na Linuxu prostřednictvím modulů.
- Mikrojádra jsou robustnější:pokud dojde k zhroucení nekernelové komponenty, nevezme s sebou celý systém. Chybný souborový systém nebo ovladač zařízení může způsobit selhání systému Linux. Linux nemá žádný způsob, jak tyto problémy zmírnit, než praktiky kódování a testování.
- Mikrokernely mají menší důvěryhodnou výpočetní základnu. Takže ani škodlivý ovladač zařízení nebo souborový systém nemůže převzít kontrolu nad celým systémem (například ovladač pochybného původu pro váš nejnovější USB gadget by nebyl schopen přečíst váš pevný disk).
- Důsledkem předchozího bodu je, že běžní uživatelé mohou načíst své vlastní komponenty, které by byly komponentami jádra v monolitickém jádře.
Unixová GUI jsou poskytována prostřednictvím okna X, což je uživatelský kód (kromě (části) ovladače video zařízení). Mnoho moderních uniců umožňuje běžným uživatelům načítat ovladače souborového systému přes FUSE. Některá filtrování síťových paketů Linuxu lze provést v uživatelské zemi. Ovladače zařízení, plánovače, správci paměti a většina síťových protokolů však stále obsahuje pouze jádro.
Klasickým (pokud je datováno) čtením o Linuxu a mikrojádrech je debata Tanenbaum–Torvalds. O dvacet let později by se dalo říci, že Linux se velmi pomalu posouvá směrem ke struktuře mikrojádra (zaváděcí moduly se objevily brzy, FUSE je novější), ale stále je před námi dlouhá cesta.
Další věcí, která se změnila, je zvýšená relevance virtualizace na desktopech a špičkových embedded počítačích:pro některé účely není relevantní rozdíl mezi jádrem a uživatelskou zemí, ale mezi hypervizorem a hostujícím OS.
Související:Jak přizpůsobit automatické dokončování bash tak, aby vypisovalo soubory v jiném adresáři?