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?
Vitalia.cz: Je kočka riziko pro těhotnou ženu?

Je kočka riziko pro těhotnou ženu?

Měšec.cz: Udali ho na nelegální software a přišla Policie

Udali ho na nelegální software a přišla Policie

120na80.cz: Jaké plavecké pomůcky vaše dítě ochrání?

Jaké plavecké pomůcky vaše dítě ochrání?

DigiZone.cz: DAB už i z Košic. A překvapivě!

DAB už i z Košic. A překvapivě!

Vitalia.cz: Mateřská - nejlepší období v životě ženy? Hahahaha

Mateřská - nejlepší období v životě ženy? Hahahaha

Vitalia.cz: Zmrzlinu? Ani snad ne

Zmrzlinu? Ani snad ne

Podnikatel.cz: 3 velké průšvihy obchodních řetězců

3 velké průšvihy obchodních řetězců

Podnikatel.cz: Tahle praktika stála šmejdy přes milion

Tahle praktika stála šmejdy přes milion

Podnikatel.cz: Polská vejce na českém pultu Albertu

Polská vejce na českém pultu Albertu

Vitalia.cz: Paní výčepní: Holka, co mluví chlapům do piva

Paní výčepní: Holka, co mluví chlapům do piva

Vitalia.cz: Největší chyby při podávání vína?

Největší chyby při podávání vína?

Podnikatel.cz: Profese budoucnosti? Úředník nepřežije

Profese budoucnosti? Úředník nepřežije

Podnikatel.cz: Akční plán podpoří byznys padesátníků

Akční plán podpoří byznys padesátníků

Vitalia.cz: Klíšťata letos řádí, skvrna se udělá jen někomu

Klíšťata letos řádí, skvrna se udělá jen někomu

Vitalia.cz: Bio vejce nepoznají ani veterináři

Bio vejce nepoznají ani veterináři

DigiZone.cz: Skylink o půlnoci vypnul 12 525

Skylink o půlnoci vypnul 12 525

DigiZone.cz: Sázka na e-sporty stanici Prima vychází

Sázka na e-sporty stanici Prima vychází

DigiZone.cz: Nestihli jste Bonda na ČT2? Zkuste RTVS

Nestihli jste Bonda na ČT2? Zkuste RTVS

Lupa.cz: eIDAS: Nepřehnali jsme to s výjimkami?

eIDAS: Nepřehnali jsme to s výjimkami?

DigiZone.cz: Skylink: do pátku může docházet k výpadkům

Skylink: do pátku může docházet k výpadkům