Budapest University of Technology and Economics, Faculty of Electrical Engineering and Informatics

    Belépés
    címtáras azonosítással

    vissza a tantárgylistához   nyomtatható verzió    

    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.