Operační systémy pro mobilní zařízení (OSMZ)

Týden VII. (22.3.-26.3.2021)

Tento týden nás čekají témata z přednášky architektura OS Androidu. V úvodu se podíváme, jakým způsobem se sestavuje konkrétní verze Androidu. Byť se jedná o open source, tak Android Open Source Project má vlastní politiku (Googlu), která definuje jakým způsobem se zveřejňují zdrojové kódy. Odpovědi na nejčastější otázky týkající se distribuce Google aplikací, modifikací systému a licenční politiky jsou shrnuty na FAQ stránce. Návod a ukázku sestavení Androidu se všemi závislostmi.

Řada funkcí operačního systému by nebyla možná bez pomoci HW. Jedná se především o ochranu a správu paměti. Moderní procesory podporují běh v různých režimech ochrany kódu, u Intelu jsou to x86 režimy, v případě ARMu pak tyto. Mnohé z těchto režimů jsou udržovány jen z důvodů zpětné kompatibility a jsou zdrojem potenciálních zranitelností, jako například SMM režim Intelu.

Android stejně jako jiné UNIXové systémy používá pro řízení přístupu model uživatelů a skupin. S tímto modelem jste se seznámili již při studiu souborových systémů EXTx. Vzhledem k použití odlišných knihoven tady ale nalezneme některé odchylky od toho, co známe z Linuxu (např. knihovna Bionic, popis z Google Source) Rozdíly jsou i v politikách plánovačů (popis starších verzí). Důvodem je snaha maximálně šetřit omezené zdroje baterie.

U stolních počítačů je možné nedostatek paměti kompenzovat odkládáním stránek na disk. U mobilních zařízení by to bylo silně neefektivní a navíc by snižovalo životnost flash paměti. Android pro toto využívá speciálního oddílu RAM, který je komprimován a slouží jako úložiště pro swap.

PREZENTACE

LITERATURA

Andrew S. Tanenbaum - Moderní operační systémy. 4. vydání:

  • Kapitola 10.8 - Android (str. 802-844)

BONUS MATERIÁLY

Přednáška z Google I/O konference na téma správa paměti v Androidu
Android Internals: A Confectioner's Cookbook

OTÁZKY

Po přečtení výše uvedených textů byste měli být schopni odpovědět na další otázky z okruhů ke zkoušce, konkrétně:

  • Stručně popište platformu Android, základní strukturu a virtuální stroj.
  • Popište mechanismy zabezpečení aplikací a jejich návaznost na služby OS.
  • Popište jakým způsobem jsou zabezpečena uživatelská data napříč aplikacemi.