Hlavní navigace

Linux Začínáme programovat (kniha)

Lukáš Zapletal 18. 1. 2001

Z anglického originálu "Beginning Linux Programming, 2nd edition", Wrong Press Ltd., od dvojice autorů Richard Stones a Neil Matthew nám do mateřského jazyka knihu přeložil Jan Škvařil a vydal Computer Press. O své pocity po přečtení této knihy, se s vámi podělím v následující recenzi.

Po krátké předmluvě od Alana Coxe, významného vývojáře jádra, se autoři pouští do vysvětlování shellu. Vysvětlí problematiku skriptů, jejich spouštění, přesměrování vstupu a výstupu nebo například roury a začnou se detailně zabývat syntaxí shellu bash. V závěru kapitoly se seznámíte s příkladem „Databáze CD titulů“. Tento příklad vás bude provázet všemi kapitolami, budete ho postupně přepisovat do jiných jazyků, přidávat hezčí GUI apod. Jeho první forma napsaná čistě v bashi je spíše jen ukázkou toho, jak je bash mocný nástroj, než typickým příkladem použití.

Po bližším seznámení s bashem se čtenář vrhá střemhlav do jazyka C. V několika dalších kapitolách je detailně popsán vstup a výstup, přístup na souborový systém, prostředí a jeho proměnné, logování. Terminálům je věnována celá kapitola. Výklad dále navazuje knihovnou curses, kde dostává ukázková databázová aplikace elegantnější vzhled. Autoři pokračují správou paměti a zamykáním souborů, kde stejně jako v celé knize upozorňují čtenáře na fakt, že uvedené postupy neplatí jen pro Linux, ale pro většinu UNIXových operačních systémů. Příklad s databází CD je poté přepsán do dbm databáze, která je tímto vysvětlena.

Pár stránek si také vzalo povídání o vývojových nástrojích jako je makefile, RCS či CVS a o ladění za pomoci GNU debuggeru gdb a profilování gprof. Poté začíná pro mě nejzajímavější část programování v Linuxu a to jsou procesy, signály a jejich vzájemná komunikace. Celé problematika je velmi srozumitelně popsána. Celá aplikace „Databáze CD“ je znovu „překopána“. Tentokráte ji autoři rozdělí na dva samostatné procesy (server a klient) a pomocí pojmenované roury FIFO zajistí vzájemnou komunikaci.

Po objasnění vzájemné komunikace mezi procesy se čtenář ponoří do poměrně složité problematiky vláken a jejich vzájemné komunikace pomocí semaforů, front zpráv a sdílené paměti. Nakonec se uživatel seznámí s velmi důležitou vlastností UNIXových systémů – sockety.

Tak trochu oddychovou kapitolou (i když poměrně rozsáhlou) je povídání o TCL/Tk. Ve dvou kapitolách (jedna je o TCL a druhá je o Tk) se čtenář naučí používat striptovací interpretovaný jazyk TCL (Tool Command Language), dozví se nutnou teorii o X Windows a seznámí se s doplňkem pro TCL – Tk. Jedna samostatná kapitola je věnována základům programování s knihovnou GTK+. Celá ukázková aplikace je opět přepracována – tentokrát do konečné podoby pro X Windows.

Svou cestičku si do knihy našel i PERL. Asi na třiceti stranách je vysvětleno základní minimum pro vytváření jednodušších skriptů. Ve finále celé knihy si můžete přečíst něco o HTML a CGI. Na příkladech je vysvětlen základ jazyka HTML a v další kapitole, která navazuje, najdete základy programování CGI skriptů v jazyce C (jazyk C ale není zrovna vhodný pro programování na web, používanější je PERL). Poslední kapitola je lahůdkou pro pokročilé programátory či badatele. Pojednává o programování ovladačů. V této kapitole se čtenář dozví nejen o základech programování jádra, ale i o věcech okolo, tzn. jak správně psát moduly, jak je ladit apod. Autoři předvedou ukázkový modul, na kterém všechny postupy vysvětlí. Od prvních inicializačních funkcí až k závěrečnému zavedení a otestování.

Autoři nešetřili poznámkami týkající se jiných platforem a systémů, takže čtenář snadno získá jistý přehled o přenositelnosti, které je navíc věnován dodatek. V úplném závěru tohoto díla najdeme přeloženou GNU licenci, seznam internetových zdrojů, bibliografii a nutný rejstřík.

Kniha je napsána srozumitelně, je výborně graficky upravena a dobře se v ní orientuje. Připadala mi trošku formální – v celé knize jsem nenašel žádný pořádný vtípek či žertík, kterými tak nadupal například pan Satrapa svoje povídání o PERLu. Je to podle mne příjemné zpestření nudné četby. Na tomto místě bych chtěl podotknout, že při čtení mi vadilo velké množství překlepů. Nebyly to ale překlepy gramatické (ty se v knize snad nevyskytovaly), ale jednalo se o naprosto fatální chyby ve vysvětlování jednotlivých příkazů či zdrojových textů nebo v komentářích příkladů, kterých je v knize víc než dost. Logika byla v některých výrocích naprosto v pozadí a bylo evidentní, že se korektor zaměřil spíše na gramatickou stránku věci a o tu věcnou se příliš nezajímal. I přes tento handicap se jedná o vysoce kvalitní knihu, kterou bych doporučil všem, kteří hodlají začít v Linuxu programovat, i těm, kteří mají již v Linuxu něco naprogramováno.

Linux Začínáme programovat
912 stran, Computer Press
ISBN 80–7226–307–2

Našli jste v článku chybu?

21. 9. 2004 14:20

pítr (neregistrovaný)

S tím amíkem je to něco jinýho. Angličtina je světový jazyk, ale česky umí jenom něco přes 10 mil. lidí.

21. 1. 2001 23:10

Petr Šnajdr (neregistrovaný)

ten word na prvním vydání je dost vidět. viz. uvozovky.
na některých místech jsou špatně nejen proto, že ve zdrojácích dolní uvozovka nemá co dělat, ale i proto, že i typograficky jsou obráceně. To může udělat jedině MS Word.


Vitalia.cz: Jak koupit Mikuláše a nenaletět

Jak koupit Mikuláše a nenaletět

Podnikatel.cz: Přivýdělek u Airbnb nebo Uberu? Čekejte kontrolu

Přivýdělek u Airbnb nebo Uberu? Čekejte kontrolu

Vitalia.cz: Vláknina: Rozpustná, nebo nerozpustná?

Vláknina: Rozpustná, nebo nerozpustná?

Lupa.cz: E-shopy: jen sleva už nestačí

E-shopy: jen sleva už nestačí

Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

Vitalia.cz: Jsou čajové sáčky toxické?

Jsou čajové sáčky toxické?

Lupa.cz: Proč firmy málo chrání data? Chovají se logicky

Proč firmy málo chrání data? Chovají se logicky

Vitalia.cz: 9 největších mýtů o mase

9 největších mýtů o mase

DigiZone.cz: Další dva kanály nabídnou HbbTV

Další dva kanály nabídnou HbbTV

Podnikatel.cz: Prodává přes internet. Kdy platí zdravotko?

Prodává přes internet. Kdy platí zdravotko?

Vitalia.cz: „Připluly“ z Německa a možná obsahují jed

„Připluly“ z Německa a možná obsahují jed

Lupa.cz: Propustili je z Avastu, už po nich sahá ESET

Propustili je z Avastu, už po nich sahá ESET

Podnikatel.cz: Dárky v podnikání. Jak je uplatnit v daních?

Dárky v podnikání. Jak je uplatnit v daních?

Vitalia.cz: Baletky propagují zdravotní superpostel

Baletky propagují zdravotní superpostel

Lupa.cz: Avast po spojení s AVG propustí 700 lidí

Avast po spojení s AVG propustí 700 lidí

Vitalia.cz: Říká amoleta - a myslí palačinka

Říká amoleta - a myslí palačinka

Vitalia.cz: To není kašel! Správná diagnóza zachrání život

To není kašel! Správná diagnóza zachrání život

Vitalia.cz: Tesco: Chudá rodina si koupí levné polské kuře

Tesco: Chudá rodina si koupí levné polské kuře

Podnikatel.cz: Víme první výsledky doby odezvy #EET

Víme první výsledky doby odezvy #EET

Podnikatel.cz: Na poslední chvíli šokuje vyjímkami v EET

Na poslední chvíli šokuje vyjímkami v EET