Portál AbcLinuxu, 4. května 2025 07:33
Lukáš Jelínek již dlouho píše články pro AbcLinuxu.cz i LinuxEXPRES, vede si blog na Abíčku a na stránkách Respekt a spravuje stránku s generovanou dokumentací k jaderným rozhraním kernel-api.org. Teď napsal velmi zajímavou knihu, již ocení jak zkušení hackeři, tak začátečníci, kteří si chtějí přečíst o tom, jak jádro funguje a jak pro něj programovat.
Ačkoliv jsem měl původně v plánu knihu předat jinému recenzentovi, neodolal jsem a otevřel ji s tím, že alespoň prolistuji několik stránek a podívám se do obsahu. Když jsem po dvaceti minutách dočítal Úvod a bezděky otáčel na další stranu, uvědomil jsem si, že této knížky se jen tak nevzdám a recenzi budu určitě chtít napsat sám.
Pustil jsem se tedy do listování a pomalu mi začínalo svítat, jaký bič jsem si na sebe upletl: pokud vás zajímá Linux a baví vás učit se o něm nové věci, pak tohle není ta správná kniha pro odfláknutí recenze. I kdybych si byl myslel, že prolistuji obsah, mrknu na obrázky a najdu dvě tři chybky, aby to vypadalo, že jsem knihu celou přečetl, tentokrát bych se přepočítal. Jádro systému Linux prostě není kniha, kterou bych dokázal jen tak zběžně prolistovat. Tak trochu proti vlastní vůli jsem se do ní natolik začetl, že mi sežrala tři noci a každou volnou chvilku (rozuměj přestávky na oběd) čtyř dnů.
Nelituji toho. Je to po dlouhé době první kniha technického rázu, kterou jsem přečetl od začátku do konce. To samo o sobě svědčí o tom, že to není nuda. Ale byla by chyba si myslet, že jde jen o povídání. Autorovi se podařilo velmi umně skloubit obecné informace s poměrně podrobnými popisy. Pro večerní čtení se lépe hodí úvodní odstavce začátků kapitol, které učí a vysvětlují. Většinou poskytují i historický kontext, zmiňují dříve používané přístupy a důvody, proč se od nich upustilo a proč se další vývoj ubíral určitým směrem. Pro pozdější referenci při práci nebo řešení problémů je ve zbytku textu dostatek podrobností.
Nečekejte však stránky plné zdrojového kódu. Přestože v knize nechybí praktické ukázky kódu nebo výstupů programů, rozhodně to nedělá většinu textu. Ukázky kódu jsou téměř ve všech případech omezené na pár řádků a jen velmi málokdy zaberou více než půl stránky naráz. Proto také ke knize není přikládáno CD s příklady v elektronické podobě. Občas je sice pro výklad využit i uměle vytvořený příklad, ale není jich mnoho; kniha spoléhá více na popis teorie než na předvádění praxe.
Přesto se dá dílo dobře popsat slovem „praktické“, ovšem ve smyslu „to se hodí“. Praktická užitná hodnota jednotlivých kousků informací, které byly do knihy zařazeny, byla jistě jedním z hlavních kritérií při sestavování textu konkrétních kapitol. Platí to pro samotný výběr témat i hloubku (nebo chcete-li úroveň podrobnosti), s jakou je daná problematika popisována. Praktičnost se však odráží například i v tom, že oddíl o vývoji ovladačů pro jádro začíná poměrně vemlouvavou kapitolkou, která se čtenáře snaží přesvědčit, že programování v rámci jádra sice není černá magie, ale má spoustu nevýhod oproti přípravě řešení fungujících v uživatelském prostoru, takže by se nikdo do jádra neměl příliš hrnout (zhodnoceno s nadsázkou).
Nebudu přepisovat názvy kapitol, to by byla zbytečná práce; pravděpodobně byste těžko hledali oblast vývoje či fungování jádra, kterou kniha alespoň okrajově nezmiňuje. Uvedu tedy je obecné členění. Kromě Úvodu a Příloh knihu tvoří tři hlavní části: Vnější rozhraní jádra, Vývoj ovladačů a Pohled dovnitř jádra.
Zajímavým prvkem jsou kapitolky o věcech, které byly v době psaní knihy teprve očekávány (obsah knihy odráží stav po vydání jádra 2.6.21). Autor se drží zpátky při odhadování, zda bude ta či ona funkce začleněna/odstraněna, ale jde o zajímavé výlety do oblastí, kde nic není jisté. Jedna dvojstránka je tak věnována zakletému subsystému kevent, který se zatím Evgeniji Poljakovovi nepodařilo do jádra prosadit (a už asi ani nepodaří). Nebo si můžeme přečíst o plánovaném odstranění taskletů.
Oblíbil jsem si také autorův tón, který je do jisté míry neformální a dává najevo, že Lukáš Jelínek má češtinu rád, rád s ní pracuje a nebojí se ji naplno použít ani v knize, jejíž téma a zaměření se na první pohled nenabízí k hrátkám se slovy. O to více potěší, když sem tam při čtení narazíte například na přídavné jméno nebo příslovce, který není pro význam nezbytně nutné, ale sympaticky koření vyznění textu. V rozmezí několika stránek můžete tedy objevit perličky jako „obludně velké proměnné“, zjistíte, že by se vám něco mohlo „krutě vymstít“, a odpustíte autorovi, že si neodpustil malé rýpnutí do „militantních zastánců“ (hádejte čeho). A kdyby snad někdo stále pochyboval, že Lukášovi schází smysl pro humor, nalistujte „patnáctero přikázání“ hackerů jádra, které káže třeba „Pamětí pečlivě šetřiti budeš“ nebo ryze praktické „Nikomu a ničemu věřiti nebudeš“.
Nemyslete si však, že by vše byla jen velká legrace; autor má své čtenáře v úctě a podle toho se k nim i chová. Čekali byste snad po úvodním odstavci kapitoly něco jiného než decentní pobídnutí k pokračování v četbě? Ne. Já také ne, a proto mě potěšilo, když mě Lukáš vyzval: „Račte číst dál“.
Na začátku recenze jsem zmínil, že nebudu listovat knihou jen proto, abych objevil pár chybek. Nedělal jsem to, bonzovat nechci, ale hlásit se to musí. Hned zkraje však říkám, že mě kniha příjemně překvapila – jak úrovní sazby, tak správností textu (ze stylistického i mluvnického hlediska). Na druhou stranu je nutno uvést, že to překvapení nebylo až tak velké, protože vím, jak kvalitní text Lukáš odevzdává. Takže předpokládám, že s ním korektor ani odborný redaktor neměli mnoho práce.
Pravda, narazil jsem v textu na několik překlepů, ale vzhledem k objemu a především ve srovnání s jinými knihami technického zaměření (ostatně i beletrií) je hodnocení velmi nadprůměrné. Těch pár chybek rozhodně neruší, jak je tomu u mnoha jiných titulů. O správnost po obsahové stránce se staral odborný korektor, který oproti zvyklostem přispěl i vlastním textem. V úvodu kapitoly Pohled dovnitř jádra připojil k seznamu důvodů, které shrnují, proč chtít poznat fungování jádra, také své moudro: „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 (poznámka korektora)“ – odborným korektorem byl Petr Baudiš (poznámka recenzenta).
Líbí se mi sazba a na první pohled se mi zalíbil dvojí Obsah: stručný a podrobný (22 stran). Velice praktické. I z pohledu sazby je možné nalézt několik prohřešků, ale nic zásadního. Škoda jen, že se tiskařskému šotkovi podařilo ťapkat hned po první stránce zmiňovaného Obsahu. Poměrně nepříjemné je občasné opomenutí nastavení písma s pevnou šířkou pro názvy adresářů, souborů, systémových volání apod. Ve většině případů toto písmo použito je, takže když pak není, člověk má tendenci výskyt v odstavci přehlédnout.
Z předchozího textu je již asi patrné, že se mi kniha velmi zalíbila a rád její nákup doporučím. Rozumně udržovaná rovnováha mezi detaily a obecným popisem principů z ní činí jak užitečnou referenční příručku, tak zajímavé čtení pro (skoro)laiky, kteří se prostě chtějí přístupnou cestou dozvědět více o tom, jak jádro vypadá (a proč). Zamrzelo mě, že i když jsou na konci v seznamu literatury uvedeny zdroje LWN.net a kerneltrap.org, chybí zmínka o pravidelných a kompletních překladech obou těchto zdrojů do češtiny v podobě Jaderných novin.
Název | Jádro systému Linux |
Autor | Lukáš Jelínek |
Vydavatelství | Computer Press |
ISBN | 978-80-251-2084-2 |
Vydáno | květen 2008 |
Počet stran | 688 |
Doporučená cena | 790 Kč |
Nedozvěděl jsem se, o čem knížka je (něco co by se nedalo vyčíst z obsahu atd.).Co by to mělo být? Nejsem si jistý, jestli rozumím tomu, co dalšího bych měl popisovat (kromě toho, co v knize je). Viz např.: Pro večerní čtení se lépe hodí úvodní odstavce začátků kapitol, které učí a vysvětlují. Většinou poskytují i historický kontext, zmiňují dříve používané přístupy a důvody, proč se od nich upustilo a proč se další vývoj ubíral určitým směrem. Pro pozdější referenci při práci nebo řešení problémů je ve zbytku textu dostatek podrobností.
Nedozvěděl jsem se pro koho je určena ani to, jak je užitečná pro ty různé kategorie čtenářů, pro které je určena.Já si myslím, že to z textu vyplývá obojí. Viz např.: Rozumně udržovaná rovnováha mezi detaily a obecným popisem principů z ní činí jak užitečnou referenční příručku, tak zajímavé čtení pro (skoro)laiky, kteří se prostě chtějí přístupnou cestou dozvědět více o tom, jak jádro vypadá (a proč). ----- Rád text doplním, ale z tvého komentáře jsem se nedozvěděl, co ti vlastně chybí.
Rád text doplním, ale z tvého komentáře jsem se nedozvěděl, co ti vlastně chybí.Treba ta veta
něco co by se nedalo vyčíst z obsahunapovi.
Treba ta vetaJá však bohužel nemám tušení, co je tím myšleno. Z obsahu se nedá vyčíst odlehčený styl psaní, který jsem se v článku pokusil představit. Nevím, co dalšího by se v tomto ohledu hodilo zmínit, ale nechám si poradit.něco co by se nedalo vyčíst z obsahunapovi.
Z obsahu se nedá vyčíst odlehčený styl psaní, který jsem se v článku pokusil představit.To ale prece neznamena, ze ten obsah nemuzete uvest. Nikdo tu prece netvrdi, ze ma recenzi tvorit jen opis obsahu, tak nevim, nad cim si zoufate.
CP pravděpodobně neplánuje (nebo už nemá) něco jako O'Reilly, kdy lze kniha za cca polovinu koupit ve formě PDF, že?To jsem chtěl v článku zmínit, ale zapomněl jsem - bylo by fajn, kdyby to (třeba s půlročním zpožděním) dali k dispozici jako PDF. Ostatně, já bych si to jako e-book asi i koupil, protože je to přeci jen dost bichle a když sedím u počítače, tak nevím, co si s ní počít; pořád někde překáží, stránky se otáčejí atd.
V tomhle jsem celkem pesimista – to už by si ji nekoupil prakticky nikdo.
Já jsem si ji teď objednal z rozpočtu na vzdělávání, jinak bych do ní asi taky nešel.
Autor mohl aspoň napsat, jak ho to obohatilo nebo k čemu mu to prakticky bylo. Jestli by teď moh začít programovat něco, jestli by to byl ovladač nebo něco z vnitřku jádra. Nebo jestli si aspoň řek, aha teď už rozumím tomuhle a využiju to v tomhle. Nebo by moh říct, že pro čtenáře, kteří se nehodlají věnovat programování jádra, je kniha užitečná zejména v tomhle, protože tohle. Programátory naopak obohatí v támhlenctom.Měl jsem z té první reakce pocit, že míříte jinam, že vám chybí právě opsaný obsah atd. To, co zmiňujete, by v recenzi určitě na škodu nebylo. Tedy až na tu poslední větu – aby se neprogramátor pokoušel uhodnout, v čem knížka obohatí programátory, to by asi nebylo nejšťastnější.
Autor mohl aspoň napsat, jak ho to obohatilo nebo k čemu mu to prakticky bylo.Díky širokému záběru knihy vidím hlavní přínos v docela snadně uchopitelném přiblížení souvislostí. Čtenář má sice v jednotlivých kapitolách k dispozici velké množství konkrétních detailů, které by programátor mohl využít pro rychlou referenci, ale pro mě, coby neprogramátora, je zajímavá především možnost skládat věci do velkého obrázku. Protože se nechystám začít programovat pro jádro, nemá pro mě až tak velkou váhu popis syntaxe, jako spíše význam, jaký daná (např.) funkce má v rámci svého subsystému. Pro překlady Jaderných novin se mi hodí být v obraze a rozumět co možná nejvíce zákonistem, které v jádře panují. Takže kniha mi pomohla lépe porozumět technické stránce věcí, o kterých píšu,
Jestli by teď moh začít programovat něco, jestli by to byl ovladač nebo něco z vnitřku jádra.Já osobně ne a ani jsem s takovým cílem knihu nečetl. Ale věřím, že průměrně zdatný programátor, který doposud neměl s jádrem žádné zkušenosti, by s pomocí knihy dokázal velmi snadno napsat svůj "hello world" modul a později i složitější věci. Můj dojem je takový, že vývoji ovladačů se kniha věnuje podrobněji - i když "vnitřek" jádra není vynechán.
Nebo jestli si aspoň řek, aha teď už rozumím tomuhle a využiju to v tomhle.To už jsem částečně naznačil v tomto komentáři výše. Díky této knize mám o dost jasnější představu o tom, jak fungují a mezi sebou spolupracují různé části jádra, což využiji při přípravě JN. Líbí se mi, že kniha začíná popis jednotlivých témat zlehka a postupně přechází na větší podrobnosti. Pro mě v mnoha ohledech dobře zafungovala jako odstraňovač neurčitého pocitu složitosti a nezvládnutelné komplikovanosti jádra.
Mě by zajímalo, jestli mi tato kniha pomůže při konfiguraci jádra.Pomůže v tom smyslu, že vysvětlí, jak jádro funguje a které jeho části se starají o různé věci. Také obsahuje popis práce se zdrojovými kódy (patchování vanilla jádra, stahování pomocí gitu atp.).
um → umný → umně
Je to knizka pro programatora a nebo pro admina?Jak název napovídá, tak hlavně pro programátory. Mnohé kapitoly se sice dotýkají i věcí, se kterými se setká admin, ale rozhodně to není cílová skupina.
Není ten autor z Moravy?Ani náhodou. Jsem rodilý Pražák
chybí zmínka o pravidelných a kompletních překladech obou těchto zdrojů do češtiny v podobě Jaderných novinNa Jaderné noviny jsem bohužel zapomněl. Taky mě to mrzí
Našla by se tato knížka v PDF? Rád bych si jí přečetl, ale žádné PDF nikde nevidím...
Díky
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.