Beágyazott operációs rendszerek
A tantárgyleírás hatályossága
| 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) |
|
||||||||||||
| 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
elérhetőség:
vajk.istvan@vik.bme.hu
|
||||||||||||
| 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
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.
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
Tanulástámogató anyagok
Online források
A tantárgy teljesítéséhez ajánlott előzetes ismeretek
Általános szabályok
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
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 |