GNU/Linux >> Znalost Linux >  >> Linux

Jaké je srovnání linuxového jádra s mikrokernelovými architekturami?

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 selhání 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ý jiný 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.


Mikrokernel omezuje dobu, po kterou je systém v režimu jádra, na rozdíl od uživatelského prostoru, na absolutní minimum.

Pokud dojde k pádu v režimu jádra, celé jádro se zhroutí a to znamená, že se zhroutí celý systém. Pokud dojde k selhání v uživatelském režimu, tento proces skončí. Linux je v tomto ohledu robustní, ale stále je možné, aby jakýkoli subsystém jádra zapisoval do paměti jakéhokoli jiného subsystému jádra, ať už záměrně nebo náhodně.

Koncept mikrojádra vkládá do uživatelského prostoru spoustu věcí, které jsou v tradičním režimu jádra, jako jsou sítě a ovladače zařízení. Vzhledem k tomu, že mikrokernel není ve skutečnosti za mnoho odpovědný, znamená to také, že může být jednodušší a spolehlivější. Přemýšlejte o tom, jak protokol IP tím, že je jednoduchý a hloupý, skutečně vede k robustním sítím tím, že posouvá složitost na okraj a ponechává jádro štíhlé a průměrné.


Měli byste si přečíst druhou stranu problému:

Extreme High Performance Computing aneb Proč mikrojádra jsou na hovno

Souborový systém patří do jádra


Linux
  1. Jak upgradovat jádro na ploše Linuxu

  2. Jak zkontrolovat verzi jádra v Linuxu

  3. Linux – Jak se linuxové jádro srovnává s architekturami mikrokernelu?

  1. Linux – Jak správně znovu načíst modul jádra?

  2. Jak si stojí příkazový řádek Macu v porovnání s Linuxem?

  3. Jak může být linuxové jádro tak malé?

  1. Jak interně funguje copy_from_user z jádra Linuxu?

  2. Jak linuxové jádro určuje pořadí volání __init?

  3. Jak kódovat modul jádra Linuxu?