Belépés címtáras azonosítással
magyar nyelvű adatlap
Linux programozás
A tantárgy angol neve: Programming of Linux
Adatlap utolsó módosítása: 2006. július 1.
Tantárgy lejárati dátuma: 2009. november 24.
Villamosmérnöki Szak
Műszaki Informatika Szak
Választható tárgy
Név:
Beosztás:
Tanszék, Int.:
Bányász Gábor
tanársegéd
Aut. és Alk. Inf.
Kardos Gergely
tanszéki mérnök
A tárgy célja a Linux platform, mint fejlesztési környezet megismertetése a hallgatókkal. Bemutatja a Linux környezet sajátosságait, a fejlesztés, hibakeresés lehetőségeit. A hallgatók az órák során elsajátíthatják a programok közötti kommunikáció megvalósítását, a többszálú programozást, az I/O vezérlést, kernel modulok készítését, és a KDE programok fejlesztését.
Kiindulási alapot kívánunk nyújtani azoknak, akik Linux platformon tervezik szerver programok, desktop alkalmazások vagy beágyazott rendszerek fejlesztését.
Bevezetés
A Linux operációs rendszer, a Linux kernel, információforrások fejlesztői szemszögből.
Fejlesztői eszközök
Általános szövegszerkesztők, fordítók (gcc, g++), make, grafikus fejlesztői környezet (KDevelop).
Nyomkövetés, hibakeresés
A hibakeresés, nyomkövetés eszközei (gdb, xgdb, ddd). A programhibák utólagos visszakeresése, a core állomány használata. Memória kezelési hibák keresése: Electric Fence, memprof, stb. Rendszerhívások követése: strace
Állomány és I/O kezelés
Állomány jogok, állomány típusok, egyszerű állomány kezelés, inode információk kezelése, könyvtárak kezelése, I/O eszközök kezelése, csővezetékek, I/O multiplexálás, zárolás.
Folyamatok és szálak
Folyamatok és többszálú programok létrehozásának lehetősége Linux alatt, ütemezés. Folyamatok közötti kommunikáció (signal, pipe, System V mechanizmusok). Többszálú programok fejlesztése LinuxThreads könyvtárral. Szálak létrehozása, szinkronizálás.
Könyvtárak fejlesztése
Statikus, megosztott és dinamikusan betöltött programkönyvtárak fejlesztése, használata.
Hálózati kommunikáció
Socketek létrehozása és használata. Az egyszerű socketek létrehozásától, a Unix Domain scoketeken keresztül, a TCP/IP kommunikációig. A távoli eljáráshívás (RPC) használata.
Kernel modulok fejlesztése
A modulok fejlesztésének jellemzői, eltérései a programok fejlesztéséhez képest. Karakteres típusú eszközvezérlő modul készítése. A proc állomány rendszer használata. Betöltési paraméterek kezelése.
XWindow, KDE fejlesztés
Az X grafikus felhasználói felület architektúrájának ismertetése. Eseményvezérelt programozás. A KDE programok felépítése. KDevelop fejlesztői környezet részletes ismertetése. A Qt Toolkit egyes elemei: szignál-szlot metódus, moc compiler, alaposztályok. Származtatott ablakelemek, dialógusablakok, erőforrások, konfigurációs állományok. A Dokumentum-Nézet architektúra alapkoncepciói, alkalmazása SDI és MDI programokban.
A tantárgy heti 4 óra előadás. (Heti 2 óra előadóteremben, 2 óra tanszéki számítógép laborban.)
a. A szorgalmi időszakban: 1 elfogadott Házi Feladat
b. A vizsgaidőszakban: vizsga
Bányász Gábor, Levendovszky Tihamér: Linux Programozás
(a tantárgyhoz tartozó tanulmányi idő körülbelüli felosztása a tanórák, továbbá a házi feladatok és a zárthelyik között (a felkészülésre, ill. a kidolgozásra átlagosan fordítandó/elvárható idők félévi munkaórában, kredit x 30 óra, pl. 5 kredit esetén 150 óra)):
Kontakt óra
60
Félévközi készülés órákra
30
Felkészülés zárthelyire
-
Házi feladat elkészítése
20
Kijelölt írásos tananyag elsajátítása
Vizsgafelkészülés
Összesen
150