J�dro syst�mu

Petr P�sa�, xpisar@fi.muni.cz


Obsah


Kde vz�t j�dro

Zdrojov� k�d j�dra opera�n�ho syst�mu Linux lze z�skat z ofici�ln�ho archivu http://www.kernel.org/ (FTP). Je v�ak siln� doporu�eno pou��t lok�ln� mirror. Bal��ek se zdrojov�m k�dem j�dra je takt� obsa�en v mnoha distribuc�ch.

St�hnout je mo�n� cel� kernel nebo jen inkrement�ln� patch, p��padn� patche opravuj�c� chyby. K dispozici jsou tak� historie zm�n (Changelog).


��slov�n� verz�

Verze j�dra se skl�d� ze t�� ��sel (v�t�inou) odd�len�ch te�kou (nap�. 2.6.5). Prvn� ��slo uv�d� generaci j�dra, druh� ��slo v�vojovou �adu. Ty obvykle b�vaj� dv� — stabiln� (sud� ��slo) a v�vojov� (lich� ��slo). Posledn� ��slo ud�v� po�ad� vyd�n�. V sou�asn� dob� je posledn� stabiln� verze 2.6.8.1. D�le se objevuj� p��pony jako -preN, -rcN a -mmN zna��c� skoro hotovou verzi, respektive v�vojovou v�tvi.


N�stroje pro kompilaci

Pro �sp�n� p�eklad a fungov�n� j�dra je pot�eba mnoho pomocn�ch program�. P�edev��m gcc, make, binutils, util-linux, module-init-tools… Tak� z�le�� na jejich verzi (viz Documentation/Changes). Podle pou�it�ho konfigura�n�ho n�stroje m��e b�t vy�adov�na knihovna ncurser nebo Xlib.


Konfigurace

Z�skan� bal��ek zdrojov�ho k�du rozbal�me do adres��e /usr/src, pracovn� adres�� zm�n�me na pr�v� vznikl� ./linux-X.Y.Z. Nyn� m��eme aplikovat p��padn� patche ve spr�vn�m po�ad� (nap�. p�i p�echodu na vy��� verzi j�dra nebo p�id�n� funkcionality, kter� nen� ve vanilla j�d�e). Nakonec je vhodn� se ujistit, �e �asy modifikace v�ech souboru jsou nastaveny v minulosti.

Konfiguraci j�dra lze prov�zt jedn�m z n�sleduj�c�ch p��kaz�:

Konfigura�n� program se nejprve pokus� z�skat st�vaj�c� konfiguraci z pr�v� b��c�ho kernelu, pot� z konfigura�n�ho souboru .config a na konec p�ednastav� defaultn� konfiguraci. U�ivatel tak nemus� vypl�ovat p�i ka�d� konfiguraci to sam� nastaven�. P�i opu�t�n� konfigurace je nov� nastaven� ulo�eno do souboru .config.


V�znamn� konfigura�n� volby

S v�vojem hardwaru a j�dra p�ib�vaj� konfigura�n� volby a jejich um�st�n� v nab�dce menuconfigu se m�n�. P�ehled z�kladn�ch voleb:

Zb�n� vysv�tlen� k jednotliv�m volb�m nab�z� konfigur�tor, podrobnosti lze nal�zt v dokumentaci kernelu v adres��i Documentation.


Jadern� moduly

Linuxov� j�dro je modul�rn�. N�kter� funkce j�dra mohou b�t staticky zakompilov�ny do j�dra nebo ponech�ny jako samostatn� jadern� moduly (LKMs), kter� lze za b�hu nahr�vat do pam�ti kernelu nebo odeb�rat.

Ka�d� jadern� modul nese seznam poskytovan�ch a po�adovan�ch symbol�, verzi j�dra, autora, n�zev licence, seznam parametr�. Po p�elo�en� a instalaci modul� a j�dra je nutn� vygenerovat tabulku z�vislost� modul� (p��kaz depmod). Modul lze zav�st na vy��d�n� (modprobe modul) �i jej uvolnit (rmmod modul). Seznam zaveden�ch modul� zjist� p��kaz lsmod. Pro automatick� zav�d�n� modul� je pot�eba nastavit prov�z�n� blokov�ch a znakov�ch za��zen� se spr�vn�mi moduly (soubor /etc/modprobe.conf). D�le je nutn� ��ci kernelu, kter�m programem se moduly zav�d� (echo "/sbin/modprobe" > /proc/sys/kernel/modprobe). Otev�e-li pak n�jak� proces za��zen� /dev/ttyACM0, kernel zavol� program /sbin/modprobe, kter� prohled� soubor /etc/modprobe.conf. Ten najde ��dek alias char-major-167 cdc-acm a zavede modul cdc-acm. Tento modul prohled� USB sb�rnici a nalezne-li za��zen� pat��c� do USB t��dy ACM, zaregistruje za��zen� s major ��slem 167 a propoj� jej s USB za��zen�m. Parametry modulu lze zadat na p��kazov�m ��dku nebo uv�st do souboru /etc/modprobe.conf.


Kompilace

P�eklad j�dra je kompletn� ��zen programem make. Po�adujeme-li p�elo�en� v�ech ��st� j�dra od za��tku, odstran�me star� objektov� a do�asn� soubory p��kazem make clean. Samoutnou kompilaci v p��pad� j�dra �ady 2.6 zah�j�me p��kazem make (pro �adu 2.4 spust�me make dep && make bzImage && make modules. Kompilace m��e trvat od n�kolika minut a� po n�kolik hodin (z�le�� na zvolen� konfiguraci, verzi j�dra a v�konu po��ta�e).


Instalace

Po �sp�n�m p�ekladu nainstalujeme moduly j�dra do adres��e /lib/modules/X.Y.Z p��kazem make modules_install. J�dro p�ekop�rujeme z arch/i386/boot/bzImage do adres��e, kde jej p�edpokl�d� n� zavad�� opera�n�ho syst�mu (nap�. /boot), d�le zkop�rujeme tabulku exportovan�ch symbol� j�dra System.map a na konec aktualizujeme nastaven� zavad��e OS (nap�. LILO, Grub, syslinux, loadlin).


Parametry j�dra

Chov�n� j�dra lze ovlivnit pomoc� parametr�, kter� se zad�vaj� p�i nahr�n� modulu nebo p�ed bootem. Odd�luj� se b�l�mi znaky a v�t�inou jsou tvaru nazev=hodnota. Nap��klad root=/dev/hda1 rw init=/bin/bash ether=0,0,0,1,eth0 znamen�: ko�enov� souborov� syst�m se nach�z� na /dev/hda1, bude p�ipojen pro z�pis, standardn� init bude nahrazen programem /bin/bash a prvn� s��ov� karta bude pou��vat extern� tranciever. Podrobn� seznam lze naj�t v Documentation/kernel-parameters.txt.