Linux kernel

Peter Marál, 365399@mail.muni.cz

Obsah

História

Čo je Linux ?

Linux je monolitické jadro operačného systému, ktoré je napísané v programovacom jazyku C. Je šírené ako slobodný software pod licenciou GNU GPL vo verzii 2. Spĺňa takmer dokonale štandart POSIX, systémové volania tohoto štandartu trpia rôznymi nedlhmi, pridávajú sa nové systémové volania, ktoré sú následne doporučené používať. V OS, kernel funguje ako služba, ktorá sa nachádza medzi hardwarom počítača a užitateľskými aplikáciami. Najnovšie zdrojové kódy jadra dostupné na www.kernel.org (momentálne nedostupné), vývoj sa dočasne presunul na github.com/torvalds/linux.

Číslovanie verzií

Jaderné moduly

Jaderné moduly sú spôsob, ako rozšíriť funkcionalitu Linuxového jadra bez rekompilácie a následného reštartu. Tieto moduly majú príponu .ko, najčastejšie sa nachádzajú v adresáry /lib/modules/<verzia_jadra>

Správa modulov

Konfigurácia a kompilácia

Linuxové jadro si môžeme stiahnuť buď distribučné alebo takzvané vanilla. Vanilla jadro je oficiálne vydané jadro na www.kernel.org (hlavný strom). Distribučné jadro získame najčastejšie z repozitárov danej distribúcie pomocou balíčkovacieho systému. Takéto jadro obsahuje množstvo vylepšení, vo forme pathe-ov, ktoré tvorci distribúcie uznali za vhodné.

Nasledujúce príkazy je nutné spúšťať v adresáry so zdrojovím kódom jadra

Patchovanie

- je nutné mať vždy patche pre konkrétnu verziu jadra

Konfigurácia

Tento konfigurátor má u vačšiny položiek konfigurácie 3 konfiguračné možnosti:

Kompilácia

Inštalácia

Kompilácia a balíčkovanie: Debian/Ubuntu

- rozbalené jadro sa nachádza v "/usr/src/", je nutné mať práva "root-a" inak je nutné použitie príkazu "fakeroot", a do adresára so zdrojovými kódmi mať prístup rw; Nové jadro sa zavedie po reštarte. Nutné je mať nové jadro v konfiguračnom súbore zavádzača, alebo použítím kexec. Ak jadro pripravíme ako balíček .deb nemusíme sa starať ani o generovanie initrd ani o konfiguráciu zavádzača, všetko sa nastaví automaticky.

Čo je System.map ?

Je to súbor, kde sú uložené mená symbolov a ich adresy v pamäti. Tento súbor je vždy vygenerovaný po kompilácii kernelu. Nájdeme ho v adresáry so zdrojovými kódmi jadra, tiež v /boot. System.map je dôležitý pri ladení a zistovaní problémov. Viac nám povie názov funkcie, ako len jej adresa v pamäti.

Parametre jadra

Pred štartom

Viac napríklad v dokumentácii kernelu: <zdrojove_kody_jadra>/Documentation/kernel-parameters.txt

Počas behu

Niektoré parametre (nastavenia) jadra je možné meniť počas behu a to prostredníctvom súborov nachádzajúcich sa v "/proc/sys"(procfs); alebo nástrojom sysctl. Ide o nastavenie prvkov siete, kernelu, zariadení a ďalších, konfiguračným rozhraním jadra je aj sysfs(/sys)

Základné nástroje

Literatura