Skip to content

Co je to jádro Linuxu?

21 de Červen de 2021
computer 1209641 1920 5b6c80a846e0fb0050795e3c

Pro běžné uživatele a méně náročné fanoušky je Linux operační systém. Pro puristy však název Linux je vyhrazeno pro jádro, které pohání operační systém.

Režimy

Než vysvětlíme, co je to jádro, je důležité porozumět termínům uživatelský režim a režim jádra. Uživatelský režim je, když provádění kódu nemá schopnost přímého přístupu k hardwaru nebo referenční paměti. K získání přístupu k hardwaru a paměti musí kód spuštěný v uživatelském režimu delegovat pokyny na systémová aplikační programovací rozhraní. Režim jádra je, když má provádění kódu neomezený přístup k veškerému hardwaru – je vyhrazen pro nejdůvěryhodnější funkce operačního systému.

Co je to jádro?

Každý operační systém má jádro. Windows, macOS, iOS, Android, Chrome OS a Linux mají systém nízké úrovně, který je zodpovědný za propojení všech aplikací s fyzickým hardwarem počítače. Bez jádra by žádná z vašich aplikací nemohla využívat fyzický počítač; aplikace jako Firefox, Chrome, LibreOffice nebo Outlook by nefungovaly. Jádro je také odpovědné za to, že umožňuje procesům vyměňovat si informace pomocí tzv. Meziprocesové komunikace. Existují (obecně řečeno) tři typy jader:

  • Monolitická jádra: Tato jádra zahrnují CPU, paměť, IPC, ovladače zařízení, správu systému souborů a volání systémového serveru. Je také zodpovědný za předání volné systémové paměti aplikacím. Tyto typy jader jsou obvykle lepší v přístupu k hardwaru a multitaskingu.
  • Microkernels: Microkernels berou minimalistický přístup a spravují pouze CPU, paměť a IPC.
  • Hybridní jádra: Hybridní jádra mají schopnost rozhodnout, co chtějí spouštět buď v režimu uživatele, nebo v režimu jádra. Ačkoli to poskytuje to nejlepší z obou světů, vyžaduje to od výrobců hardwaru mnohem více, aby vytvořili ovladače, které slouží k rozhraní mezi spuštěným kódem a hardwarem.

Linux používá otevřený zdroj, monolitické jádro, zatímco macOS a Windows používají hybridní jádra. Linuxové jádro vymyslel v roce 1991 Linus Torvalds. Torvalds je dodnes hlavním vývojářem linuxového jádra, zatímco vývojáři z celého světa přispívají k linuxovému jádru. Ve skutečnosti se odhaduje, že od zahájení sledování v roce 2005 přispělo do linuxového jádra téměř 10 000 vývojářů z více než 1 000 společností.

Kde je jádro?

Pokud otevřete okno terminálu a vydáte příkaz ls / boot, uvidíte soubor s názvem vmlinuz-VERZE (Kde VERSION je název nebo číslo vydání). Soubor vmlinuz je skutečné zaváděcí jádro Linuxu a z označuje, že jádro je komprimováno – takže místo vmlinux my máme vmlinuz.

Seznam adresáře / boot.

V tomto adresáři / boot jsou další důležité soubory jádra, například initrd.img-VERSION, system.map-VERSION a config-VERSION (kde VERSION je název nebo číslo verze). Tyto další soubory slouží k následujícím účelům:

  • Initrd: Používá se jako malý RAMdisk, který extrahuje a spouští aktuální soubor jádra.
  • system.map: Používá se ke správě paměti před načtením jádra.
  • konfigurace: Dává jádru pokyn, jaké možnosti a moduly se mají načíst.

Moduly

Bez modulů by jádro nebylo příliš užitečné. Moduly účinně zapínají ovladače nezbytné pro komunikaci s hardwarem, aniž by spotřebovaly veškerou vaši systémovou paměť. Moduly také přidávají do jádra funkčnost, například komunikaci s periferními zařízeními, správu souborových systémů, zabezpečení atd. Seznam, přidávání a odebírání modulů do jádra pomocí následujících příkazů:

  • lsmod vypíše všechny aktuálně načtené moduly jádra.
  • insmod načte modul jádra do běžícího jádra.
  • rmmod uvolní modul z běžícího jádra.

S pomocí několika jednoduchých příkazů může být linuxové jádro docela flexibilní.

Aktuální jádro

Linuxová jádra

Linuxové jádro se často aktualizuje, ale ne všechny distribuce Linuxu budou obsahovat nejnovější jádro. Můžete si stáhnout různé verze jádra Linuxu z kernel.org a zkompilovat si je sami. Kompilace linuxového jádra je úkol nejlépe ponechaný těm, kteří skutečně vědí, co dělají. Nesprávně sestavené jádro může způsobit, že systém nebude možné spustit. Pokud tedy nejste připraveni se ponořit do náročného úkolu kompilace kódu na této úrovni, použijte výchozí jádro, které se dodává, a aktualizace vaší vybrané distribuce.