Hlavní navigace

Pokročilé programování v operačním systému Linux

Lukáš Zapletal

Nakladatelství Softpress pro nás připravilo překlad knihy Advanced Linux Programming autorů M. Mitchella, J. Oldhama a A. Samuela, jež vyšla u New Riders Publishing. Máme pro vás recenzi.

Programovat v operačním systému UNIX v jazyce C/C++ není žádná věda. Učebnic tohoto jazyka je na trhu přehršel a architektura UNIX je díky Linuxu výborně dostupná a dokumentovaná. Proto mi kniha na první pohled nepřipadala zajímavá, jenže zdání klame a já jsem se pro ni nakonec do knihkupectví vrátil. Udělal jsem dobře.

V úvodu nás autoři seznámí s nástroji, které má UNIX standardně k dispozici. Je to především svatá trojice GCC, GNU Emacs a GNU Make. Tuto trojici doplňuje ještě GDB. Autoři nenásilně vysvětlují, co je to překladač, linker a jak vytvořit sestavovací soubor pro GNU Make. Jako třešničku na dort přidávají ještě základní editaci v editoru GNU Emacs.

Hned druhá kapitola se však zdá býti už i pro zdatnější jedince užitečnou. Shrnuje základní způsoby komunikace s okolím, zejména s příkazovým interpretem pomocí parametrů, návratové hodnoty a proměnné prostředí. Na konec kapitoly přidávají autoři ještě informace o knihovnách. Jak je správně používat (jak staticky, tak sdíleně), jak se vyhnout cyklickým vazbám či jaké jsou výhody a nevýhody sdílených knihoven.

Kapitola o procesech je velmi podrobná a dá se říci, že podrobněji to už je snad pouze v originální dokumentaci k Linuxu. Vytváření a ukončování procesů jsou stejně jako zasílání signálů tak důležité vlastnosti unixových operačních systémů, že by byla hanba to pominout.

Vlákna, tak se jmenuje čtvrtá kapitola, ve které jde podle mého názoru do tuhého. Vytváření a rušení vláken, synchronizace a uváznutí, to jsou témata, která by vydala na celou knihu. Autoři vše popisují na praktických příkladech, které jdou všechny přeložit a spustit, což se mi moc líbí.

Skvělá je také kapitola o komunikaci mezi procesy, protože jsou zde popsány všechny známé techniky. Sdílená paměť a semafory, roury, sockety a mapovaná paměť. Autoři ukazují také pokročilou techniku efektivního čtení z disku pomocí mapované paměti (mmap).

Šestá a sedmá kapitola se věnují zařízení v Linuxu a souborovému systému /proc. Rád bych upozornil, že kniha se v žádném případě nevěnuje programování ovladačů. Je kompletně zaměřena na uživatelské programování. A tak jsou koncipovány i tyto kapitoly. Čtenář se dozví, co se všechno z ovladačů zařízení a souborů proc může dozvědět a jak je správně používat.

Systémová volání Linuxu jsou skvělá věc, nejen pokud chcete optimalizovat váš kód. Některé věci bez nich prostě nejdou. Kniha se samozřejmě nemůže věnovat všem systémovým voláním (je jich ke dvěma stovkám), ale popisuje alespoň desítku nejdůležitějších z nich.

Devátá kapitola je lehkým úvodem do assembleru a věnuje se zejména inline assembleru překladače GCC. Ačkoliv je tato problematika poměrně složitá, je zde položen dobrý základ pro širší studium této látky. Minimálně se čtenář dozví, jak kód assembleru správně vkládat.

Předposlední kapitola se věnuje bezpečnosti. Jsou zde popsány základní techniky autentizace a autorizace uživatelů a k mému překvapení autoři přidali tři nejznámější bezpečnostní rizika při programování v jazycích C/C++ (překročení vyrovnávací paměti, souběh v odkládacím adresáři a nebezpečné volání funkce system).

Dílo je uzavřeno ukázkovou aplikací v jazyce C – jednoduchým webovým serverem s modulární architekturou pomocí sdílených modulů, který zprostředkovává základní informace o hostitelském systému. V dodatkové části pak nalezneme popis I/O funkcí, signálů, nezbytné odkazy a licence OPL a GPL v českém překladu.

Překlad je až na několik překlepů dobrý. Výpisy zdrojových kódů k mé spokojenosti přeloženy nebyly. Knihu bych doporučil všem, kteří programují nebo hodlají programovat na nízké úrovni v operačním systému Unix/Linux.

Mark Mitchell, Jeffrey Oldham, Alex Samuel
Pokročilé programování v operačním systému Linux
Překlad Miroslav Dressler
ISBN 80–86497–29–1
320 stran, Softpress, 2002

Našli jste v článku chybu?

31. 3. 2006 11:45

slashsbluesball (neregistrovaný)
souhlas, rejstrik je skoro nutnost, zvlastne u knih o programovani ;) presto si ji asi koupim :D

12. 8. 2005 13:25

korCZis (neregistrovaný)
Tak ty uz prizblechtavas i tu? ;)
Měšec.cz: Za palivo zaplatíte mobilem (TEST)

Za palivo zaplatíte mobilem (TEST)

DigiZone.cz: Sat novinky: slovenská TV8 HD i ruský NTV Mir

Sat novinky: slovenská TV8 HD i ruský NTV Mir

DigiZone.cz: R2B2 a Hybrid uzavřely partnerství

R2B2 a Hybrid uzavřely partnerství

Root.cz: Nová třída SD karet A1 s vysokým výkonem

Nová třída SD karet A1 s vysokým výkonem

120na80.cz: Rovnátka, která nejsou vidět

Rovnátka, která nejsou vidět

120na80.cz: 5 nejčastějších mýtů o kondomech

5 nejčastějších mýtů o kondomech

Měšec.cz: U levneELEKTRO.cz už reklamaci nevyřídíte

U levneELEKTRO.cz už reklamaci nevyřídíte

Vitalia.cz: Proč vás každý zubař posílá na dentální hygienu

Proč vás každý zubař posílá na dentální hygienu

120na80.cz: Co všechno ovlivňuje ženskou plodnost?

Co všechno ovlivňuje ženskou plodnost?

120na80.cz: Horní cesty dýchací. Zkuste fytofarmaka

Horní cesty dýchací. Zkuste fytofarmaka

Lupa.cz: Kdo pochopí vtip, může jít do ČT vyvíjet weby

Kdo pochopí vtip, může jít do ČT vyvíjet weby

Vitalia.cz: Nejlepší obranou při nachlazení je útok

Nejlepší obranou při nachlazení je útok

Podnikatel.cz: Vládu obejde, kvůli EET rovnou do sněmovny

Vládu obejde, kvůli EET rovnou do sněmovny

Podnikatel.cz: K EET. Štamgast už peníze na stole nenechá

K EET. Štamgast už peníze na stole nenechá

Vitalia.cz: Test na HIV je zdarma i za pět set

Test na HIV je zdarma i za pět set

Vitalia.cz: Pamlsková vyhláška bude platit jen na základkách

Pamlsková vyhláška bude platit jen na základkách

Vitalia.cz: Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Podnikatel.cz: Chtějte údaje k dani z nemovitostí do mailu

Chtějte údaje k dani z nemovitostí do mailu

Vitalia.cz: Potvrzeno: Pobyt v lese je skvělý na imunitu

Potvrzeno: Pobyt v lese je skvělý na imunitu

Lupa.cz: Co se dá měřit přes Internet věcí

Co se dá měřit přes Internet věcí