Jádro systému

Filip Slunečko, filip.slunecko@mail.muni.cz

Obsah

Linuxové jádro

Linuxové jádro je svobodný projekt s otevřeným zdrojovým kódem inspirované operačním systémem UNIX. Na jeho tvorbě se podílí mnoho společností a jednotlivců z celého světa.

Jaderná statistika

Odkud jádro získat

Hlavní zdroj pro získání zdrojových kódů jádra je http://kernel.org/.

Další zdroje pro získání jádra

Téměř každá distribuce GNU/Linux má své vlastní jádro upravené a odladěné tak, aby co nejlépe fungovalo se všemi ostatními komponentami systému a poskytuje jej v rámci svého balíčkovacího systému.

Jaderné větve

Význam číslování

Verze jádra je uváděna ve tvaru A.B.C.D kde

Kompilace jádra

Pro správné fungování jádra je potřeba vědět několik věcí:

  1. přesnou specifikaci HW, kterou chceme podporovat.
  2. funkce, které od jádra požadujeme(frame buffer, direct rendering ...).
  3. souborový systém ze kterého budeme nahrávat systém.

Kompilace:

  1. Získáme zdrojové kódy jádra.
  2. Rozbalíme je. Standardní adresář bývá /usr/src/linux.verze a má simlink na /usr/src/linux.
  3. Uděláme si zálohu našeho zatím ještě funkčního jádra (jeho konfigurace) zcat /proc/config.gz > .config.
  4. Zjistíme HW konfiguraci (lspci, cat /proc/cpuinfo ...).
  5. Spustíme make + jeden z následujících příkazů.
  6. Vybereme vše nutné a potřebné. Zde je třeba si dát pozor na:
  7. Uložíme námi vytvořenou konfiguraci.
  8. Zkompilujeme jádro make && make modules_install. Toto nám zkompiluje i moduly a vytvoří bootovací obraz našeho kernelu.
  9. Zkopírujeme vytvořený obraz do adresáře /boot. Například takto: cp arch/x86_64/boot/bzImage /boot/kernel-2.6.34
  10. Někdy je ještě potřeba vygenerovat initramfs. Záleží na distribuci a HW.

Konfigurační volby

Jedny z nejdůležitějších voleb při konfiguraci jádra jsou:

Moduly

Linux neručí za stabilní API a ABI mezi jedntilivými verzemi (Solaris a FreeBSD, Windows se snaží mít API a ABI stabilní).

Příkazy pro práci s moduly jsou lsmod a modprobe.

Parametry jádra při startu

ParametrVýznam
singlspustí systém v singl user modu
acpi=offvypnutí ACPI
selinux=0/1zapnutí/vynutí selinuxu
memtest=0provede mem test při startu
nfsrootpro systémy bez disku při NFS instalaci

Více na např: kernel-parameters.txt

System.map

Při každém sestavení jádra se vytvoří i soubor System.map, který obsahuje tabulku symbolů. Tabulka symbolů se skládá z názvu symbolu a jeho úmístění v paměti. Tato tabulka je důležitá pro ladění a zjišťování kde vznikla chyba. Tento soubor se většinou nalézá v adresáři se zdrojovými kódy jádra.

Literatura