Autor j�dra linuxu, Linus Torvalds, se setkal s�Unixov�m prst�ed�m poprv� na univerzit�. Zjistil �e toto prost�ed� mu tak vyhovuje, �e by jej cht�l m�t i doma, na sv�m dom�c�m PC. Opravdov� Unix si nemohl dovolit a opensource varianta Minix (v uvozovk�ch proto�e Minix bylo nutn� zakoupit, na m�diu jste v�ak m�li i zdrojov� k�dy) mu p�i�la p��li� omezen�.
(Pro� si Linus v�t� dob� nemohl zakoupit unix pop��pad� si st�hnout zdrojov� k�dy jak je to b�n� dnes, to u� je tro�ku jin� poh�dka. Doporu�uji knihu: Um�n� programov�ni v�Unixu (The Art Of UNIX Programming) od Eric S. Raimond. Pop��pad� google a heslo: unix wars)
P�vodn� jsem to vlastn� ani nepl�noval opera�n� syst�m Linux vznikl na z�klad� jin�ho projektu , kdy jsem testoval vlastnosti procesoru 386.
Tento syst�m navrhl tak, aby byl bl�zk� syst�mu UNIX (a to jak System V od AT&T tak i BSD z kalifornsk� univerzity v Berkeley).
Pozn.: zde se pozn� jedna z v�hod existence norem a jejich dodr�ov�n� (nevyznam�j�� jsou POSIX - Portable Operating system Interface Unix a SUS - Single Unix Specification).
P��b�h ze �ivota
V roce 1998 upravila firma Oracle sv�j �pi�kov� datab�zov� produkt rovn� pro syst�m Linux. Byl to krok, jen� znamenal z�sadn� pr�lom ve zp�sobu vn�m�n� tohoto syst�mu u �irok� ve�ejnosti. In�en�r odpov�dn� za zmi�ovanou �pravu p�i dotazu na techni�ck� p�ek�ky, kter� bylo t�eba p�i �prav�ch p�ekonat, nab�dl rozhoduj�c� d�kaz, �e standardy pro rozhran� API splnily ��el. In�en�rova odpov�� zn�la takto: Zadali jsme p��kaz make.�
/* * Yeah, yeah, it's ugly, but I cannot find how to do this correctly * and this seems to work. I anybody has more info on the real-time * clock I'd be interested. Most of this was trial and error, and some * bios-listing reading. Urghh. */
Vy�erp�vaj�c� historie nejen Unixu: http://www.levenez.com/
Linuxov� j�dro je pova�ov�no za monolitick�. D�ky sv� modularit� a n�kter�m prvk�m micro kernelu (nap�. kernel threads) ho lze nazvat i hybridn�m.
Intern� je j�dro rozd�leno do subsyst�m�.
Nap��klad: diskov�, s��ov�, ...
Centrem d�n�: http://kernel.org/
Um�st�ny jsou zde: git repozit��e, historick� verze, v�ci �zce spojen� z�j�drem
Co st�hnout aneb ��slov�n� verz�
Dne�n� ��slov�n� je �ty�slo�kov�:
Konvenc� je, j�dro rozbalit do adres��e /usr/src/linux
. Pro testov�n� v�ce verz� j�dra je mo�n� vytvo�it symbolick� link: /usr/src/linux == /usr/src/linux-2.6.26.2.
Je�t� p�ed samotnou kompilac� je vhodn� si zj�stit HW konfiguraci stroje.
Triky z�praxe:
dmesg
, pop�.: /var/log/dmesg
)lsmod
)lspci
v�pis PCI/AGP za��zen� asi nejd�le�it�j�� zdroj informac�lsusb
v�pis p�ipojen�ch USB za��zen�lshw
user-friendly v�pis za��zen�/proc/cpuinfo
informace o procesoru/procesorech/j�drech/sys/devices/system/cpu/cpu?/topology/*
- informace o topologii zapojen� procesor� (lze zj�stit zda-li syst�m nap��klad NUMA)Za ka�d�ho po�as� make help je v� kamar�d.
Konfigurace:
config
- command line interface, velice stroh�, nep�ehledn�menuconfig
- ncurses interface, "p�ehledn�", vy��t�na p��li�n� klikavostmake xconfig
- QT interface, velmi klikav�make gconfig
GTK, plat� to sam� pro GTKmake oldconfig
- CLI, nep�ehledn�Pozn.: nap��klad FreeBSD takov�to konfigur�tory nem�. Cel� j�dro lze nakonfigurovat z�pohodl� sv�ho obl�ben�ho editoru.
Samotn� kompilace se pak b�n� prov�d� p��kazem (u 2.6 jader): make && make modules_install
Samotn� p��kaz make
se postar� o kompilaci j�dra a p�ikaz make modules_install
o instalaci pop��pad� kompilaci a instalaci modul�.
Zkompilovan� j�dro lze naj�t: /usr/src/linux/arch/x86/bzImage
Trento soubor je vhodn� nakop�rovat do adres��e /boot
pod v�sti�n�m n�zvem. Nap�.: kernel-2.6.26.5-grsecurity
Nainstalovan� moduly lze pak naj�t v adres��i /lib/modules/$(uname -r)/
J�dn� se o mrtvou tabulku v�ech symbol� j�dra. Tato tabulka umo��uje p�evod adresy na symbolick� jm�no a opa�n�. Velmi u�ite�n� pro lad�n� j�dra nebo dek�van� tzv. Kernel OOPS.
J�dro m�me tedy nakonfigurov�no a zkompilov�no... co d�l?
Zde p�ich�z� na �adu tzv. bootloader. Jedn� se o n�kdy jednoduch� a n�kdy velmi komplexn� program.
Dnes je ve sv�t� Linuxu asi nejpou��van�j�� zavad�� GRUB. Jeho slavn�m p�edch�dcem je bootloader LILO (Linux Loader - mate n�zvem, lze p�ez n�j zav�d�t i jin� OS).
Jedny z �loh bootloaderu (GRUB):
Alternativn� m��e bootloader p�edat ��zen� jin�mu bootloaderu.