K-INFO
HU
EN
Belépés

Beágyazott Linux és platformjai

Embedded Linux and its Platforms
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 Linux és platformjai
Embedded Linux and its Platforms
Tantárgykód BMEVIMIAC19
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 2 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. Kovácsházy Tamás
beosztás: egyetemi docens
Tantárgyat gondozó oktatási szervezeti egység
Mesterséges Intelligencia és Rendszertervezés Tanszék
Kar Villamosmérnöki és Informatikai Kar
Tantárgy weboldala http://www.mit.bme.hu/oktatas/targyak/VIMIAC19
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

Előadás

1. Beágyazott Linux bevezető, a Linux felépítése és platformjai (SoC, FPGA, stb.), SW végrehajtási
modell és memória menedzsment (virtuális tárkezelés és annak következményei), perifériák kezelés lehetőségei és következményei Linuxban (user- és kernel-space).

2. Shell használta. Linux programok alapjai, parancssor és konfiguráció kezelése. Fájlrendszer és
használata, beleértve /proc, /sys, stb. fájlrendszereket. Soros port (UART) használata programozott
módon.

3. Ütemező, ütemező befolyásolása, valós-idejű ütemezés. Folyamatok és szálak használata és
alkalmazásának a következményei. Eseményvezérelt programozás mintái (select, poll, epol).
Rendszerindítás és folyamatmenedzsment alapjai (systemd és alternatívái).

4. Kölcsönös kizárás, kommunikáció és szinkronizáció Linux-ban. Megoldások közös memória
esetén (folyamat kontextusában futó szálak között). Mutex, readers-writer lock, user-space
spinlock, conditional variable és azok használata.

5. Folyamatok közötti kommunikáció (IPC) alacsony szinten és magas szinten (DBUS).
Eseménykezelés, csővezetékek, folyamatok közötti osztott memória és annak ahasználata, file
locking, DBUS alapok.

6. Beágyazott perifériák kezelésére alkalmas alrendszerek, rövid bevezetés a Device Tree-be. GPIO
kezelése Linux-ban és a programozási modelleknek a hatása a teljesítményre. A/D és D/A kezelés,
I2C, SPI és CAN kezelése Linux-ban, a kapcsolódó alrendszerek felépítése.

7. User-space driverek, USB kezelés és TUN/TAP felhasználói módban. Memóriába leképzett
perifériák elérése felhasználói módban, előnyök és hátrányok.

8. Alacsony (socket) és magas szintű (HTTP, stb.) hálózatkezelés, köztes rétegek (Middleware).

9. Heterogén architektúra támogatása, feladatütemezés és kommunikáció külső HW gyorsítókkal
(valós-idejű magok, AI gyorsítás, OpenCV gyorsítás példával, etc).

10. A Linux multimédia alrendszere: Video for Linux (V4L2). Multimédia keretrendszerek
áttekintése: Gstreamer, FFmpeg.

11. SoC, fogalma, jellemző felépítése. Fix funkciós és programozható hardver egységek, ezek
rendszerbe illesztése. GPU-k felépítése.

12. Heterogén rendszerek programozási modellje: OpenCL és CUDA.

13. FPGA alapú SoC eszközök jellemzői (Intel, Lattice, Xilinx). Processzoros alrendszer,
programozható logika és egyéb rendszer elemek ismertetése. FPGA alapú gyorsítók magas szintű
leírása: OpenCL és HLS.

Gyakorlat

1. gyakorlat: Fejlesztő Rendszer összeállítása

2. gyakorlat: Shell programozás és parancssor kezelés, soros port kezelése termio-val.

3. gyakorlat: Folyamat és szál létrehozása, ütemezés befolyásolása (RT és CPU affinitás),
folyamatkezelés systemd-vel

4. gyakorlat: Select és poll/epol alapú komplex SW architektúrák

5. gyakorlat: Kölcsönös kizárás és szinkronizáció közös memóriában, IPC megoldások használata

6. gyakorlat: GPIO (GPIO user-space könyvtárral és memóriába leképezve) kezelése felhasználói
programban, I2C és SPI kezelése (user-space saját driver megírása és létező kernel driver
használata)

7. gyakorlat: User-space USB periféria kezelése (periféria MCU-n megvalósítva, kész kóddal, kommunikációs specifikációval)

8. gyakorlat: Socket programozás, HTTP kliens programozás (információ letöltése programból
szerverről)

9. gyakorlat: Remoteproc és rpmsg a gyakorlatban, OpenCV heterogén rendszerchip-en
(remoteproc és rpmsg magas szinten)

10. gyakorlat: V4L2 user space API használata.

11. gyakorlat: Gstreamer használata.

12. gyakorlat: OpenCL/CUDA alapok: hoszt kód és egyszerű kernel.

13. gyakorlat: OpenCL/CUDA: kernel programozás.

A tárgy elsődleges célja a hallgatók bevezetése a beágyazott Linux alkalmazás (user-space) fejlesztés részleteibe, beleértve a platform választást is. A platformok tekintetében érintjük a klasszikus PC (x86) platformot, de elsősorban a modern heterogén architektúrájú rendszerchipekre (SoC) és az FPGA platformra összpontosítunk. Ismertetjük a beágyazott Linux user-space szoftver lehetőségeit, a fejlesztés menetét, a tipikus alapfeladatokat, pl. parancssor és konfiguráció feldolgozás, programvégrehajtás és életciklus menedzsment részletei (systemd), párhuzamos és valós-idejű végrehajtás (multicore és heterogén környezetben). Ezen kívül sor kerül még az fájlrendszerrel való ismerkedésre és a hálózatkezelésre is bevezető szinten. Kitérünk a Linux videó alrendszerére (V4L2), a hardver gyorsított kép- és videó feldolgozást támogató magas szintű megoldásokra (GStreamer, FFmpeg, OpenCV), valamint a párhuzamos végrehajtó egységek (grafikus processzorok, FPGA-k) programozási lehetőségeire (OpenCL, CUDA). Ismertetjük a komplex, heterogén System-on-Chip (SoC) megoldások jellemző felépítését (pl. TI AM3x/4x/5x/6x, NXP i.MXx, NVIDIA Jetson), az újrakonfigurálható SoC-k (pl. Xilinx MPSoC, Versal) architektúráját. Bemutatjuk az újrakonfigurálható hardverek szoftver környezetének kialakítását, valamint az egyedi, hardver gyorsított alkalmazásfejlesztés lehetőségeit.

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

Előadás elméleti anyaggal és az anyagrészek gyakorlatban történő demonstrációjával és gyakorlat.

Tanulástámogató anyagok

Online források
W. Richard Stevens (Author), Stephen A. Rago, „Advanced Programming in the UNIX Environment; (3rd Edition) (Addison-Wesley Professional Computing Series, 2013.; Asztalos Márk, Bányász Gábor, Levendovszky Tihamér, „Linux programozás, Második, átdolgozott; kiadás", 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)
Programozás C/C++ nyelven Beágyazottszoftver-fejlesztés Mikrokontroller alapú rendszerek Számítógép architektúrák Operációs rendszerek Számítógép hálózatok
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)
Programozás C/C++ nyelven Beágyazottszoftver-fejlesztés Mikrokontroller alapú rendszerek Számítógép architektúrák Operációs rendszerek Számítógép hálózatok
Általános szabályok
Követelmények: Szorgalmi időszakban Részvétel a gyakorlatokon: A gyakorlatokon a részvételt ellenőrizzük, a megrendezésre kerülő gyakorlatok minimum 2/3-án a részvétel kötelező az az aláíráshoz és a vizsgára bocsáthatósághoz. Házi feladat elkészítése: A házi feladat elfogadható szintű teljesítése szükséges az aláíráshoz és a vizsgára bocsáthatósághoz. A házi feladat egy beágyazott Linux-t használó funkcionális rendszer elkészítése. A feladat specifikációját a 4. oktatási hét végéig le kell adni. A 8. feladat terveit és a kulcskoncepciókat bemutató prototípusokat a 8. hétig lehet bemutatni. A teljes, működőképes feladatot a dokumentációval a szorgalmi időszakban lehet leadni. Vizsgaidőszakban Szóbeli vizsga. Pótlási lehetőségek: A gyakorlatok nem pótolhatók, azoknak legalább a 2/3-án a megjelenés kötelező (13 vagy 14 gyakorlat esetén 9-en, 12 esetén 8, az aktuális szám a félév beosztásától függ). A specifikációt a 8. hétig, a házi feladat terveit és kulcskoncepcióit bemutató prototípusokat a 14. hétig lehet pótolni (következő ütemezett feladatrész leadási határidejéig). A végleges házi feladat leadása a pótlási héten pótolható, ha ez előzetes dokumentációk leadásra kerültek az azokra megadott pótlási feltételekkel. A házi feladat zárthelyivel nem helyettesíthető.
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
IMSc program: Az IMSc program hallgatói számára emelt szintű házi feladat elkészítését tesszük lehetővé. Alapvető célunk az, hogy a hallgatókat a tananyag mélyebb megismerésére ösztönözzük, és nagyobb választási lehetőségeket is kínáljunk számukra. Ezen kívül az előadásokon rendszeresen rámutatunk a tárgy tematikáját kiegészítő, emelt szintű, önállóan elsajátítható, kiegészítő ismeretekre, amelyek bemutatását a szóbeli vizsgán figyelembe vesszük az értékelés során. IMSc pontok: A tantárgyból maximum 25 IMSc pont szerezhető. Ebből 15 IMSc pont szerezhető az emelt szintű házi feladat vállalásával (ennek igényét a hallgatónak a félév elején jeleznie kell) és kiemelkedő műszaki szinten történő elkészítésével. Az emelt szintű házi feladatok értékelését a tárgyfelelős és a házi feladat konzulense együtt végzi. A szóbeli vizsgán 10 IMSc pont szerezhető a vizsgán érintett tématerületekből megadott kiegészítő anyagrészek ismeretéért. Az IMSc pontok gyűjtése csak a kiemelkedően elkészített házi feladat és jeles vizsga esetén lehetséges, az extra feladatok megoldásával. Ezen pontok megszerzése nélkül is jeles szinten teljesíthetők a tantárgy követelményei. Az IMSc pontok megszerzése az IMSc programban nem résztvevő hallgatók számára is biztosított.
Ajánlott tantárgyak
Beágyazottszoftver-fejlesztés Mikrokontroller alapú rendszerek
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

Nincsenek rögzített tantervi elhelyezések ehhez a tárgyverzióhoz.