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ó    

    Beágyazott operációs rendszerek

    A tantárgy angol neve: Embedded Operating Systems

    Adatlap utolsó módosítása: 2022. december 27.

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

    Villamosmérnöki szak, MSc képzés       
    Számítógép-alapú rendszerek főspecializáció      
    B tantárgy       

    Tantárgykód Szemeszter Követelmények Kredit Tantárgyfélév
    VIAUMB06   2/1/0/v 5  
    3. A tantárgyfelelős személy és tanszék Dr. Vajk István,
    A tantárgy tanszéki weboldala https://www.aut.bme.hu/Course/VIAUMB06
    4. A tantárgy előadója
     Név:
     Beosztás: Tanszék, intézet:
     Dr. Vajk István
     egyetemi tanár
     Automatizálási és Alkalmazott
     Informatikai Tanszék
     Bányász Gábor
     egyetemi tanársegéd
     Automatizálási és Alkalmazott
     Informatikai Tanszék
     Szabó Zoltán
     mérnöktanár
     Automatizálási és Alkalmazott
     Informatikai Tanszék
    5. A tantárgy az alábbi témakörök ismeretére épít A C és C++ nyelv, valamint az objektum orientált szoftverfejlesztési elvek ismerete és alkalmazása.
    6. Előtanulmányi rend
    Kötelező:
    NEM
    (TárgyEredmény( "BMEVIAUMA08", "jegy" , _ ) >= 2
    VAGY TárgyEredmény("BMEVIAUMA08", "FELVETEL", AktualisFelev()) > 0)

    A fenti forma a Neptun sajátja, ezen technikai okokból nem változtattunk.

    A kötelező előtanulmányi rend az adott szak honlapján és képzési programjában található.

    Ajánlott:
    -
    7. A tantárgy célkitűzése A tantárgy célkitűzése bemutatni azokat az operációs rendszereket, ill. a hozzájuk kapcsolódó eszközöket, amelyek a korszerű beágyazott rendszerekben megvalósítandó komplex szoftverrendszerek hatékony végrehajtását lehetővé teszik. A tantárgy egyrészt a kisebb – mikrokontroller kategóriájú – eszközökön alkalmazható operációs rendszereket mutatja be, melyek segítségével egyszerűbb szenzorok, IoT eszközök szoftverrendszerei megvalósíthatók. Kitér ezek legfőbb tulajdonságaira, szolgáltatásaira, alkalmazási lehetőségeikre. Másrészt a kifejezetten komplex, akár többprocesszoros rendszerekben alkalmazható Linux operációs rendszert részletesen ismerteti. A Linux operációs rendszerrel kapcsolatban bemutatja a rendszer alapvető felépítését, működését, a hatékony driver és alkalmazásfejlesztés sajátosságait. A megszerzett ismeretek használatával a hallgatók képesek lesznek komplex rendszerek (pl. mobil robotok, autonóm járművek, stb.) különböző komponenseinek Linux alapon történő megvalósítására, ill. a rendszerhez illesztésére.
    8. A tantárgy részletes tematikája

    I. Az előadások részletes tematikája:

    1.  Beágyazott szoftver architektúrák. Operációs rendszerek alapvető szolgáltatásai, a beágyazott rendszerekben történő alkalmazásuk sajátosságai.

    2.  Operációs rendszerek elterjedtsége, kiválasztási szempontjaik. Operációs rendszerek alkalmazása többprocesszoros rendszerekben. A uCos-II, uCos-III operációs rendszerek felépítése és szolgáltatásai. Ütemező algoritmus, taszkok nyilvántartása, elérhető szolgáltatások, taszkok közötti kommunikáció.

    3.  A FreeRTOS operációs rendszer felépítése és szolgáltatásai. Ütemező algoritmus, taszkok nyilvántartása, elérhető szolgáltatások, taszkok közötti kommunikáció. Heap kezelés, stack overflow detektálás és kezelése.

    4.  A GNU/Linux operációs rendszer általános jellemzőinek bemutatása. Megismerkedés a Kernel legfőbb jellemzőivel úgymint ütemezés, memóriakezelés, taszkok nyílvántartása. Az operációs rendszer felépítésének elemzése.

    5.  Az alapvető Unix parancsok áttekintése. A BASH shell parancssori és programozási funkciónak részletes tárgyalása. A klasszikus jogosultság kezelés. Egyszerű reguláris kifejezések.

    6.  A minimális beágyazott Linux rendszert felépítő legfontosabb komponensek bemutatása. Boot manager, Linux Kernel, glibc, busybox, konfigurálásának és fordításának lépései. Állományrendszerek típusai és a kezelésük.

    7.  Automatizált beágyazott Linux rendszert generáló eszközök áttekintése úgy mint Buildroot, OpenEmbedded, Yocto Project. A Yocto Project rendszer felépítésének bemutatása.

    8.  A Yocto Project rendszer generálási folyamatába saját komponensek, kiegészítések, javítások beillesztése. Az SDK generálása. Az SDK generálás kiegészítése az egyéni komponensekkel. Szimulációs rendszer létrehozása fejlesztéshez, teszteléshez.

    9.  Ismerkedés a fejlesztő eszközökkel: fordító (gcc), fejlesztői könyvtárak, Makefile szintaktikája, autotools.

    10.  Az állományabsztrakció bemutatása, és az állománykezelő rendszerhívások áttekintése, beleértve az i-node kezelő függvényeket, I/O multiplexálást, az ioctl rendszerhívást is. Socket kezelés.

    11.  A Linux kernel fejlesztés alapjai. Kernel modulok írása, fordítása, használata. Paraméterátadás a modul számára. Karakteres eszközvezérlő felépítésének rövid bemutatása. Megszakítás kezelés.

    12.  Linux eszközvezérlő modell bemutatása, GPIO, I2C, SPI buszokra kapcsolódó eszközök Kernel-space drivereinek felépítése, megvalósítása. Eszköz erőforrás menedzsment.

    13.  Device Tree bemutatása. Device Tree támogatás implementálása az eszközmeghajtókban. Kernel szálak. Megszakítás kezelés kernel szálakkal. Konkurencia kezelés a kernelben: atomi műveletek, spinlock, semaphore, mutex.

    II. A gyakorlatok részletes tematikája:

    1.  uCos-II, uCos-III, FreeRTOS operációs rendszerek implementációs sajátosságai, konfigurálása.

    2.  FreeRTOS operációs rendszer használata egy mérési adatgyűjtő alkalmazás megvalósításához.

    3.  Ismerkedés a Linux rendszerrel. Állományrendszer felépítése. A rendszer konfigurációs állományainak áttekintése. A shell programozás és a jogosultság kezelés gyakorlása.

    4.  A Yocto Project rendszer használatának gyakorlati bemutatása. Linux rendszer elkészítése egy megadott eszközre az első lépésektől a kész rendszerig.

    5.  Alkalmazás fordítás a gyakorlatban. Hibakeresés eszközei (gdb, malloc debugerek, valgrind, AddressSanitizer, strace), integrált fejlesztői környezetek. BitBake recept készítés az alkalmazáshoz.

    6.  Egyszerű Linux eszközmeghajtó példák az előadáson elhangzottak bemutatására. Hibakeresés módszerei.

    7.  Gyakorlati I2C, SPI Kernel driverek bemutatása. A Yocto Project rendszerben az SDK kiegészítése a Kernel modulok különálló fordításához. A driver beillesztése a Yocto Project rendszer generálási folyamatába.

    9. A tantárgy oktatásának módja (előadás, gyakorlat, laboratórium) A tárgy anyaga előadásokon és gyakorlatokon kerül ismertetésre. Az előadások és a gyakorlatok az anyag ütemében váltogatják egymást, a gyakorlatokon példák és esettanulmányok formájában kerül elmélyítésre az előadásokon elhangzott elméleti tananyag.
    10. Követelmények

    Szorgalmi időszakban:

    Az ismeretek átfogó és részletes áttekintését a szorgalmi időszak alatt egy alkalommal nagyzárthelyivel mérjük. Az aláírás megszerzésének feltétele a zárthelyi elfogadható (legalább elégséges szintű, azaz minimum 45%-os) megoldása. A vizsgára bocsátás feltétele az aláírás megléte.

    Vizsgaidőszakban:

    A vizsga írásbeli. A kreditpont megszerzésének feltétele: legalább elégséges vizsgaosztályzat elérése.
    A tárgyból szerzett érdemjegy 30%-ban a zárthelyin, 70%-ban a vizsgán elért eredményből (pontszámból) kerül meghatározásra.
    11. Pótlási lehetőségek

    A zárthelyihez a TVSz előírásai szerint a szorgalmi időszakban 1 pótlási lehetőséget biztosítunk. Második pótlás lehetősége csak indokolt esetben, egyéni egyeztetést követően biztosítható.

    A vizsgák a TVSz előírásai szerint pótolhatók.
    12. Konzultációs lehetőségek Órák előtt és után, valamint a számonkérésekhez kapcsolódóan egyeztetés szerint.
    13. Jegyzet, tankönyv, felhasználható irodalom
    • Bányász G., Szabó Z.: Beágyazott operációs rendszerek (Elektronikus jegyzet). BME AUT, 2023.
    • Tevesz G., Szabó Z.: Mikrokontroller alapú rendszerek (Elektronikus jegyzet). BME AUT, 2022.
    • Richard Barry: Mastering the FreeRTOS Real Time Kernel, Real Time Engineers Ltd., 2016.
    • Asztalos Márk, Bányász Gábor, Levendovszky Tihamér: Linux programozás, Szak Kiadó 2013.
    14. A tantárgy elvégzéséhez átlagosan szükséges tanulmányi munka
    Kontakt óra39
    Félévközi készülés órákra 24
    Felkészülés zárthelyire 32
    Házi feladat elkészítése -
    Kijelölt írásos tananyag elsajátítása 19
    Vizsgafelkészülés 36
    Összesen 150
    15. A tantárgy tematikáját kidolgozta
     Név:
     Beosztás: Tanszék, intézet:
     Dr. Vajk István
     egyetemi tanár
     Automatizálási és Alkalmazott
     Informatikai Tanszék
     Bányász Gábor
     egyetemi tanársegéd
     Automatizálási és Alkalmazott
     Informatikai Tanszék
     Szabó Zoltán
     mérnöktanár
     Automatizálási és Alkalmazott
     Informatikai Tanszék