Skip to main content
Skip header
Terminated in academic year 2023/2024

Operating Systems of Mobile Devices

Type of study Follow-up Master
Language of instruction Czech
Code 460-4084/01
Abbreviation OSMZ
Course title Operating Systems of Mobile Devices
Credits 4
Coordinating department Department of Computer Science
Course coordinator Mgr. Ing. Michal Krumnikl, Ph.D.

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.
13. Malware analysis.
14. Code optimization, profilers.

Literature

[1] Tannenbaum, Andrew S., BOS, Herbert, Modern Operating Systems (4th Edition), Prentice Hall, 2014, ISBN 978-0133591620 

Advised 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