Toto je starší verze dokumentu!
Jádro
První linuxové jádro spatřilo světlo světa v roce 1991. Mezitím uplynulo patnáct let - jádro dospělo do verze 2.6 a skládá se z více než 4.5 miliónů řádků (je napsáno převážně v jazyce C++ a část pak v assembleru). Ačkoliv se dnes pod pojmem Linux rozumí některá z distribucí, správně bychom tímto pojmem měli označovat právě jádro, které je základním kamenem jednotlivých distribucí.
Jádro zajišťuje komunikaci mezi aplikacemi a hardwarem. Komunikace probíhá prostřednictvím tzv. souborů zařízení, do/ze kterých aplikace zapisují/načítají data. Samotnou komunikaci mají na starosti tzv. ovladače zařízení.
Aktuální verze stabilního jádra v době psaní tohoto článku (říjen 2006) byla 2.6.18. Každé z částí čísleného označení jádra má svůj význam.
Číslo 2 je tzv. hlavní verze jádra a mění opravdu vyjímečně - jádro 2.0 bylo vydáno v roce 1996.
Číslo 6 označuje tzv. vedlejší verzi jádra a mění je jednou za několik roků. Souběžně existují vždy tzv. stabilní jádro, které má číslo verze sudé (aktuálně 2.6), a tzv. vývojové jádro, které má číslo liché liché (aktuálně 2.7). Stabilní jádro je určeno běžným uživatelům a těm, pro které je spolehlivost jádra rozhodující 1). V rámci vývojového jádra je pak testována implementace nových vlastností jádra. Jsou-li na vývojovém jádře odstraněny všechny nedostatky, je prohlášeno za stabilní a čísla obou verzí se zvýší o jedna.
Číslo 17 označuje tzv. patch level - jedná se označení aktualizace jádra. Pomocí patche lze provádět opravy/úpravy jádra včetně přidání nových ovladačů (viz. dále).
Jestliže na Vašem systému zadáte příkaz uname -r
získáte výstup ve tvaru 2.6.17-1.2187_FC5
. Vedle hlavní a vedlejší verze jádra a patch levelu figuruje ve výpisu také číslo 1.2187. To značí verzi patch levelu a aktuálnost ovladačů použitých v jádře. Označení FC5
pak znamená, že se jedná o jádro určené pro Fedora Core 5.
Ačkoliv defaulní nastavení jádra je pro většinu uživatelů naprosto dostačující, je možné jádro upravit podle svých představ. To je možné provést jednak překompilováním jádra, jednak editací souborů v adresáři /proc
. Druhá možnost tak představuje jakási zadní vrátka do systému 2). Úpravy jádra vyžadují poměrně hluboké znalosti týkající se nejen samotného Linuxu ale také hardwaru.
Přidání ovladače
Jak již bylo zmíněno výše, ovladač zařízení zajišťuje komunikaci systému s konkrétním hardwarem. Jádro samotné obsahuje některé ovladače (např. ovladače pro systémy souborů), nicméně převažuje snaha vytvořit vrstvu s ovladači, která by byla na jádře nezávislá. Takovýto ovladač pak není integrální součástí jádra, ale má podobu modulu, který je v případě potřeby jádrem načten. To s sebou přináší několik výhod. První je, že takovýto ovladač musí být naprogramován čistěji než ovladač, který by byl „zabastlen“ přímo do jádra. Další výhodou je, že nové ovladače lze jednoduše do jádra připojit a není třeba znovu kompilovat jádro. Třetí výhodou je, že kdyby všechny ovladače musely být přímou součástí jádra, bylo by toto jádro při současném množství hardwaru neúměrně velké a zabíralo by zbytečně příliš mnoho operační paměti.
Soubor zařízení
Každý hardware má svůj tzv. soubor zařízení. Tyto soubory jsou umístěny v adresáři /dev
(s vyjímkou síťových zařízení). Soubor zařízení má tzv. hlavní a vedlejší číslo. Hlavní číslo definuje, jaký konkrétní ovladač má být pro daný hardware použit3). Vedlejší číslo, nazývané také číslo jednotky, je jakýmsi pořadovým číslem zařízení.
Existují dva typy souborů zařízení - blokové a znakové. Blokové umožňují čtení/zápis po tzv. blocích (skupina bajtů; obvykle násobek 512); znakové pak po bajtu. Typickým příkladem blokového zařízení je pevný disk; příkladem znakového zařízení pak klávesnice. To, zda-li je jedná o blokové nebo znakové zařízení, lze poznat podle prvního znaku rozšířeného výstupu příkazu ls
.
ls -l /dev/hda brw-r----- 1 root disk 3, 0 říj 9 18:28 /dev/hda
Písmeno b
značí, že IDE disk hda
je blokovým zařízením.
Ovladač zařízení
Samotný ovladač je možné do jádra přidat následujícími způsoby:
- tzv. „patchováním“ jádra
- zavedením modulu ovladače
Patchování jádra
Patch je jakousi aktualizací jádra, která může mimojiné obsahovat také nové ovladače. Instalaci patche lze provést pomocí příkazu
gunzip -c cesta_k_patch_souboru/patch_cislo.gz | patch -p1
Samotné jádro ovladače i jednotlivé patche naleznete na stránkách http://www.kernel.org (např. jádro 2.6 včetně patchů naleznete zde ). Jestliže máte např. jádro 2.6.14 4) a chtěli byste provést jeho aktualizaci na verzi 2.6.17, musíte stáhnout patche 2.6.15, 2.6.16 a 2.6.17 a tyto pak postupně nainstalovat5).
gunzip -c cesta_k_patch_souboru/patch-2.6.15.gz | patch -p1 gunzip -c cesta_k_patch_souboru/patch-2.6.16.gz | patch -p1 gunzip -c cesta_k_patch_souboru/patch-2.6.17.gz | patch -p1
Poznámka: Výše popsaný postup je aplikovatelný na tzv. vanila jádro. Fedora Core však používá jádro modifikované - proto by aplikace patchů výše popsaným způsobem pravděpodobně měla za následek nefunkčnost systému. Nicméně Vám nic nebrání si stáhnout stáhnout vanila jádro z http://www.kernel.org a na něj následně aplikovat patche.
Zavedení ovladače do jádra
Výhodnější je ovladače zavést ve formě tzv. modulu do jádra. Moduly distribuované společně s jádrem jsou uloženy adresáři /libmodules/cislo_verze_jadra
6).
/etc/sysctl.cong
popř. nastavit pomocí příkazu sysctl
.uname -r
.uname -r
.