Příležitostným uživatelům a fanouškům, kteří nemají hardcore, je Linux operační systém. Pro puristy je však název "Linux" vyhrazen pro jádro, které ovládá operační systém. Pokud jste zvědaví, co je jádro Linuxu, odpovězte na tuto otázku s náhledem nového uživatele.
Režimy
Než vysvětlíme, co je jádro, je důležité pochopit pojmy "uživatelský režim" a "režim jádra". Uživatelský režim je při provádění kódu nemožný přímý přístup k hardwarové nebo referenční paměti. Chcete-li získat přístup k hardwaru a paměti, kód spuštěný v uživatelském režimu musí delegovat instrukce na systémové aplikační programovací rozhraní (API). Režim jádra je při provádění kódu neomezený přístup ke všem hardwarem a 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í každý systém nízkoúrovňové, 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žít fyzického počítače; aplikace jako Firefox, Chrome, LibreOffice, MS Office nebo Outlook by nefungovaly. Jádro je také zodpovědné za to, aby procesy umožňovaly výměnu informací za použití tzv. Inter-Process Communication (IPC).
Existují (obecně řečeno) tři typy jader:
- Monolitické jádra: tyto jádra zahrnují CPU, paměť, IPC, ovladače zařízení, správu systém souborů a volání systémových serverů. Je také zodpovědný za odevzdání volné systémové paměti aplikacím. Tyto typy jader jsou obvykle lepší při přístupu k hardwaru a multitaskingu.
- Mikrokleny: Microkernels mají minimalistický přístup a spravují pouze CPU, paměť a IPC.
- Hybridní jádra: Hybridní jádra mají schopnost rozhodovat o tom, co chtějí spustit v režimu User nebo Kernel. Přestože to poskytuje to nejlepší z obou světů, vyžaduje od výrobců hardwaru mnohem více, aby vytvořili ovladače, které slouží k propojení mezi spuštěným kódem a hardwarem.
Linux používá open source, monolitické jádro, zatímco macOS a Windows používají hybridní jádra. Linuxové jádro bylo koncipováno v roce 1991 Linusem Torvaldem. Až do dnešního dne zůstává pan Torvalds vedoucím vývojářem jádra Linuxu, zatímco vývojáři z celého světa přispívají k jádru Linuxu. Ve skutečnosti se odhaduje, že téměř 10 000 vývojářů z více než 1000 společností přispělo k jádru Linuxu (od začátku sledování v roce 2005).
Kde je jádro?
Pokud otevřete okno terminálu a příkaz vydáte ls / boot, zobrazí se soubor s názvem vmlinuz-VERZE (Kde VERSION je název nebo číslo vydání). Soubor vmlinuz je skutečné zaváděcí linuxové jádro a "z" znamená, že jádro je komprimované; takže místo vmlinuxu máme vmlinuz.
V rámci tohoto adresáře / boot jsou k dispozici další důležité soubory jádra, například initrd.img-VERSION, system.map-VERSION a config-VERSION (kde VERSION je buď 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 spustí vlastní soubor jádra.
- system.map: slouží pro správu paměti před načítáním jádra.
- config: instruuje jádro o tom, jaké možnosti a moduly se mají načíst.
Moduly
Bez modulů by jádro nebylo moc užitečné. Moduly účinně zapínají ovladače potřebné pro komunikaci s hardwarem bez nutnosti vyčerpání veškeré systémové paměti. Moduly také přidávají k jádru funkce, jako je komunikace s periferními zařízeními, správa souborů, zabezpečení atd. Je možné seznamovat, přidávat a odebírat moduly do jádra pomocí následujících příkazů:
- lsmod zobrazí seznam všech aktuálně načtených modulů jádra.
- insmod načte modul jádra do spuštěného jádra.
- rmmod uvolní modul z běžícího jádra.
Takže vidíte, že pomocí jednoduchých příkazů může být jádro Linuxu poměrně flexibilní.
Aktuální jádro
Od tohoto psaní je stabilní linuxové jádro 4.18.5, ale ne všechny Linuxové distribuce budou obsahovat nejnovější jádro. Ve skutečnosti je aktualizovaná distribuce základní plochy OS spuštěna jádrem 4.15.0-30. Co to znamená? V případě nejnovějšího jádra na elementárním operačním systému to znamená:
- 4 je hlavní verze
- 15 je verze Minor
- 0-30 je revize
Je také možné stáhnout různé verze jádra Linuxu z kernel.org a sami je kompilovat. Kompilace jádra Linuxu je úkolem nejlépe pro ty, kteří skutečně vědí, co dělají. Nesprávně kompilované jádro může způsobit, že systém nebude spuštěn. Takže pokud 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é je dodáváno a aktualizováno ve vaší distribuci.