460-4084/02 – Operating Systems of Mobile Devices (OSMZ)
Gurantor department | Department of Computer Science | Credits | 4 |
Subject guarantor | Mgr. Ing. Michal Krumnikl, Ph.D. | Subject version guarantor | Mgr. Ing. Michal Krumnikl, Ph.D. |
Study level | undergraduate or graduate | Requirement | Compulsory |
Year | 1 | Semester | summer |
| | Study language | English |
Year of introduction | 2015/2016 | Year of cancellation | 2023/2024 |
Intended for the faculties | FEI | Intended for study types | Follow-up Master |
Subject aims expressed by acquired skills and competences
We will introduce the development of applications running directly on operating system and not using any extensions of CLR or Java environments. Students will learn how to use Android native development platform, Windows CE API, iOS and Linux API.
After successful completion of the course the student should be able to:
- Identify and describe layered model of the operating system.
- Provide characteristics of most popular mobile operating systems.
- Describe inner processes in OS with respect to the process life-cycle.
- Develop applications running on specific operating systems without needs for CLR or additional libraries.
- Modify existing software in order to increase effectiveness of resources allocation.
Teaching methods
Lectures
Tutorials
Summary
Writing applications in Java or C# is relatively easy, but there are special cases, where the generated code is not very efficient. The examples of most demanding applications are computationally intensive algorithms or peripheral and network communications. In order to achieve better results, we have to use C/C++ with the possibility to directly access the OS resources.
Compulsory literature:
Recommended literature:
[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
Additional study materials
Way of continuous check of knowledge in the course of semester
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
Other requirements
Knowledge of a higher programming language (C#, Java, C++, etc.)
Basics of mobile application development and familiarity with at least one mobile platform.
Prerequisities
Co-requisities
Subject has no co-requisities.
Subject syllabus:
Lectures:
1. Architecture of operating systems. Mobile operating systems.
2. Process managements, concurrency
3. Interprocess communication, synchronization.
4. freeRTOS and context switching, process schedulers.
5. Memory management, paging, segmentation.
6. File systems (EXT2/3/4, JFFS/YAFFS, FAT).
7. Peripheral communications and interrupt handling, network communication.
8. OS Linux, Android.
9. iOS (iPhone OS)
10. Windows CE/Mobile/Phone.
11. Cross-platform development, libraries and frameworks.
12. Security considerations, cryptography.
13. Reverse engineering, mobile malware.
14. Power management, optimization of energy consumption.
Labs:
1. Android SDK, introduction to sockets.
2. Implementation of HTTP server - Sockets, Threads.
3. Synchronization problems, semaphores.
4. Thread synchronization, messages.
5. Video streaming, Camera API.
6. Round Robin (RR) scheduler implementation.
7. Priority extension of RR.
8. Lottery Scheduling implementation.
9. Accessing FAT file system metadata.
10. Reading FAT file system content.
11. Implementing write operation on FAT file system.
12. Application reverse engineering, content of application bundles.
12. Malware analysis.
13. Code optimization, profilers.
Conditions for subject completion
Occurrence in study plans
Occurrence in special blocks
Assessment of instruction
Předmět neobsahuje žádné hodnocení.