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.

Budapesti Műszaki és Gazdaságtudományi Egyetem
Villamosmérnöki és Informatikai Kar

Villamosmérnöki Szak

Műszaki Informatika Szak

Választható tárgy

Tantárgykód Szemeszter Követelmények Kredit Tantárgyfélév
VIAU9157 7-9 4/0/0/v 5 1/1
3. A tantárgyfelelős személy és tanszék Dr. Lengyel László,
4. A tantárgy előadója

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

Aut. és Alk. Inf.

5. A tantárgy az alábbi témakörök ismeretére épít
  • Linux/Unix felhasználói alapismeretek
  • C/C++ Programozás
6. Előtanulmányi rend
Ajánlott:
7. A tantárgy célkitűzése

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.

8. A tantárgy részletes tematikája

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.

9. A tantárgy oktatásának módja (előadás, gyakorlat, laboratórium)

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

10. Követelmények

a. A szorgalmi időszakban: 1 elfogadott Házi Feladat

b. A vizsgaidőszakban: vizsga

11. Pótlási lehetőségek
12. Konzultációs lehetőségek
13. Jegyzet, tankönyv, felhasználható irodalom

Bányász Gábor, Levendovszky Tihamér: Linux Programozás

14. A tantárgy elvégzéséhez átlagosan szükséges tanulmányi munka

(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

20

Vizsgafelkészülés

20

Összesen

150

15. A tantárgy tematikáját kidolgozta

Név:

Beosztás:

Tanszék, Int.:

Bányász Gábor

tanársegéd

Aut. és Alk. Inf.