Jádro je kód, který je spuštěn krátce po startu počítače a je prostředníkem mezi hardwarem a uživatelskými programy. Stará se o přidělování paměti, procesorů, zpřístupňuje systém souborů apod.
První verze 0.01 vznikla v roce 1991. Autorem je Linus Torvalds. Vychází z operačního systému Minix.
Verze 1.0 pochází z roku 1994 a z roku 1995 pochází první stabilní verze 1.2, která již podporuje moduly (viz dále).
V roce 1996 vznikla verze 2.0, která podporovala i víceprocesorové systémy. Tato verze se již dá označit za operační systém.
Současná verze je 2.6.18 a nejnovější verzi lze vždy nalézt na www.kernel.org.
Číslování verzí má svá pravidla (x.y.z):
Moduly přidávají do jádra podporu pro určité zařízení, souborový systém, apod. Lze je za běhu systému přidávat a odebírat z běžícího jádra.
Každý jaderný modul nese seznam poskytovaných a požadovaných symbolů, verzi jádra, autora, název licence a seznam parametrů.
Moduly mohou být zaváděny programem insmod
, odebírány programem rmmod
.
Používané moduly včetně závislostí můžou být zjišťovány pomocí lsmod
.
Kompilovaní jádra je užitečné pro ty, kteří chtějí mít jadro šité na míru.
Zdrojové kódy jádra by měli být rozbaleny do /usr/src
, přičemž /usr/src/linux
bývá symbolický odkaz
na zdrojové kódy práve běžícího jádra.
1. Prvním krokem je předchod do adresáře se zdrojovými kódy (cd /usr/src/linux
).
2. Pokud bylo již jádro někdy kompilováno, před kompilací by se měl použít pro vyčištění adresářových struktur příkaz make clean
.
3. Poté je nutno provést konfiguraci (zvolit které části kódu jádra mají být v novém jádře obsaženy). Na výběr je několik způsobů:
make config
- uživatelsky nepříliš přívětivý způsobmake menuconfig
- asi nejčastější, uživatelsky přívětivý způsob v textovém režimumake xconfig
- uživatelsky přívětivý způsob v grafickém režimumake oldconfig
- nastaví parametry jako při poslední kompilaci4. Kompilaci samotného jádra spustíme pomocí make bzImage
. Nové jádro bude umístěno v /usr/src/linux/arch/i386/boot/
.
5. Kompilaci modulů spustíme pomocí make modules
.
6. Zkompilované moduly následně pomocí make modules_install
připravíme do adresáře /lib/modules/$verze
, kde je bude jádro hledat.
7. Jádro musíme také zkopírovat z /usr/src/linux/arch/i386/boot/bzImage
do /boot
a nastavit zavaděč.
Tento soubor bývá nejčastěji umístěn v /boot
a obsahuje seznam funkcí dostupných v jádře.
Vypadá asi následovně:
... c0493d20 t alsa_sound_exit c0493ec0 T snd_minor_info_oss_done c0493e00 T snd_info_done c0493e70 t snd_info_version_done c0493fc0 t alsa_pcm_exit ...