K-INFO
HU
EN
Belépés

Beágyazott operációs rendszerek

Embedded Operating Systems
A tantárgyleírás hatályossága
Hatályosság kezdete:
2026. March 21.
Hatályosság vége:
—
Tantárgy neve (magyarul, angolul)
Beágyazott operációs rendszerek
Embedded Operating Systems
Tantárgykód BMEVIAUMB06
Tantárgyjelleg —
Képzési szint —
Kurzustípusok és óraszámok (heti/féléves)
Kurzustípus elmélet gyakorlat laboratóriumi gyakorlat
óraszám (heti) 2 1 0
jelleg (kapcsolt/önálló) — kapcsolt —
Tanulmányi teljesítmény/értékelés típusa vizsga
Tantárgy kreditértéke 5
Tantárgyfelelős
Dr. Vajk István
beosztás: egyetemi docens
Tantárgyat gondozó oktatási szervezeti egység
Automatizálási és Alkalmazott Informatikai Tanszék
Kar Villamosmérnöki és Informatikai Kar
Tantárgy weboldala https://www.aut.bme.hu/Course/VIAUMB06
Tantárgy elsődleges mintatantervi jellege —
Közvetlen előkövetelmények – Erős előkövetelmény nincs
Közvetlen előkövetelmények – Gyenge előkövetelmény nincs
Közvetlen előkövetelmények – Párhuzamos előkövetelmény nincs
Közvetlen előkövetelmények – Mérföldkő előkövetelmény nincs
Közvetlen előkövetelmények – Kizáró feltétel nincs

Célkitűzés

Tantárgyprogram

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.

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.

Tanulmányi eredmények

Ez a tantárgy a KKK rendeletben meghatározott, következő kompetenciák fejlesztését szolgálja:

Tudás

Nincsenek rögzített tanulási eredmények.

Képességek

Nincsenek rögzített tanulási eredmények.

Attitűd

Nincsenek rögzített tanulási eredmények.

Autonómia és felelősség

Nincsenek rögzített tanulási eredmények.

Oktatási módszertan

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.

Tanulástámogató anyagok

Online források
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.

A tantárgy teljesítéséhez ajánlott előzetes ismeretek

Tudás típusú kompetenciák
(azon előzetes ismeretek összessége, amelyek megléte nem kötelező, de a tantárgy eredményes teljesítését nagyban elősegíti)
A C és C++ nyelv, valamint az objektum orientált szoftverfejlesztési elvek ismerete és alkalmazása.
Képesség típusú kompetenciák
(azon előzetes képességek és készségek összessége, amelyek megléte nem kötelező, de a tantárgy eredményes teljesítését nagyban elősegíti)
nincs
Ajánlott (nem kötelező) előzetesen megszerzendő kompetenciák
(azon ajánlott (nem kötelező) előzetesen megszerzendő kompetenciák összessége, amelyek jelentősen hozzájárulnak a tantárgy eredményes teljesítéséhez)
A C és C++ nyelv, valamint az objektum orientált szoftverfejlesztési elvek ismerete és alkalmazása.
Általános szabályok
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. 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.
Teljesítményértékelési módszerek
Szorgalmi időszakban végzett teljesítményértékelések részletes leírása

Nincs megadva részletes értékelés.

Szorgalmi időszakban végzett teljesítményértékelések részaránya

Nincs megadva részarány.

Vizsgaidőszakban végzett teljesítményértékelések részletes leírása

Nincs megadva részletes értékelés.

Vizsgarészek részaránya

Nincs megadva részarány.

Érdemjegy megállapítása

Nincs megadva érdemjegy határ.

Jelenléti és részvételi követelmények

Nincs megadva jelenléti követelmény.

Javítás, ismétlés és pótlás különös szabályai

Nincs megadva.

Rövid leírás

Nincs megadva.

Részletes leírás

Nincs megadva.

Ajánlott tantárgyak
-
A tantárgy elvégzéséhez szükséges tanulmányi munka

Nincs megadva munkaidő bontás.

Tantárgykövetelmények hatályossága
Tantárgykövetelmények hatályosságának kezdete:
—
Tantárgykövetelmények hatályosságának vége:
—
Tantervi elhelyezés
Kar Képzés Tanterv Mintatantervi jelleg Elsődleges
Gépészmérnöki Kar mechatronikai mérnöki mechatronikai mérnöki (2019) kötelező nem
Gépészmérnöki Kar mechatronikai mérnöki mechatronikai mérnöki (2019) kötelező nem