Operační systémy pro mobilní zařízení (OSMZ)
For English version of this site click here
Vyučující : Michal Krumnikl
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 jejích částí, které vyžadují extrémní výpočetní výkon nebo velmi intenzívně spolupracují s periferními zařízeními. V takovýchto případech lze mnohem lepších výsledků dosáhnout pomocí programovacích jazyků C/C++. Důraz je kladen také na vnitřní architekturu operačních systému v mobilních a embedded zařízeních (Windows CE, Linux).
Přednášky 2023/2024
Prezentace přednášek je možno stahovat jen z domény vsb.cz, pro přístup do sítě TUONET je možno použít VPN koncentrátor VŠB.
Originál doporučené literatury pro obecnou část - Tanenbaum Andrew S.: Operating Systems - Design and Implementation. Neautorizovaný český překlad úvodních kapitol naleznete zde. Obsah přednášek a webu je průběžně aktualizován a doplňován.
- Úvod, srovnání OS mobilních zařízení, základní dělení OS
- Základní architektura OS, systémové volání, procesy a vlákna
- freeRTOS a princip přepínání kontextu
- Plánování a řízení spotřeby
- Procesy a plánovače
- IPC, synchronizace
- Správa paměti, stránkování, segmentace, Organizace pamětí C/C++ (YouTube)
- Java Native Interface (Android NDK)
- Souborové systémy (EXT2, JFFS, FAT)
- Linux / Android
- iOS a OSx
- Windows CE a Windows Phone
- Palm OS (deprecated), WebOS
- Multiplatformní vývoj - Qt
- Mobilní malware
- bada (deprecated)
Pokyny pro COVID/online výuku 2020/2021
- Týden I. (8.2.-12.2.2021) - Úvod, struktura OS a systémová volání
- Týden II. (15.2.-19.2.2021) - Procesy a přepnutí kontextu
- Týden III. (22.2.-26.2.2021) - Plánovače procesů
- Týden IV. (1.3.-5.3.2021) - IPC, synchronizace
- Týden V. (8.3.-12.3.2021) - Správa paměti, stránkování
- Týden VI. (15.3.-19.3.2021) - Souborové systémy
- Týden VII. (22.3.-26.3.2021) - Linux, úvod k Androidu
- Týden VIII. (29.3.-2.4.2021) - Android
- Týden IX. (5.4.-9.4.2021) - bez přednášek (Velikonoce)
- Týden X. (12.4.-16.4.2021) - iOS a OSx
- Týden XI. (19.4.-23.4.2021) - Windows CE a Windows Phone
- Týden XII. (26.4.-30.4.2021) - Palm OS (deprecated), WebOS
- Týden XIII. (3.5.-7.5.2021) - Multiplatformní vývoj
Video ukázky (2020/2021)
Zkouška 2023/2024
Kontrolní otázky a okruhy ke zkoušce
Cvičení 2023/2024
Odevzdávání úkolů proběhne skrz Kelvin. Tam naleznete i podrobný popis úkolů a odkazy na pomocné materiály.
Dodatečné materiály ke cvičením
- Návod pro vytvoření malého Linuxového systému (buildroot)
- Win CE InteropServices
- Win CE InteropServices (C vs C#)
- Windows CE Hello World (VS projekt)
- Windows CE API
- Symbian OS
- Příklady k Symbian OS
Odkazy na HDD/SD/SSD hacking z přednášek
Prezentace Tieto (k dnes již historickým OS)
Nástroje
Android :
Android Studio (SDK)
Android NDK
Linux :
Linux kernel archive
BusyBox: The Swiss Army Knife of Embedded Linux
Buildroot: making Embedded Linux easy
KDrive Tiny X Server
X.Org
Qt Project
Windows CE :
.NET Compact Framework MSDN
Windows CE API Reference
bada : (Internet Archive)
bada Developers
bada SDK
Symbian : (Internet Archive)
Symbian Foundation
Carbide.c++
Palm, WebOS : (Internet Archive)
Garnet OS SDK
Emulátory :
VMware, VMPlayer (free)
Open source processor emulator
Bochs IA-32 Emulator Project
Palm OS Emulator
Android Live CD (pro první Android OS)