Hlavní navigace

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

8. 7. 2008
Doba čtení: 4 minuty

Sdílet

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.

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é.

ict ve školství 24

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

Seriál: Knihovnička

Autor článku

Petr Krčmář pracuje jako šéfredaktor serveru Root.cz. Studoval počítače a média, takže je rozpolcen mezi dva obory. Snaží se dělat obojí, jak nejlépe umí.