Skip to main content

Čo je jadro Linuxu?

Anonim

Pre bežných užívateľov a fanúšikov, ktorí nie sú hardcore, je operačný systém Linux. Pre puristov je však názov "Linux" rezervovaný pre jadro, ktoré ovláda operačný systém. Ak ste zvedaví, čo je jadro Linuxu, odpovedzme na túto otázku s ohľadom na nového používateľa.

režimy

Než vysvetlíme, čo je jadro, je dôležité porozumieť výrazom "režim používateľa" a "režim jadra". Režim používateľa je pri vykonávaní kódu schopný priamo pristupovať k hardvérovej alebo referenčnej pamäti. Ak chcete získať prístup k hardvéru a pamäti, kód spustený v užívateľskom režime musí delegovať pokyny na aplikačné programové rozhrania (API). Režim jadra je pri vykonávaní kódu neobmedzený prístup ku všetkému hardvéru a je vyhradený pre najdôveryhodnejšie funkcie operačného systému.

Čo je jadro?

Každý operačný systém má jadro. Systémy Windows, MacOS, iOS, Android, Chrome OS a Linux majú každý systém nízkej úrovne, ktorý je zodpovedný za prepojenie všetkých aplikácií s fyzickým hardvérom počítača. Bez jadra by žiadna z vašich aplikácií nemohla využívať fyzický počítač; aplikácie ako Firefox, Chrome, LibreOffice, MS Office alebo Outlook by nefungovali. Toto jadro je tiež zodpovedné za to, aby procesy umožňovali výmenu informácií pomocou tzv. Inter-Process Communication (IPC).

Existujú (vo všeobecnosti) tri typy jadier:

  • Monolitické jadrá: tieto jadrá zahŕňajú procesor, pamäť, IPC, ovládače zariadení, správu súborového systému a volania systémových serverov. Je tiež zodpovedný za odovzdanie bezplatnej systémovej pamäte aplikáciám. Tieto typy jadier sú zvyčajne lepšie pri prístupe k hardvéru a multitaskingu.
  • microkernels: Microkernels majú minimalistický prístup a spravujú iba CPU, pamäť a IPC.
  • Hybridné jadrá: Hybridné jadrá majú možnosť rozhodnúť sa, čo chcú spustiť v režime Používateľ alebo Kernel. Aj keď to poskytuje to najlepšie z oboch svetov, vyžaduje od výrobcov hardvéru oveľa viac, aby vytvorili ovládače, ktoré slúžia na prepojenie medzi spustením kódu a hardvérom.

Linux používa open source, monolitické jadro, zatiaľ čo MacOS a Windows používajú Hybridné jadrá. Linuxové jadro bolo koncipované v roku 1991 Linusom Torvaldsom. Dodnes je pán Torvalds hlavným vývojárom jadra Linuxu, kým vývojári z celého sveta prispievajú k jadru Linuxu. V skutočnosti sa odhaduje, že takmer 10 000 vývojárov od viac ako 1000 spoločností prispelo k jadru Linuxu (od začiatku sledovania v roku 2005).

Kde je jadro?

Ak otvoríte okno terminálu a príkaz vydáte ls / boot, zobrazí sa súbor s názvom vmlinuz-VERZIA (Kde VERSION je názov alebo číslo vydania). Súbor vmlinuz je skutočné zavádzacie linuxové jadro a "z" znamená, že jadro je komprimované; takže namiesto vmlinux máme vmlinuz.

V rámci tohto adresára / boot sú ďalšie dôležité súbory jadra, ako napríklad initrd.img-VERSION, system.map-VERSION a config-VERSION (kde VERSION je buď meno alebo číslo vydania). Tieto ďalšie súbory slúžia na nasledujúce účely:

  • initrd: používa sa ako malý RAMdisk, ktorý extrahuje a spúšťa aktuálny súbor jadra.
  • system.map: používa sa na správu pamäte pred načítaním jadra.
  • config: inštrukcia jadra o tom, aké možnosti a moduly sa majú načítať.

moduly

Bez modulov by jadro nebolo veľa použitia. Moduly efektívne zapínajú ovládače potrebné na komunikáciu s hardvérom bez toho, aby spotrebovali všetku systémovú pamäť. Moduly taktiež pridávajú do jadra funkčnosť, ako napríklad komunikáciu s periférnymi zariadeniami, správu súborových systémov, bezpečnosť atď. Je možné zoznamy, pridanie a odstránenie modulov do jadra obsahovať nasledovné príkazy:

  • lsmod zobrazí všetky aktuálne načítané moduly jadra.
  • insmod načíta jadrový modul do bežiaceho jadra.
  • rmmod bude odobrať modul z bežiaceho jadra.

Takže vidíte, že pomocou niektorých jednoduchých príkazov môže byť jadro Linuxu pomerne flexibilné.

Aktuálne jadro

Od tohto písania je stabilné jadro Linuxu 4.18.5, ale nie všetky distribucie Linuxu obsahujú najnovšie jadro. V skutočnosti sa aktualizovaná základná distribučná verzia OS OS spustiaca jadro 4.15.0-30. Čo to znamená? V prípade najnovšieho jadra na elementárnom OS znamená:

  • 4 je hlavná verzia
  • 15 je menšia verzia
  • 0 - 30 je revízia

Je tiež možné prevziať rôzne verzie jadra Linuxu z kernel.org a kompilovať ho sami. Kompilácia jadra Linuxu je úlohou, ktorá je najlepšie pre tých, ktorí skutočne vedia, čo robia. Nesprávne zostavené jadro môže spôsobiť, že systém nebude možné spustiť. Takže ak nie ste pripravení na to, aby ste sa ponorili do náročnej úlohy kompilácie kódu na tejto úrovni, použite predvolené jadro, ktoré sa dodáva a aktualizuje vo vašej voľbe.