Beágyazott operációs rendszerek (VIAUMB06)

Tárgy hivatalos adatlapja: https://portal.vik.bme.hu/kepzes/targyak/VIAUMB06

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.

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.

A gyakorlatok/laborok 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.

Hírek   A tárgy híreinek olvasása RSS-en keresztül

Nincsenek aktuális hírek a tárgyhoz. Ha a később megjelenő hírekről azonnal értesülni szeretne, iratkozzon fel az RSS csatornánkra.

Régebbi hírek »

Jegyzetek

A tárgyhoz nincs feltöltve jegyzet, vagy az csak belépett illetve a tárgyat felvett hallgatók számára érhető el.