Obě strany předchozí revize Předchozí verze Následující verze | Předchozí verze |
navody:prirucka:jadro [2013/07/30 10:59] – [Překlad jádra] covex | navody:prirucka:jadro [2022/11/14 11:26] (aktuální) – upraveno mimo DokuWiki 127.0.0.1 |
---|
===== Jádro ===== | ===== Jádro ===== |
| |
{{:navody:48x48:categories:applications-system.png }}První linuxové jádro spatřilo světlo světa v roce 1991. Mezitím uplynulo šestnáct let - jádro dospělo do verze 2.6 a skládá se z více než 4.5 miliónů řádků (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 každé distribuce.\\ | {{:navody:48x48:categories:applications-system.png?48 }}První linuxové jádro spatřilo světlo světa v roce 1991. Mezitím uplynulo více než dvacet let - jádro dospělo do verze 4.0 a skládá se z více než 15 miliónů řádků (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 každé distribuce.\\ |
| |
Jádro zajišťuje komunikaci mezi aplikacemi a hardwarem. Aplikace komunikují s hardwarem nepřímo přes tzv. soubory zařízení, do / ze kterých zapisují / načítají data. Komunikaci mezi soubory zařízení a hardwarem pak obstarávají tzv. ovladače zařízení.\\ | Jádro zajišťuje komunikaci mezi aplikacemi a hardwarem. Aplikace komunikují s hardwarem nepřímo přes tzv. soubory zařízení, do / ze kterých zapisují / načítají data. Komunikaci mezi soubory zařízení a hardwarem pak obstarávají tzv. ovladače zařízení.\\ |
====Značení jádra==== | ====Značení jádra==== |
| |
Aktuální verze stabilního jádra v době psaní tohoto článku (září 2007) byla 2.6.23.1. Každá z částí číselného označení jádra má svůj význam.\\ | Aktuální verze stabilního jádra v době poslední aktualizace tohoto článku (duben 2015) byla 4.0.0.1. Každá z částí číselného označení jádra má svůj význam.\\ |
Číslo 2 je tzv. hlavní verze jádra a mění opravdu vyjímečně - jádro 2.0 bylo vydáno v roce 1996.\\ | Číslo 4 je tzv. hlavní verze jádra a mění se jednou za pár let - jádro 3.0 bylo vydáno v roce 2012.\\ |
Číslo 6 označuje tzv. vedlejší verzi jádra a mění se jednou za několik roků. Souběžně existují vždy tzv. stabilní jádro, které má sudé číslo verze (aktuálně 2.6), a tzv. vývojové jádro, které má číslo liché (aktuálně 2.7). Stabilní jádro je určeno běžným uživatelům a těm, pro které je spolehlivost jádra rozhodující. V rámci vývojového jádra je pak testována implementace nových vlastností jádra. Jsou-li na vývojovém jádře odstraněny všechny nedostatky, je prohlášeno za stabilní a čísla obou verzí se zvýší o jedna.\\ | První nula označuje tzv. vedlejší verzi jádra a mění se zhruba každé tři měsíce, kdy vychází nová verze jádra. Každé čtvrté vydání je prohlášeno za vydání s prodlouženou podporou.\\ |
Číslo 23.1 označuje tzv. patch level. Pomocí patche, které jsou vydávány v řádu měsíců, lze provádět opravy / úpravy stávajícího jádra včetně přidání nových ovladačů. Aplikací patche tak lze provést aktualizaci jádra.\\ | Další nula označuje tzv. patch level - opravnou verzi. Pomocí patche, které jsou vydávány v řádu týdnů, lze provádět opravy. Aplikací patche tak lze provést aktualizací jádra.\\ |
Jestliže na Vašem systému zadáte příkaz ''uname -r'' získáte výstup ve tvaru ''2.6.23.1-49.fc8''. "Číslíček" je tedy poněkud více. Vedle patch levelu, vedlejší a hlavní verze jádra figuruje ve výpisu také číslo 49. To značí verzi patch levelu pro potřeby projektu //Fedora//. Označení ''fc8'' pak znamená, že se jedná o jádro určené pro //Fedoru 8//.\\ | Jestliže na Vašem systému zadáte příkaz ''uname -r'' získáte výstup ve tvaru ''4.0.0-1.fc22''. "Číslíček" je tedy poněkud více. Vedle patch levelu, vedlejší a hlavní verze jádra figuruje ve výpisu také číslo 1. To značí verzi patch levelu pro potřeby projektu //Fedora//. Označení ''fc22'' pak znamená, že se jedná o jádro určené pro //Fedoru 22//.\\ |
| |
==== Přidání ovladače ==== | ==== Přidání ovladače ==== |
* Přečtěte si kapitolu [[obecne_poznamky|Obecné poznámky]]. | * Přečtěte si kapitolu [[obecne_poznamky|Obecné poznámky]]. |
| |
**Poznámka:** Níže popsaný postup je aplikovatelný na tzv. vanila jádro. //Fedora// však používá jádro modifikované - proto by aplikace patchů níže popsaným způsobem pravděpodobně měla za následek nefunkčnost systému. Jednodušší (a v drtivé většině případů naprosto dostačující) je provést aktualizaci jádra pomocí příkazu ''yum -y update kernel''((Příkaz musí být spouštěn z účtu superuživatele.)). Nic Vám však nebrání si stáhnout stáhnout vanila jádro z [[http://www.kernel.org]], na něj aplikovat patche a následně jádro přeložit (viz. dále).\\ | **Poznámka:** Níže popsaný postup je aplikovatelný na tzv. vanila jádro. //Fedora// však používá jádro modifikované - proto by aplikace patchů níže popsaným způsobem pravděpodobně měla za následek nefunkčnost systému. Jednodušší (a v drtivé většině případů naprosto dostačující) je provést aktualizaci jádra pomocí příkazu ''dnf -y update kernel''((Příkaz musí být spouštěn z účtu superuživatele.)). Nic Vám však nebrání si stáhnout stáhnout vanila jádro z [[http://www.kernel.org]], na něj aplikovat patche a následně jádro přeložit (viz. dále).\\ |
| |
Patch je aktualizací jádra, která může mimojiné obsahovat také nové ovladače. Instalaci patche lze provést pomocí příkazu | Patch je aktualizací jádra, která může mimojiné obsahovat také nové ovladače. Instalaci patche lze provést pomocí příkazu |
Tuto skupinu nainstalujete pomocí | Tuto skupinu nainstalujete pomocí |
| |
yum -y groupinstall c-development | dnf -y groupinstall c-development |
| |
=== Zdrojové kódy jádra === | === Zdrojové kódy jádra === |
Nejprve nainstalujte balíček ''rpm-build''. Tento balíček obsahuje skripty a programy, které se používají pro tvorbu balíčků. | Nejprve nainstalujte balíček ''rpm-build''. Tento balíček obsahuje skripty a programy, které se používají pro tvorbu balíčků. |
| |
yum -y install rpm-build | dnf -y install rpm-build |
| |
Proveďte aktualizaci jádra Vašeho systému. | Proveďte aktualizaci jádra Vašeho systému. |
| |
yum -y update kernel | dnf -y update kernel |
| |
Restartujte počítač, abyste "natáhli" nové jádro. Po té vytvořte adresář ''/opt/kernel'' a nastavte ho jako pracovní. | Restartujte počítač, abyste "natáhli" nové jádro. Po té vytvořte adresář ''/opt/kernel'' a nastavte ho jako pracovní. |
Do adresáře ''/opt/kernel'' stáhněte soubor ''kernel-verze_jadra.src.rpm'', který obsahuje zdrojové kódy. | Do adresáře ''/opt/kernel'' stáhněte soubor ''kernel-verze_jadra.src.rpm'', který obsahuje zdrojové kódy. |
| |
yum install yum-utils | dnf install yum-utils |
yumdownloader --source kernel --enablerepo updates-source | yumdownloader --source kernel --enablerepo updates-source |
| |
Nastavení jádra pomocí ''config'' je téměř nadlidský úkol - k jednotlivým otázkám se není možné vracet a každá chyba tak znamená, že je třeba celé martýrium opakovat od začátku. Navíc není možné odpovědět pouze na část otázek, odpovědi uložit a pokračovat později. Z tohoto důvodu je vhodnější použít grafické nádstavby ''menuconfig'' nebo ''gconfig''. | Nastavení jádra pomocí ''config'' je téměř nadlidský úkol - k jednotlivým otázkám se není možné vracet a každá chyba tak znamená, že je třeba celé martýrium opakovat od začátku. Navíc není možné odpovědět pouze na část otázek, odpovědi uložit a pokračovat později. Z tohoto důvodu je vhodnější použít grafické nádstavby ''menuconfig'' nebo ''gconfig''. |
| |
Výše zmiňovanou volbu ''menuconfig'' je možné použít i textovém režimu. Je třeba pouze nainstalovat knihovnu //ncurses-devel// pomocí příkazu ''yum -y install ncurses-devel''. Rozhraní pro konfiguraci jádra se pak spouští z adresáře ''/usr/src/kernels/verze_jadra'' pomocí | Výše zmiňovanou volbu ''menuconfig'' je možné použít i textovém režimu. Je třeba pouze nainstalovat knihovnu //ncurses-devel// pomocí příkazu ''dnf -y install ncurses-devel''. Rozhraní pro konfiguraci jádra se pak spouští z adresáře ''/usr/src/kernels/verze_jadra'' pomocí |
| |
make menuconfig | make menuconfig |
{{ navody:f8menu_config.png | menuconfig }} | {{ navody:f8menu_config.png | menuconfig }} |
| |
Chcete-li namísto ''menuconfig'' používat ''gconfig'', je třeba nainstalovat balík //Gnome Software Development// pomocí ''yum -y groupinstall "Gnome Software Development"''. Rozhraní pro konfiguraci jádra se pak opět spouští z adresáře ''/usr/src/kernels/verze_jadra'' tentokrát však pomocí | Chcete-li namísto ''menuconfig'' používat ''gconfig'', je třeba nainstalovat balík //Gnome Software Development// pomocí ''dnf -y groupinstall "Gnome Software Development"''. Rozhraní pro konfiguraci jádra se pak opět spouští z adresáře ''/usr/src/kernels/verze_jadra'' tentokrát však pomocí |
| |
make gconfig | make gconfig |