Jádro systému Linux: kompletní průvodce programátora

Petr Krčmář 8. 7. 2008

Knih o linuxovém jádru u nás mnoho nenajdete. O to víc mě potěšila nová kniha Jádro systému Linux, která pochází dokonce z pera českého autora Lukáše Jelínka. Je to sice kniha o jádru operačního systému, není ale rozhodně určena jen programátorům. Počte si i zvídavý uživatel.

Linuxové jádro je jedním z nejkompliko­vanějších kusů software, na které může vývojář narazit. Kniha, která by zastala roli průvodce po tomto jádře, je tedy jistě vítaným pomocníkem.

Kniha Jádro systému Linux vyšla v nakladatelství Computer press v květnu letošního roku. Autorem je Lukáš Jelínek, který se problematice linuxového jádra věnuje dlouhodobě na stránkách odborných časopisů i internetových serverů.

Obsah knihy

Obálka knihy slibuje, že čtenáře provede následujícími tématickými okruhy:

  • Architektura a zdrojové kódy jádra
  • Základní pravidla a doporučení pro vývoj jádra
  • Kompilace jádra, ladění a testování, volání ptrace
  • Princip systémových volání, posílání a doručování signálů
  • Sledování událostí: select(), poll(), technologie kevent
  • Organizace souborových systémů a práce s nimi
  • Mapování logických adres, alokace paměti
  • Komunikace s hardwarem, operace na portech
  • Obsluha přerušení, časovače, síťová zařízení
  • Kryptografické rozhraní, správce algoritmů
  • Řízení spotřeby, rozhraní ACPI, objektový model jádra

Poměrně obsáhlá téměř sedmisetstránková kniha je rozdělena do tří velkých částí: Vnější rozhraní jádra, Vývoj ovladačů a Pohled dovnitř jádra. Kniha je poté samozřejmě ještě dále členěna, a to velmi podrobně: jen obsah má 21 stran.

Jadro systemu Linux

V úvodní části se autor věnuje obecnému přehledu informací o jádře. Zmiňuje historii Linuxu, označování jednotlivých verzí, popisuje vývojový cyklus, vysvětluje rozdíl mezi distribučním a vanilla jádrem a uvádí tak zcela neznalého čtenáře do kontextu.

První „velká část“ knihy s názvem Vnější rozhraní jádra se už podle názvu věnuje tomu, jak jádro komunikuje se svým okolím. Rozebírá start systému, správu modulů, systémová volání, signály, operace se soubory, procesy a vlákna, virtuální rozhraní udev a další témata. Tato část knihy se hodí především vývojářům, kteří vytvářejí uživatelské aplikace či systémové knihovny.

Druhá část knihy, výmluvně nazvaná Vývoj ovladačů, se už věnuje vývoji pro jádro samotné. Úkolem této části je především ukázat čtenáři správnou cestu při prvotním zkoumání jádra, naučit ho správné postupy a vysvětlit, jak se píší ovladače a další součásti pro Linux. Tato část knihy již podstatně hlouběji zabíhá do samotného jádra, ale autor se stále drží velmi názorné a srozumitelné úrovně. Jak sám píše, vývoj součástí jádra se příliš neliší od vývoje jiných aplikací.

První dvě části knihy se věnovaly vzdálenějšímu a bližšímu okolí linuxového jádra. Třetí část s názvem Pohled dovnitř jádra se už věnuje samotné architektuře a vnitřnímu uspořádání jádra. Je určena pro zvídavé uživatele a vývojáře, kteří rádi nahlížejí pod kapotu a zkoumají vnitřní mechanismy. V této části se tedy autor zabývá vnitřními pochody, které se týkají správy paměti, správy procesů a vláken, systémových volání, přerušení, souborových systémů, swapování a podobně.

Závěr knihy pak patří přílohám. Zde čtenář najde přehled signálů používaných linuxovým jádrem, přehled systémových volání, seznam doporučené literatury a obligátní rejstřík.

Pro koho je kniha určena

Možná jste nabyli dojmu, že kniha je určena pro „hard core“ vývojáře, kteří se chtějí přes noc stát „kernel hackery“. To ale rozhodně není účelem knihy. Autorův styl je velmi poutavý a čtivý, vše je doplněno řadou obrázků a schémat a podle mého názoru si knihu vychutná i čtenář, který nemá ambice cokoliv vyvíjet, ale zajímá ho, jak „to funguje uvnitř“.

Text je doplněn o řadu zajímavostí a postřehů z praxe, podrobných popisů jednotlivých probíraných částí a podobně. Nejedná se tedy v žádném případě o referenční manuál k jádru a cílová skupina čtenářů je proto poměrně široká.

Velmi mě potěšilo, že kniha není jen strohou technickou příručkou pro programátory, ale většinu informací uvádí do širokého kontextu. Jako příklad mohu uvést část o tvorbě ovladačů. Autor vedle samotného vývoje probírá také softwarové licence, problematiku uzavřených ovladačů a jejich vztahu k licenci GNU GPL.

Kromě toho autor od začátku čtenáře nabádá, aby věci dělal správně. Jedna kapitola je například věnována užívaným standardům při psaní kódů – odsazování, zalamování řádků, nepořádku v kódu a podobně.

Jaká tedy kniha je?

Osobně mě velmi mile překvapil samotný fakt, že je někdo schopen napsat knihu o tak technickém tématu, jakým je linuxové jádro, a že tuto knihu je schopen přečíst a pochopit i neprogramátor či běžný uživatel.

Anketa

Máte-li tuto knihu, doporučíte ji?

Někoho možná napadlo, že podobná kniha velmi rychle zastará. První vydání knihy se zabývá jádrem 2.6.21, které je z dubna roku 2007 a je tedy více než rok staré. Dnes jsme sice o čtyři verze dále, ale postupy a informace, které jsou v knize popsány (především v prvních dvou částech), jsou samozřejmě stále platné.

Pokud si myslíte, že jste zvídavý „poweruser“ a rádi byste své znalosti o Linuxu rozšířili novým směrem, rozhodně vám knihu doporučuji. Pokud pracujete jako programátor, dostali jste za úkol naprogramovat doplněk pro linuxové jádro a nevíte, jak na to, kniha je určena i vám.

Informace o knize

Název: Jádro systému Linux
Podtitul: Kompletní průvodce programátora
Autor: Lukáš Jelínek
Vazba: pevná (vázaná)
Počet stran: 688
Vydání: květen 2008
Nakladatel: Computer press
ISBN: 978–80–251–2084–2
Cena: 790 Kč, 1070 Sk

Našli jste v článku chybu?
Měšec.cz: Cestujte bez starostí, získejte výhodné pojištění

Cestujte bez starostí, získejte výhodné pojištění

DigiZone.cz: Slováci první, Češi třetí. Krásný...

Slováci první, Češi třetí. Krásný...

120na80.cz: Běžecká lékárnička: jak si poradit?

Běžecká lékárnička: jak si poradit?

Podnikatel.cz: 5 důvodů, proč vaše e-maily končí ve spamu

5 důvodů, proč vaše e-maily končí ve spamu

DigiZone.cz: Náhrada za nevrácená zařízení?

Náhrada za nevrácená zařízení?

DigiZone.cz: Skylink zapojil nový transpondér

Skylink zapojil nový transpondér

Root.cz: Špína v počítačích: mrtvé myši, prach a pavouci

Špína v počítačích: mrtvé myši, prach a pavouci

DigiZone.cz: ČT veze bronz z klání televizní grafiky

ČT veze bronz z klání televizní grafiky

DigiZone.cz: Soud zakázal šíření TV Markíza v ČR

Soud zakázal šíření TV Markíza v ČR

Vitalia.cz: Další Míša má Klasu

Další Míša má Klasu

DigiZone.cz: Krajské televize na okraji zájmu?

Krajské televize na okraji zájmu?

DigiZone.cz: Skylink: Nova Sport volně

Skylink: Nova Sport volně

Měšec.cz: Co s reklamací, když e-shop krachuje?

Co s reklamací, když e-shop krachuje?

Podnikatel.cz: Jeho dřevěné hodinky chtějí na všech kontinentech

Jeho dřevěné hodinky chtějí na všech kontinentech

Měšec.cz: Ceny PHM v Evropě. Finty na úspory

Ceny PHM v Evropě. Finty na úspory

Root.cz: Nejvýkonnější počítač mají v Číně, podívejte se

Nejvýkonnější počítač mají v Číně, podívejte se

DigiZone.cz: TV Nova a její postoj k DVB-T2

TV Nova a její postoj k DVB-T2

DigiZone.cz: Nova: technické pauzy každé 1. pondělí

Nova: technické pauzy každé 1. pondělí

Lupa.cz: eIDAS je tu. O co přijdeme u elektronických podpisů?

eIDAS je tu. O co přijdeme u elektronických podpisů?

Vitalia.cz: Jíme přesolené potraviny. Zrovna tyhle

Jíme přesolené potraviny. Zrovna tyhle