Jádro systému Linux
Ondřej Kozina, 120781(zvnč)mail(tčk)muni(tčk)cz
Obsah
Úvod a historie Linuxu
Jádro je program napsaný v jazyce C. Linux patří mezi monolitická jádra s podporou modulů, kde komunikace mezi jádrem a ovladači (moduly) probíhá prostřednictvím volání funkcí. Ačkoliv to patrně nebyl záměr, Linux postupně dominuje na pozici jádra operačního systému projektu GNU
- 1991 - Linus Torvalds zveřejňuje první verzi jádra
- 1993 - Linux má přes 100 vývojářů. První distribuce
- 1995 - první porty na jinou architekturu než i386
- 1996 - verze 2.0
- 1999 - verze 2.2
- 2001 - verze 2.4
- 2003 - verze 2.6
Instalace
Zdrojové kódy jádra jsou dostupné na kernel.org. Většina distribucí obsahuje vlastní předkompilované jádro mnohdy doplněné o sadu patchů. Přesto je vhodné znát postup instalace ze zdrojových kódů:
- make menuconfig - grafické prostředí pro konfiguraci parametrů jádra před kompilací
- make - ...
- make modules_install - skript pro instalaci zkompilovaných modulů
- arch/<označení_architektury>/bzImage - binární podoba jádra volaná zavaděčem - obvykle se kopíruje do adresáře /boot
Nové jádro se aktivuje klasickým restartováním systému nebo pomocí kexec. Tato vlastnost umožňuje zavedeního nového jádra do systému, bez nutnosti projít zavaděčem první úrovně (MBR).
- kexec -l /boot/kernel-2.6.13+ -append="root=/dev/sda1" - výběr jádra pro načtení po "rebootu"
- kexec -e - dojde k záměně jádra v paměti a inicializaci. Tento příkaz neukončí korektně stávající systém
Konfigurační rozhraní
Jádro má několik konfiguračních rozhraní pro komunikaci mezi user space aplikacemi a komponentami jádra. Poměrně bohatý výběr rozhraní je daný různými charakteristikami požadavků na rozhraní:
- ioctl - systémové volání. Předáva se v podstatě libovolný binární parametr, což způsobovalo problémy s portabilitou ovladačů (compat_ioctl.c)
- procfs - export informací o procesech a konfiguračních parametrů jádra prostřednictvím souborového systému
- sysfs - obdoba procfs, ale přehlednější a zejména informace o zařízeních odpovídají hierarchii zařízení v systému
- Netlink - rozhraní komunikuje prostřednictvím standardního síťového spojení. Umožňuje odebírat informace o změnách systému prostřednictvím multicast vysílání (dbus)
Většina konfiguračních parametrů jádra z procfs je zahrnuta i do sysfs, ale z důvodu zpětné kompatibility se v jádře udržují obě rozhraní.
Některé userspace nástroje
Moduly
- modprobe - nástroj pro přidávání/odebírání modulů z jádra
- lsmod - výpis modulů přítomných v jádře včetně závislostí
Informace o hardwaru - lspci
Tento nástroj se hodí k přesné identifikaci HW v počítači. Často slouží k dohledání chybějících ovladačů, která nebyla zkompilována do jádra. V případě nového HW lze updatovat databázi ID zařízení příkazem update-pciids.
Literatura