Jádro (kernel) je ta část operačního systému, která poskytuje přístup k hardwaru, správu procesů a celkovou kontrolu systému. Kernel obsahuje podporu pro vaše hardwarová zařízení, takže výběr toho správného pro váš systém je velmi důležitý krok.
Slackware nabízí okolo šedesáti předkompilovaných jader, ze kterých si můžete vybírat; každé se standardní sadou ovladačů a dodatečnými specifickými ovladači. Můžete provozovat jedno z těchto předkompilovaných jader, a nebo si můžete sestavit svoje vlastní jádro ze zdrojového kódu. V obou případech se musíte ubezpečit, že vaše jádro obsahuje hardwarovou podporu vyhovující potřebám vašeho systému.
Předkompilovaná jádra Slackwaru jsou dostupná v adresáři /kernels na Slackware CD-ROM nebo v FTP sajtu v hlavním adresáři Slackwaru. Dostupná jádra se průběžně mění, jak jsou vydávány nové verze, takže nejspolehlivějším zdrojem dokumentace je ta, kterou najdete rovněž v tomto adresáři. Adresář /kernels obsahuje pro každý dostupný kernel podadresář. Podadresáře mají stejná jména jako jejich doprovodné boot disky. V každém podadresáři najdete následující soubory:
| Soubor | Účel |
|---|---|
| System.map | Systémová mapa pro toto jádro |
| bzImage (or zImage) | Vlastní obraz (image) jádra |
| config | Zdrojový konfigurační soubor pro toto jádro |
Abyste mohli kernel používat, zkopírujte soubory System.map a config do adresáře /boot, a obraz jádra zkopírujte do adresáře /vmlinuz. Pak spusťte /sbin/lilo(8), aby se nainstalovalo LILO pro nové jádro, a nakonec rebootujte svůj systém. A to je pro instalaci nového jádra vše.
Jádra, jejichž název končí ".i" jsou IDE jádra. To znamená, že v základu tato jádra neobsahují žádnou podporu pro SCSI. Jádra s názvem zakončným ".s" jsou SCSI jádra. Ta obsahují kompletní podporu pro IDE - stejně jako ".i" - a navíc ještě podporu pro SCSI.
Noví uživatelé si často kladou otázku, jestli by si měli zkompilovat vlastní jádro. Odpověď zní: "Určitě možná". Jsou případy, kdy budete kompilaci jádra specifického pro váš systém potřebovat. Většina uživatelů může používat předkompilované jádro se zaváděnými moduly jádra, aby dosáhli plně funkčního systému. Kompilaci jádra budete muset podstoupit v případě, že upgradujete verzi jádra na takovou, kterou Slackware dosud nenabízí, nebo pokud máte patchovaný zdroj jádra se speciální podporou zařízení, která není v nativním zdroji jádra obsažena.
Sestavení vašeho vlastního jádra není tak těžké. Prvním krokem je ujistit se, že máte zdroj jádra nainstalovaný ve vašem systému. Ujistěte se, že jste nainstalovali balíčky ze skupiny K. Také se budete muset ubezpečit, že máte nainstalovanou skupinu D; zvláště pak překladač jazyka C, GNU make a GNU binutils. Obecně je dobré mít nainstalovanou skupinu D kompletní, pokud plánujete provádění čehokoliv souvisejícího s vývojařinou. Teď jsme připraveni začít sestavovat jádro. Přepneme se do superuživatelského módu a přejdeme do adresáře se zdrojovými kódy jader:
$ su - Password: # cd /usr/src/linux |
Prvním krokem je uvést zdroj jádra do výchozího stavu. To se dělá tímto příkazem:
# make mrproper |
Teď můžete konfigurovat jádro pro váš systém. V současnosti máte k dispozici tři způsoby, jak to udělat. Prvním je původní, textově založený systém dotaz-odpověď (make config). Klade spoustu otázek a potom sestavuje kofigurační soubor. Problémem této metody je, že když něco zmastíte, musíte začít úplně znovu. Nejoblíbenější metodou většiny uživatelů je nabídkově orientovaná metoda (make menuconfig). A nakonec třetí možnost, rovněž nabídková, ale pro systém X-window (make xconfig). Vyberte si metodu, která vám vyhovuje nejvíc zadáním jednoho z příkazů:
# make config (textové založená verze dotaz-odpověď) # make menuconfig (nabídkově orientovaná, textová verze) # make xconfig (Na X-založená verze, musíte být v X než ji spustíte!) |
Obrázek 4-1. Nabídkami ovládaný program pro konfiguraci jádra.

Noví uživatelé pravděpodobně shledají jako nejsnazší variantu s menuconfig. Jsou tu nápovědné obrazovky, které nabízejí vysvětlující popis jednotlivých částí jádra. Po nastavení vašeho jádra opusťte konfigurační program. Ten pak zapíše nezbytné konfigurační soubory. Nyní můžeme připravit zdrojový strom na sestavování:
# make dep # make clean |
Dalším krokem je kompilace jádra. Nejdříve zkuste příkaz zImage. Je-li váš kernel hodně velký, pak tento program klekne. Nic se nebojte, pořád ještě můžete sestavit jádro příkazem bzImage
# make zImage (tohle zkuste jako první) # make bzImage (pokud make zImage zhavaruje, použijte tento příkaz) |
Kompilace trvá dost dlouho - v závislosti na výkonu procesoru. V průběhu sestavování uvidíte zprávy, které vypisuje překladač. Po sestavení obrazu jádra budete ještě potřebovat sestavit ty části kernelu, které jste při konfiguraci označili jako moduly.
# make modules |
A teď můžeme nainstalovat kernel a moduly, které jste právě zkompilovali. K nainstalování kernelu do systému Slackware musíte spustit následující příkazy:
# mv /vmlinuz /vmlinuz.old # cat arch/i386/boot/zImage > /vmlinuz # mv /boot/System.map /boot/System.map.old # cp System.map /boot/System.map |
Pokud jste sestavovali velké jádro, nahraďte výše uvedený zImage za bzImage. Dále budete potřebovat editovat /etc/lilo.conf a přidat do něj sekci umožňující nabootovat staré jádro pro případ, že by to nové nepracovalo dobře. Až to uděláte, spusťte příkaz /sbin/lilo, aby se nainstaloval nový bootovací blok. Teď můžete rebootovat s vaším novým jádrem.
Moduly jádra jsou jen jiným jménem pro ovladače zařízení, které mohou být přidávány do běžícího kernelu. Umožňují vám rozšířit kernel o podporu hardwaru bez nutnosti vybírat jiné jádro, nebo si sestavovat vlastní.
Moduly mohou být zaváděny a uvolňovány kdykoliv, a to i při běžícím systému. To systémovým administrátorům usnadňuje upgradování ovladačů. Nový modul může být přeložen, starý vyjmut a nový zaveden; to vše bez rebootování stroje.
Moduly jsou uloženy v adresáři /lib/modules/<kernel version>. Mohou být zaváděny v průběhu bootování prostřednictvím souboru rc.modules. Tento soubor je velmi dobře okomentářován a nabízí vysvětlivky pro hlavní hardwarové komponenty. Abyste viděli, které moduly jsou v tuto chvíli aktivní, použjte příkaz lsmod(1):
# lsmod Module Size Used by parport_pc 7220 0 parport 7844 0 [parport_pc] |
Jak vidíte, mám zavedený pouze modul pro paralelní port. K vyjmutí modulu použijte příkaz rmmod(1). Moduly mohou být zaváděny pomocí příkazů modprobe(1) nebo insmod(1). Příkaz modprobe je obvykle bezpečnější protože zavede i všechny moduly, na nichž je ten, který se pokoušíte zavést, závislý.
Mnoho uživatelů nikdy nemusí zavádět či vyjímat moduly ručně. Používají auto-zavaděč pro správu modulů jádra. Jediné co pro to musíte udělat, je odkomentářovat řádek /sbin/kerneld(8) v souboru /etc/rc.d/rc.modules a auto-zavaděč bude startovat. Převezme péči o zavádění a vyjímání modulů tak, jak se objevují požadavky na ně. Požadavkem rozumíme pokus o přístup na dané zařízení.
Více informací najdete v manuálových stránkách pro každý z těchto příkazů a v souboru rc.modules.