Seriál si můžete připomenout: Vývoj jádra.
Kniha je rozdělena do několika částí a až na poslední část (přílohy) je poměrně výhodné znát ke čtení všechny předcházející kapitoly. Není však třeba mít tyto znalosti načerpané přímo z knihy. Kniha bere téma Linuxu opravdu ze široka, a tak první část zužitkují i naprostí začátečníci, kteří se nehodlají zabývat vývojem user-space aplikací ani vývojem jádra. Pojednává se v ní o Linuxu obecně, o jeho historii a možnostech nasazení.
V druhé části, která je pojmenovaná "Vnější rozhraní jádra", pojednává o základních vlastnostech linuxového jádra, o dostupných signálech, správě modulů, souborových operacích, HALu a dalších již o něco techničtějších věcech. Tato část je vhodná pro každého vývojáře user-space aplikací, stejně jako pro administrátory, kteří chtějí systému rozumět více do hloubky.
Ve třetí části knihy, která je nazvána "Vývoj ovladačů", vás Lukáš provede úvodem, řekne, co byste měli vlastně vědět k tomu, abyste mohli nějaký takový ovladač napsat, jak moc musí být váš software specifický, aby bylo vhodné jej umístit do "kernel-space" a také vás seznámí s jedenácti důvody, proč se snažit kernel-space vyhnout. Jak se totiž s oblibou říká, "Kernel-space je velice nehostinné místo". Abyste mohli takový kernel-driver napsat a dále jej i šířit, musíte dodržet pár podmínek licence GPLv2, pod kterou je jádro licencováno. I s tímto právním aspektem vývoje ovladačů vás kniha seznámí.
V dalších kapitolách této části se jde již na poměrně nízkou úroveň a já si troufám tvrdit, že k jejímu dobrému pochopení se hodí mít nějakou tu obecnou představu, jak asi fungují sběrnice, jako je PCI, USB.. stejně jako se hodí vědět, co je to adresace paměti, jak se paměť adresuje a podobně. Je zde také kapitola 23, která je nazvána "Zajímavosti, plány do budoucna", dozvíte se v ní, co by se mohlo někdy ve vzdálené budoucnosti v koncepci jádra změnit.
Předposlední, čtvrtá část knihy, nazvaná "Pohled dovnitř jádra", se zabývá vnitřní implementací jednotlivých volání v jádře 2.6.21, protože se však implementace mění poměrně často (jen vnější rozhraní zůstává stejné), tak je u současných jader pár věcí trošičku jinak, proto je nejlepším zdrojem informací samotný zdrojový kód jádra. V této části se dozvíte o vanilkovém (Vanilla kernel) a distribučním kernelu. Dočkáte se vysvětlení, co je to takový patch (záplata) a jak takový patch vytvořit. Zde se mi však nelíbí to, že autor použil slovo záplata namísto slova patch
nebo diff
, připadá mi to jako takový vynucený překlad, ale možná to ostatní cítí jinak...
V knížce je malý úvod do GITu, ale žádné specialitky nečekejte, já osobně si myslím, že detailní popis GITu se všemi jeho možnostmi by vydal na podobnou knihu jako samotné jádro. I tato část knihy obsahuje kapitolu nazvanou "Pohled do budoucna", která se snaží nastínit, co se má v jádře v dohledné době změnit, no a protože čas letí, můžu vám prozradit například, že popisovaný časovač CFS (Copmpletely Fair Scheduler) od Inga Molnara se ve verzi 2.6.23 opravdu objevil - jak kniha předpovídá... :-)
Pátá a poslední část knihy se jmenuje "Přílohy" a obsahuje přehled signálů používaných v Linuxu, přehled systémových volání (tzv. syscallů) pro 32bitovou platformu x86, systémová volání se na různých platformách mohou lišit (buďto některá chybějí, nebo jsou naopak k dispozici některá navíc). Poslední přílohou je seznam použité literatury, zjistíme tak, že autor čerpal z pěti různých zdrojů. Osobně si však myslím, že jeden velice důležitý zdroj neuvedl... a to samotné zdrojové kódy jádra. :-)
Celkový pocit z knihy
Kniha se mi líbila, když jsem si ji první den přinesl domů, přečetl jsem značnou část na jeden zátah, když jsem se však dostal zhruba k polovině (Část III, kapitola 18 - "Zařízení na sběrnici USB"), tak mě nadšení poněkud přešlo. Ne kvůli tomu, že by se mi kniha přestala líbit, jen jsem musel udělat nějaké jiné věci a pak se mi ke knize poměrně špatně vracelo a neustále jsem to odkládal a odkládal.
Je psána poměrně čtivě a až do třetí části je velice jednoduše srozumitelná, ve třetí části již bylo potřeba se občas nad některou skutečností trošku více zamyslet. Čtvrtá část knihy je sice zajímavá a většinou hezky pochopitelná, ale bohužel v ní nevidím pro většinu čtenářů (knihy) zase tak velký přínos. Pokud knihu čtete jen kvůli tomu, že chcete vědět, "jak to funguje", a ne kvůli "chci věci, co si přečtu, i prakticky používat", pak ji jistě uvítáte. Mně osobně se líbila část o plánovačích, která je součástí kapitoly "Správa procesů a vláken".
Sám bych nevěřil, že takovou knihu může napsat jediný člověk, ale povedlo se to. Samozřejmě se na jejím vzniku nepodílel jen Lukáš Jelínek, odbornou korekturu provedl Petr Baudiš (Rozhovor: Petr Baudiš), který do úvodní kapitoly části "Pohled dovnitř jádra" připsal i jeden důvod, proč je výhodné poznat fungování jádra uvnitř. Tím je: "Poznat systém a pak se nechat zaměstnat za spoustu peněz u nadnárodní linuxové korporace a dělat odborné korektury pro Computer Press." Tato větička mě celkem pobavila. Předmluvu napsal Jiří Kosina ze SUSE Labs. Pokud tedy tuto knížku ještě ve své knihovničce nemáte, vzpomeňte si na ni, až budete v knihkupectví.
Lukáš Jelínek: Jádro systému Linux, Kompletní průvodce programátora. Computer Press 2008. 688 stran černobílých. ISBN: 978-80-251-2084-. Cena 790 Kč, 35,52€