navody:fc6jadro

Toto je starší verze dokumentu!


Hlavní stránka

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ů. Jádro 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í.
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 1). Úpravy jádra vyžadují poměrně hluboké znalosti týkající se nejen samotného Linuxu ale také hardwaru.

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žit2). 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 3) 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ě nainstalovat4).

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


1)
Po restartu počítače však bude obnoveno původní nastavení. Trvalé změny je nutné zapsat do souboru /etc/sysctl.cong popř. nastavit pomocí příkazu sysctl.
2)
Může dokonce platit, že jedno zařízení může mít několik souborů zařízení a tak používat několik různých ovladačů. Jako příklad lze uvést kazetopáskovou jednotku, kdy různé ovladače mohou definovat různou hustotu zápisu. Výběrem souboru zařízení tak vyberete také ovladač, který má zajišťovat komunikaci s daným hardwarem.
3)
Aktuální verzi jádra zjistíte pomocí uname -r.
4)
Jestliže nebude pořadí instalace patchů dodrženo, skončí tato opera nezdarem.
5)
Aktuální verzi jádra lze zjistit pomocí uname -r.
  • Poslední úprava: 2022/11/14 10:09
  • (upraveno mimo DokuWiki)