Jádro operačního systému

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 23. července 2021; kontroly vyžadují 11 úprav .

Jádro ( anglicky  kernel ) je centrální část operačního systému (OS), která poskytuje aplikacím koordinovaný přístup ke zdrojům počítače , jako je čas procesoru , paměť , externí hardware , externí vstupní a výstupní zařízení. Je také běžné, že jádro poskytuje služby souborového systému a síťového protokolu .

Jako základní prvek operačního systému představuje jádro nejnižší úroveň abstrakce pro aplikace pro přístup k systémovým prostředkům nezbytným pro jejich práci. Jádro zpravidla poskytuje takový přístup ke spustitelným procesům odpovídajících aplikací pomocí mechanismů meziprocesové komunikace a volání aplikací do systémových volání OS.

Popsaná úloha se může lišit v závislosti na typu architektury jádra a způsobu její implementace.

Typy architektur jádra operačního systému

Monolitické jádro

Monolitické jádro poskytuje bohatou sadu hardwarových abstrakcí. Všechny části monolitického jádra fungují ve stejném adresním prostoru . Jde o takové schéma operačního systému, ve kterém jsou všechny součásti jeho jádra součástmi jednoho programu, používají společné datové struktury a vzájemně se ovlivňují přímým voláním procedur. Monolitické jádro je nejstarší způsob organizace operačních systémů. Většina systémů UNIX je příkladem systémů s monolitickým jádrem.

Příklady: Tradiční UNIXová jádra (jako BSD ), Linux ; Jádro MS-DOS , jádro KolibriOS .

Některá starší monolitická jádra, zejména systémy třídy UNIX / Linux , bylo nutné překompilovat při každé změně hardwaru. Většina moderních jader umožňuje za běhu načítat moduly , které provádějí část funkcí jádra. V tomto případě komponenty operačního systému nejsou nezávislé moduly, ale části jednoho velkého programu zvaného monolitické jádro, což je sada procedur, z nichž každá může každou volat. Všechny procedury běží v privilegovaném režimu.

Modulární jádro

Modulární jádro  je moderní, vylepšená modifikace architektury monolitických jader operačních systémů .

Na rozdíl od „klasických“ monolitických jader modulární jádra obecně nevyžadují kompletní rekompilaci jádra, když se změní hardware počítače . Místo toho modulární jádra poskytují určitý mechanismus pro načítání modulů jádra, které podporují konkrétní hardware (jako jsou ovladače ). Současně může být načítání modulů buď dynamické (prováděné za běhu, bez restartování operačního systému, v běžícím systému) nebo statické (prováděné, když je operační systém restartován poté, co byl systém překonfigurován tak, aby načítal určité moduly).

Příklady: OpenVMS ;

Microkernel

Mikrokernel poskytuje pouze elementární funkce řízení procesů a minimální sadu abstrakcí pro práci s hardwarem. Většina práce se provádí prostřednictvím speciálních uživatelských procesů nazývaných servery . Rozhodujícím kritériem pro "mikrokernel" je umístění všech nebo téměř všech ovladačů a modulů v servisních procesech, někdy se zřejmou nemožností nahrát jakékoli rozšiřující moduly do samotného mikrojádra, stejně jako vývoj takových rozšíření.

Klasická mikrojádra poskytují pouze velmi malou sadu nízkoúrovňových primitiv neboli systémových volání , která implementují základní služby operačního systému.

Příklady: SymbianOS ; Windows CE ; Mach , používaný v GNU/Hurd a Mac OS X ; QNX ; AIX ; Minix ; Chorus OS ; AmigaOS ; MorphOS .

Exokernel

Exokernel je jádrem operačního systému a poskytuje pouze funkce pro interakci mezi procesy, bezpečnou alokaci a uvolnění zdrojů. Předpokládá se, že API pro aplikační programy budou poskytovat knihovny mimo jádro (odtud název architektury).

Schopnost přístupu k zařízením na úrovni řadiče umožní efektivněji řešit některé úlohy, které dobře nezapadají do rámce univerzálního OS, například implementace DBMS bude mít přístup k disku na úrovni sektoru disku , spíše než soubory a clustery , což pozitivně ovlivní výkon.

Nanonucleus

Nanokernel je architektura jádra operačního systému, ve které extrémně zjednodušené a minimalistické jádro plní pouze jeden úkol – zpracovává hardwarová přerušení generovaná počítačovými zařízeními. Po zpracování přerušení z hardwaru nanokernel zase posílá informace o výsledcích zpracování (například znaky přijaté z klávesnice) do vyššího softwaru pomocí stejného mechanismu přerušení. Příkladem je KeyKOS  , úplně první OS založený na nanojádru. První verze vyšla v roce 1983.

Hybridní jádro

Hybridní jádra jsou upravená mikrojádra, která umožňují spouštět „nepodstatné“ části v prostoru jádra pro urychlení práce. Příklad: jádra operačního systému Windows z rodiny NT .

Kombinace různých přístupů

Všechny uvažované přístupy ke konstrukci operačních systémů mají své výhody a nevýhody. Ve většině případů moderní operační systémy využívají různé kombinace těchto přístupů. Takže například nyní je jádro Linuxu monolitický systém s oddělenými prvky modulárního jádra [1] . Při kompilaci jádra můžete povolit dynamické načítání a odebírání velkého počtu komponent jádra – takzvaných modulů. Když je modul načten, jeho kód je načten na systémové úrovni a propojen se zbytkem jádra. Uvnitř modulu lze použít jakékoli funkce exportované jádrem.

Existují varianty operačního systému GNU , které používají jádro Mach (stejné jako Hurd) místo monolitického jádra a navíc spouštějí stejné procesy v uživatelském prostoru, které by byly součástí jádra pod Linuxem . Dalším příkladem smíšeného přístupu je schopnost provozovat operační systém s monolitickým jádrem pod kontrolou mikrojádra. Takto jsou 4.4BSD a MkLinux založeny na mikrojádru Mach . Mikrokernel poskytuje správu virtuální paměti a nízkoúrovňové ovladače. Všechny ostatní funkce, včetně interakce s aplikačními programy, vykonává monolitické jádro. Tento přístup vznikl jako výsledek pokusů využít výhod architektury mikrojádra při zachování co možná nejlepšího vyladění monolitického kódu jádra.

Smíšené jádro by v zásadě mělo spojovat výhody monolitického jádra a mikrojádra: zdálo by se, že mikrojádro a monolitické jádro jsou extrémy a smíšené je zlatá střední cesta. Je možné k nim přidat ovladače zařízení dvěma způsoby: jak uvnitř jádra, tak v uživatelském prostoru. Ale v praxi koncept smíšeného jádra často zdůrazňuje nejen výhody, ale i nevýhody obou typů jader.

Příklady: Windows NT , DragonFly BSD .

Poznámky

  1. Co je linuxové jádro a co dělá?  (anglicky) . Staženo 29. června 2018.

Literatura

Odkazy