Linux programozás – második, átdolgozott kiadás
Mi kezdhet a tanulni vágyó egy 600 oldalas Linux-tankönyvvel?
Esetünkben a dolog megoldható, ha figyelembe veszünk pár egyszerű feltételt. Elsőként azt, hogy nem ebből a könyvből kell a programozást megtanulni. Az olvasónak tisztában kell lennie a C és C++ nyelvek elemeivel és használatával, és megfelelő gyakorlattal kell rendelkeznie. Az abszolút kezdők jobb, ha valahol máshol gyakorolnak, a Linux-kernel nem az ő játszóterük.
Másodsorban nem árt tudnunk, hogy a Linux API a világ legjobban, és egyben legrosszabbul dokumentált programozói felülete. Ha tudjuk, hogy mire van szükségünk, akkor mindent megtalálunk a tengernyi leírásban és forráskódban, ha viszont nem tudjuk, hogy pontosan mit is keresünk, akkor nagyon nehéz ráakadnunk a sokszor rendezetlen, és napról napra növekvő elektronikus szénakazlakban. Ez a könyv első sorban ebben segít: rendezetten tárja elénk az alapfogalmakat, azaz megadja azokat a „belépési pontokat”, ahonnan már magunk is jó eséllyel elindulhatunk megkeresni a hiányzó információt.
A könyv szerzői a Budapesti Műszaki és Gazdaságtudományi Egyetem Villamosmérnöki és Informatikai Karának Linux-programozási előadásait és laborgyakorlatait követik. Ez a jól bejáratott tematika elsőre egy kicsit furcsa lehet, hiszen nem az egyszerű, ám látványos példaprogramoktól indulva jut el a mélyebb témák felé, hanem pont fordított irányban halad. Azaz a mély elméleti Linux-alapozástól startol, és a finisben éri el a látványos GUI-alkalmazások írásának témáját. Egész pontosan az alábbi sorrendben:
- Betekintés a Linux-kernelbe
- Programkönyvtárak készítése
- Állomány- és I/O kezelés
- Párhuzamos programozás
- Hálózati kommunikáció
- Fejlesztés a Linux-kernelben
- A Qt keretrendszer programozása
Két hasznos függelék tartozik még a könyvhöz; a Fejlesztőeszközök és a Hibakeresés.
A sorrend garantálja, hogy tényleg a Linuxot tanuljuk meg programozni, és ne csak egyszerű linuxos programocskákat legyünk képesek gyorsan összerakni. (Linux alatt ez utóbbira eleve ott vannak a különféle szkript-nyelvek, az egészen egyszerűtől a „mindent tudókig”.)
Persze, aki nem akar kernel-modulokat, illetve hálózaton kommunikáló és/vagy több szálon futó programokat írni, annak nem kell az ezekhez tartozó fejezeteken átrágnia magát. Ettől függetlenül nem árt ismerkedés gyanánt elolvasni mindezt, mert lehet, hogy később kedvet kapunk egy-egy ilyen program készítésére is.
A kedvcsináló ugyanis a jól felépített, és a kiadó oldaláról is letölthető, kincset érő mintapéldák sokasága. Hihetetlenül lényegre törő kódokkal van dolgunk, olyanokkal, amik általában 100 soron (2 könyvoldalon) belül stabilan működő alkalmazásokat reprezentálnak az adott témában. A semmi felesleges „zajt” sem hordozó példákat szinte szájbarágós, soronkénti magyarázatok követik. Akit eddig kirázott a hideg arra a gondolatra, hogy a kernelbe belepiszkáljon, az talán elgondolkozik azon, hogy egy saját, virtuális eszközvezérlő – mindössze 500 sor! – mennyit tudna segíteni a további munkájában.
Aki megtanulja a Linuxot programozni, az eleve más rendszereken is előnnyel indulhat, mivel a pingvines OS rengeteg hordozható, platformfüggetlen komponensre épül. E könyv szerzői is gondot fordítottak arra, hogy lehetőség szerint a hordozható megoldásokat mutassák be, illetve jelezzék, hogy az adott funkció milyen környezetben használható még. Felhívják a figyelmet, ha System V-ös Unix, általános POSIX-szabványú – a Windows API-nak is van POSIX-rétege –, vagy kimondottan Linux-specifikus megoldásról van szó. Ezek után kissé bosszantó, hogy a Tárgymutatóban a „POSIX” szó és könyvbéli előfordulásai említve sincsenek. Örömteli viszont, hogy a grafikus felületen futó programok írását tényleg egy univerzális, szinte minden platformon, köztük Windowson is elérhető programozási környezetben, a Qt keretrendszerben ismerhetjük meg.
Akit tehát érdekel a Linux világán jócskán túlmutató, (rendszer)programozásról szóló egyetemi kurzus, az mindössze 7800 forintért részt vehet rajta, a napi politikából ismert röghöz kötési és hasonló tandíjbalhék nélkül.
(Asztalos Márk, Bányász Gábor, Levendovszky Tihamér: Linux programozás / SZAK Kiadó / 616 oldal)