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í | | |
| | 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
Podmínky absolvování jsou definovány pouze pro konkrétní verzi předmětu a formu studia
Výskyt ve studijních plánech
Výskyt ve speciálních blocích
Hodnocení Výuky
Předmět neobsahuje žádné hodnocení.