Linux Kernel

Martin Lopatar, lopin@mail.muni.cz


Obsah


Co je jádro

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.


Historie

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časnost

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

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.


Kompilace

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ů:

4. 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ěč.


System.map

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
      ...

Použité zdroje

archiv PV090