logo

Co je to jádro?

V informatice, Kernel je počítačový program, který je jádrem nebo srdcem operačního systému. Než se budeme podrobněji zabývat jádrem, pojďme nejprve pochopit jeho základní, tj. operační systém v počítači.

Operační systém

Operační systém nebo OS je systémový software, který funguje jako rozhraní mezi hardwarovými komponentami a koncovým uživatelem. Umožňuje spouštění dalších programů. Každý počítačový systém, ať už jde o stolní počítač, notebook, tablet nebo chytrý telefon, musí mít operační systém, který zařízení poskytuje základní funkce. Některé široce používané operační systémy jsou Okna , Linux , MacOS, Android, iOS atd.

Co je jádro v operačním systému?

Co je Kernel
  • Jak bylo diskutováno výše, jádro je základní částí OS (operačního systému); má tedy plnou kontrolu nad vším v systému. Každá operace hardwaru a softwaru je řízena a spravována jádrem.
  • Funguje jako most mezi aplikacemi a zpracováním dat na hardwarové úrovni. Je to centrální součást OS.
  • Je to část OS, která je vždy umístěna v paměti počítače a umožňuje komunikaci mezi softwarovými a hardwarovými komponentami.
  • Je to počítačový program, který se jako první nahrál při startu systému (po bootloaderu). Jakmile je načten, spravuje zbývající spuštění. Také spravuje požadavky na paměť, periferie a I/O ze softwaru. Navíc převádí všechny I/O požadavky na instrukce pro zpracování dat pro CPU. Zvládá i jiné úkoly jako je správa paměti, správa úloh a správa disků .
  • Jádro je uchováváno a obvykle načteno do samostatného paměťového prostoru, známého jako chráněný prostor jádra. Je chráněn před přístupem aplikačních programů nebo méně důležitých částí OS.
  • Jiné aplikační programy, jako je prohlížeč, textový procesor, audio a video přehrávač, využívají samostatný paměťový prostor, tzv uživatelský prostor.
  • Díky těmto dvěma odděleným prostorům se uživatelská data a data jádra vzájemně neovlivňují a nezpůsobují žádnou nestabilitu a pomalost.

Funkce jádra

Jádro OS je zodpovědné za provádění různých funkcí a má kontrolu nad systémem. Některé hlavní odpovědnosti jádra jsou uvedeny níže:

    Správa zařízení
    K provádění různých akcí vyžadují procesy přístup k periferním zařízením, jako je myš, klávesnice atd., která jsou připojena k počítači. Za ovládání těchto zařízení pomocí ovladačů zařízení odpovídá jádro. Zde, a ovladač zařízení je počítačový program, který pomáhá nebo umožňuje OS komunikovat s jakýmkoli hardwarovým zařízením.
    Jádro udržuje seznam všech dostupných zařízení a tento seznam může být již známý, nakonfigurovaný uživatelem nebo detekovaný OS za běhu.Správa paměti
    Jádro má plnou kontrolu nad přístupem do paměti počítače. Každý proces vyžaduje určitou paměť, aby fungoval, a jádro umožňuje procesům bezpečný přístup k paměti. Pro alokaci paměti je první krok známý jako virtuální adresování, což se provádí stránkováním nebo segmentací. Virtuální adresování je proces poskytování virtuálních adresových prostorů procesům. Tím se zabrání tomu, aby do sebe aplikace spadly.Správa zdrojů
    Jednou z důležitých funkcí jádra je sdílení zdrojů mezi různými procesy. Musí sdílet zdroje tak, aby každý proces ke zdroji přistupoval jednotně.
    Jádro také poskytuje způsob synchronizace a meziprocesová komunikace (IPC). Je zodpovědný za přepínání kontextu mezi procesy.Přístup k počítačovým zdrojům
    Jádro je zodpovědné za přístup k počítačovým zdrojům, jako jsou RAM a I/O zařízení. RAM nebo paměť s náhodným přístupem se používá k tomu, aby obsahovala data i instrukce. Každý program potřebuje ke spuštění přístup k paměti a většinou chce více paměti, než je k dispozici. V takovém případě hraje svoji roli jádro a rozhoduje, jakou paměť jednotlivé procesy použijí a co dělat, když požadovaná paměť není k dispozici.
    Jádro také přiděluje požadavek aplikací na použití I/O zařízení, jako jsou klávesnice, mikrofony, tiskárny atd.

Typy jádra

Existuje hlavně pět typů jádra, které jsou uvedeny níže:

Co je Kernel

1. Monolitická jádra

V monolitickém jádru, stejný paměťový prostor se používá k implementaci uživatelských služeb a služeb jádra.

Co je Kernel

To znamená, že v tomto typu jádra neexistuje žádná odlišná paměť používaná pro uživatelské služby a služby jádra.

Protože využívá stejný paměťový prostor, velikost jádra se zvětšuje, čímž se zvyšuje celková velikost operačního systému.

Provádění procesů je také rychlejší než u jiných typů jader, protože nevyužívá oddělený uživatelský a jaderný prostor.

Příklady monolitických jader jsou Unix, Linux, Open VMS, XTS-400 atd.

výhody:

  • Provádění procesů je také rychlejší, protože neexistuje žádný samostatný uživatelský prostor a prostor jádra a méně softwaru.
  • Vzhledem k tomu, že se jedná o jeden kus softwaru, jsou zdroje i kompilované formy menší.

Nevýhody:

  • Pokud některá služba vygeneruje chybu, může dojít k pádu celého systému.
  • Tato jádra nejsou přenosná, což znamená, že pro každou novou architekturu musí být přepsána.
  • Jsou velké, a proto je obtížné je spravovat.
  • Pro přidání nové služby je potřeba upravit celý operační systém.

2. Mikrojádro

Co je Kernel

Mikrokernel je také označován jako MK a liší se od tradičního jádra nebo monolitického jádra. V tomhle, uživatelské služby a služby jádra jsou implementovány do dvou různých adresních prostorů: uživatelského prostoru a prostoru jádra . Vzhledem k tomu, že používá různé prostory pro obě služby, velikost mikrojádra se zmenšila a tím se také zmenšila velikost operačního systému.

Mikrojádra se snadněji spravují a udržují ve srovnání s monolitickými jádry. Pokud však dojde k většímu počtu systémových volání a přepínání kontextu, může to snížit výkon systému tím, že bude zpomalen.

Tato jádra používají systém předávání zpráv pro zpracování požadavku z jednoho serveru na druhý server.

Mikrojádra poskytují pouze některé základní služby, jako je definování adresních prostorů paměti, IPC (meziprocesová komunikace) a řízení procesů. Jiné služby, jako je síťování, nejsou poskytovány jádrem a jsou zpracovávány programem v uživatelském prostoru známým jako servery .

Jedna z hlavních nevýhod monolitických jader, že chyba v jádře může zhroutit celý systém, lze odstranit v mikrojádru. Stejně jako v mikrojádru, pokud dojde k zhroucení procesu jádra, zhroucení celého systému lze stále zabránit restartováním služeb způsobených chybami.

Příklady Microkernel jsou L4, AmigaOS, Minix, K42 , atd.

Výhody

  • Mikrojádra lze snadno spravovat.
  • Novou službu lze snadno přidat bez úpravy celého OS.
  • Pokud v mikrokernelu dojde k selhání procesu jádra, je stále možné zabránit pádu celého systému.

Nevýhody

  • Existuje více požadavků na software pro rozhraní, což snižuje výkon systému.
  • Řízení procesu je velmi složité.
  • Chyby v zasílání zpráv se obtížně opravují.

3. Hybridní jádro

Co je Kernel

Hybridní jádra jsou také známá jako modulární jádra a je to kombinace jak Monolithic, tak Microkernels. Využívá rychlosti monolitických jader a modularity mikrojader.

Hybridní jádro lze chápat jako rozšířenou verzi mikrokernelu s dalšími vlastnostmi monolitického jádra. Tato jádra jsou široce používána v komerčních OS, jako jsou různé verze MS Windows.

Je hodně podobný mikrojádru, ale obsahuje také nějaký další kód v prostoru jádra pro zvýšení výkonu systému.

Hybridní jádra umožňují spouštět některé služby jako např síťový zásobník v prostoru jádra snížit výkon ve srovnání s tradičním mikrojádrem, ale stále umožňuje spouštět kód jádra (jako jsou ovladače zařízení) jako servery v uživatelském prostoru.

Příklady hybridního jádra jsou Windows NT, Netware, BeOS atd.

výhody:

s v pythonu
  • Pro testování není vyžadován restart.
  • Technologie třetích stran lze rychle integrovat.

Nevýhody:

  • Existuje možnost více chyb s více rozhraními, kterými lze projít.
  • Pro některé administrátory může být údržba modulů matoucí, zvláště když řešíte problémy, jako jsou rozdíly v symbolech.

4. Nanojádro

Jak název napovídá, v Nanokernelu je úplný kód jádra velmi malý, což znamená, že kód spouštěný v privilegovaném režimu hardwaru je velmi malý . Zde termín nano definuje jádro, které podporuje rozlišení nanosekundových hodin.

Příklady nanokernelu jsou EROS atd.

Výhody

  • Poskytuje hardwarové abstrakce i při velmi malé velikosti.

Nevýhody

  • Nanokernel postrádá systémové služby.

5. Exokernel

Exokernel se stále vyvíjí a je experimentálním přístupem pro navrhování OS.

Tento typ jádra se liší od ostatních jader jako v tomto; ochrana zdrojů je oddělena od správy, což nám umožňuje provádět přizpůsobení specifické pro aplikaci.

výhody:

  • Systém založený na exokernelu může zahrnovat více operačních systémů knihoven. Každá knihovna exportuje jiné API, například jedno lze použít pro vývoj uživatelského rozhraní na vysoké úrovni a druhé lze použít pro ovládání v reálném čase. .

Nevýhody:

  • Konstrukce exokernelu je velmi složitá.

Co je to Kernel Panics?

Jak jsme již probrali, toto jádro řídí celý počítačový systém; pokud tedy dojde k havárii, může zničit celý systém. V systémech MacOS a Linux je taková nežádoucí událost známá jako „ Kernel Panic.“ Abychom se zotavili z kernel Panic, musíme restartovat systém.

Obvykle jsou tyto paniky jádra způsobeny problémy s komunikací hardwaru. Pokud tedy dochází k opakované panice jádra, zkuste odpojit méně požadovaná nebo nepotřebná zařízení a zkontrolujte, zda je problém vyřešen nebo ne.