Cesty k překladu jádra OS Linux
Petr Šnajdr snajdr@cpress.cz
Na další stranuNávrat na titulní stranuVyhledávání informacíNa další stranu

Linux a samozřejmě i některé další operační systémy jsou zajímavou ukázkou toho, kam až je možné zajít při optimalizaci výkonu celého systému. Díky dostupnosti zdrojových kódů není problém jádro znovu přeložit, optimalizovat jeho velikost, ale často také rychlost. Záleží na tom, co budouci "vaše" jádro bude obsahovat.

Ačkoliv možná někomu zní slova "přeložit jádro" jako něco určené těm největším počítačovým šílencům, není tomu tak.

Překlad je relativně jednoduchý. Pokud ve svém systému nemáte nainstalovány zdrojové kódy jádra, je možné je získat na Internetu. Kde to je otázkou, těch míst je totiž tolik, že by jejich seznam byl velice obsáhlý a tak jen to nejhlavnější, které má také snadno zapamatovatelné jméno: http://www.kernel.org. Zdrojové kódy se instalují do adresáře /usr/src/linux tj. k jejich rozbalení a umístění na to správné místo stačí příkazy:

cd /usr/src
gzip -cd linux-2.0.XX.tar.gz | tar xfv -

Pokud máte starší verzi zdrojových kódů jádra již nainstalovánu a máte v úmyslu instalovat pouze záplatu (patch), která je povýší na novou verzi, je třeba tuto záplatu nainstalovat např. takto:

cd /usr/src
gzip -cd patchXX.gz | patch -p0

Pokud je těch záplat mezi vaší starou verzí a verzí, kterou máte v úmyslu instalovat více, musíte je aplikovat všechny postupně. K automatizaci tohoto procesu může být použit kernel-patch skript:

cd /usr/src
linux/scripts/patch-kernel

Důležité při instalaci zdrojových kódů  jádra je nezapomenout na vytvoření několika symbolických odkazů (linků), které jsou nutné i pro přeložení některých jiných programů:

cd /usr/include
rm -rf asm linux scsi
ln -s /usr/src/linux/include/asm-i386 asm
ln -s /usr/src/linux/include/linux linux
ln -s /usr/src/linux/include/scsi scsi

Ted již máte jádro nainstalované a stačí je nakonfigurovat. Konfigurace může probíhat v prostředí řádkového terminálu,  textovém menu , ale i grafickém prostředí X Window. Záleží pouze na vás, kterou alternativu si vyberete. To určíte pomocí parametru příkazu make po tom co nastavíte jako aktuální adresář /usr/src/linux nebo ten, v němž máte zdrojové kódy jádra.

make config
make menuconfig
make xconfig

Všechny tyto tři možnosti vedou ke stejnému cíli, ale s odlišným uživatelským prostředím.

Samotná konfigurace jádra jsou v podstatě pouze otázky zda tu nebo onu vlastnost chcete nechcete mít v jádře zda tam má být "napevno" nebo ve volitelně zaveditelných modulech, které lze za běhu OS nahrávat do paměti a zase je rušit ( tj. k zavedení ovladače není třeba restartovat celý počítač a stejně tak k jeho zrušení). Otázek je to nemálo, ale k téměř každé je poskytována nápověda a tak není problém se rychle zorientovat. Přesto je třeba nezapomenout na některé drobnosti, které by vám život neusnadnily ( například máte pouze SCSI disky a zapomenete v jádře zapnout podporu pro SCSI disky - jádro potom při startu žádný disk nenajde apod.)

Po dokončení konfigurace stačí již jen zadat příkazy :

make dep; make clean; make zImage

Pokud překlad proběhne bez problémů, je možné hotové jádro najít v adresáři arch/i386/boot v souboru zImage ( v případě, že překládáte pro jinou než PC platformu, je jméno adresáře i386 nahrazeno jménem této platformy)

Poznámka: Pokud by vaše jádro bylo příliš velké je možno použít místo příkazu  "make zImage", příkaz "make bzImage"

Dalším  krokem je překlad a instalace modulů. Pokud žádné moduly nebudete potřebovat, můžete tento krok přeskočit. Překlad a instalace modulů je opět jednoduchá:

make modules
make modules_install

Poslední co je třeba udělat je instalace hotového jádra. Novým jádrem můžete přepsat staré, ale v tom případě je nutno znovu spustit instalaci  programu LiLo příkazem: lilo. V opačném případě při dalším restartu počítače se vám nepodaří zavést operační systém a budou na místě záchranné diskety s nimiž tento problém rychle vyřešíte, ale  není třeba zbytečně si komplikovat život. O něco lepším řešením je nakopírovat nové jádro do stejného adresáře jako je umístěna jeho stará verze (/ nebo /boot, ale v principu je možné kdekoliv) a modifikovat konfigurační soubor /etc/lilo.conf programu LiLo tak, že bude umožňovat zavést jádra obě a opět uvést vše do života příkazem lilo.

Nyní stačí  znovu zavést  operační systém a nové jádro je připraveno k práci.

Příklad konfiguračního souboru /etc/lilo.conf pro zavádění dvou verzí jader OS Linux:

boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50

image=/boot/vmlinux-new-zImage
label=new
root=/dev/hda3
read-only

image=/boot/vmlinuz-old-zImage
label=old
root=/dev/hda3
read-onl


Obrázek: konfigurace jádra v prostředí X Window

Na další stranuNávrat na titulní stranuVyhledávání informacíNa další stranu
Copyright Computer Press s.r.o. 1998
reprinted and translated with
the author's permission
Connect!
Leden-Únor 1998 str.64