460-4084/02 – Operační systémy mobilních zařízení (OSMZ)
Garantující katedra | Katedra informatiky | Kredity | 4 |
Garant předmětu | Mgr. Ing. Michal Krumnikl, Ph.D. | Garant verze předmětu | Mgr. Ing. Michal Krumnikl, Ph.D. |
Úroveň studia | pregraduální nebo graduální | Povinnost | povinný |
Ročník | 1 | Semestr | letní |
| | Jazyk výuky | angličtina |
Rok zavedení | 2015/2016 | Rok zrušení | 2023/2024 |
Určeno pro fakulty | FEI | Určeno pro typy studia | navazující magisterské |
Cíle předmětu vyjádřené dosaženými dovednostmi a kompetencemi
Cílem předmětu je představit tvorbu aplikací využívající přímo prostředků OS mobilního zařízení. Seznámení s Android SDK a NDK, Windows CE API, iOS a tvorbou aplikací pro Linux, sestavování kernelu a obrazu disku embedded systému.
Po ukončení kurzu budou studenti schopni:
- Identifikovat jednotlivé vrstvy operačního systému a popsat jeho hlavní funkce.
- Vyjmenovat klíčové charakteristiky nejpoužívanějších systémů mobilních zařízení.
- Popsat vnitřní procesy OS s ohledem na průběh života procesu.
- Vytvářet aplikace běžící přímo na konkrétním systému bez podpory rozšiřujících runtime knihoven.
- Modifikovat existující software tak, aby se lépe využily systémové zdroje.
Vyučovací metody
Přednášky
Cvičení (v učebně)
Anotace
Vytváření aplikací pomocí programovacích jazyků Java a C# je sice velmi pohodlné, ale v některých případech není příliš efektivní. Jde zejména o tvorbu aplikací nebo jejich částí, které vyžadují extrémní výpočetní výkon nebo velmi intenzivně spolupracují s periferními zařízeními. V těchto případech lze mnohem lepších výsledků dosáhnout pomocí programovacích jazyků C/C++ a přímého využití prostředků operačních systémů (Linux, Android, iOS).
Povinná literatura:
Doporučená literatura:
[1] Smith, Neil, Android Studio 4.1 Development Essentials - Java Edition: Developing Android 11 Apps Using Android Studio 4.1, Java and Android Jetpack, Payload Media, 2020,
ISBN 1951442253
[2] Levin, Jonathan, MacOS and iOS Internals, Volume II: Kernel Mode, Technologeeks Press; 2nd edition, 2019,
ISBN 0991055578
[3] Boling, Douglas, Programming Windows Embedded CE 6.0 Developer Reference, Microsoft Press; 4 edition, 2007,
ISBN 978-0735624177
[4] Tannenbaum, Andrew S., Operating Systems: Design and Implementation (Prentice-Hall Software Series)
[5] Yaghmour Karim, Embedded Android: Porting, Extending, and Customizing, O'Reilly Media, 2013,
ISBN 978-1449308292
[6] Ratabouil, Sylvain, Android NDK Beginner's Guide, Packt Publishing, 2012,
ISBN 978-1849691529
[7] Boling, Douglas, Programming Windows Embedded CE 6.0 Developer Reference, Microsoft Press; 4 edition, 2007,
ISBN 978-0735624177
Další studijní materiály
Forma způsobu ověření studijních výsledků a další požadavky na studenta
Průběžná analýza probíraných témat a jejich praktická implementace.
Hodnocení samostatně řešených úkolů.
Podmínky udělení zápočtu: úspěšné vypracování samostatných úkolů během semestru.
Závěrečné ověření studijních výsledků:
prezenční i kombinovaná forma studia - písemná zkouška.
E-learning
Další požadavky na studenta
Znalost programování v některém z vyšších programovacích jazyků (C#, Java, C++, apod.)
Základní znalost vývoje aplikací pro některou z mobilních platforem.
Prerekvizity
Korekvizity
Předmět nemá žádné korekvizity.
Osnova předmětu
Přednášky:
1. Architektura operačního systému, charakteristika mobilních OS.
2. Správa procesů, souběžné zpracování
3. Meziprocesni komunikace, synchronizace.
4. freeRTOS a princip přepínání kontextu, plánovače.
5. Správa paměti, stránkování, segmentace.
6. Souborové systémy (EXT2/3/4, JFFS/YAFFS, FAT).
7. Komunikace s periferními zařízeními, síťová komunikační rozhraní.
8. Linux, Android.
9. iOS (iPhone OS).
10. Windows CE/Mobile/Phone.
11. Multiplatformní vývoj, podpůrné knihovny a frameworky.
12. Zajištění bezpečnosti dat, možnosti kryptografie.
13. Techniky zpětného inženýrství, mobilní malware.
14. Power management, techniky úspory energie.
Cvičení (na PC učebně):
1. Android SDK, základy práce se sockets.
2. Implementace vlastního HTTP serveru - Sockets, Threads.
3. Problémy synchronizace, použití semaforů.
4. Ukázka synchronizace vláken, použití zpráv pro zasílání dat mezi vlákny.
5. Streamování video dat s Camera API.
6. Implementace plánovače Round Robin (RR).
7. Implementace priorit a prevence hladovění pro RR.
8. Implementace plánovače Lottery Scheduling (LS).
9. Čtení datových struktur souborového systému FAT.
10. Přístup k systému FAT v režimu read-only.
11. Implementace zápisu souborů.
12. Zpětné inženýrství, struktura APK souborů.
13. Analýza mobilního malware.
14. Optimalizace kódu, profilery.
Podmínky absolvování předmětu
Výskyt ve studijních plánech
Výskyt ve speciálních blocích
Hodnocení Výuky
Předmět neobsahuje žádné hodnocení.