Androidmarket.cz

Jak vypadá Android uvnitř aneb co je ROM, kernel, bootloader a další?

Zajímá vás, jak je Android postaven? Z jakých částí se skládá? Nevíte, co znamená bootloader či kernel? V tomto článku se vám jeho vnitřní stavbu pokusím trochu osvětlit. Ani začátečníci se nemusí příliš obávat, všechny pojmy se pokusím vysvětlit tak, aby je pochopili i lidé, kteří se o architekturu operačních systémů nezajímají.

Na obrázku pod tímto odstavcem je architektura androidu pěkně znázorněna. Pojďme si tedy jednotlivé pojmy popsat a vysvětlit. Vezmeme to odspodu.

Bootloader (Zavaděč):

Na obrázku ho nenajdete. Nejedná se totiž de facto o součást operačního systému. Jedná se o samostatný program primárně sloužící ke spuštění neboli zavedení operačního systému po spuštění zařízení. Přesněji řečeno k nahrání jádra OS do operační paměti. Většina moderních zavaděčů však zvládá mnoho dalších funkcí.  Kromě předání parametrů operačnímu systému, různých testů a dalších funkcí nápomocných při havárii OS patří mezi nejdůležitější funkci mobilních zavaděčů smazání a nahrání nové ROM.

Pokud máte zavaděč odemčený, lze se do něj dostat tak, že při zapínání telefonu přidržíte nějakou kombinaci kláves. Tuto kombinaci má však každý telefon odlišnou. Mezi nejznámější alternativní zavaděče patří například ClockworkMod Recovery.

ROM:

Taktéž se ještě nejedná o součást operačního systému, ale úzce s ním souvisí. Je to zvláštní část paměti zařízení, do které lze zapisovat pouze ve zvláštním režimu. Jedná se totiž o část paměti, ve které je uložen vlastní operační systém. Slovem ROM se také označují vlastní soubory s operačním systémem.

Součástí ROM je také takzvaná Radio ROM. To je součást paměti, ve které jsou uloženy informace o operátorovi a základní ovladače hardwaru, především GSM čipu. Bývá zde také uložen SIM Lock (blokování telefonu na jednoho operátora).

Další částí ROM je Extended ROM. To jsou různé programy a vlastní úpravy systému od výrobce nebo od operátora. V androidu jsou zde uloženy například Google apps.

Posledním důležitým pojmem je CID Lock (Carrier ID). Jinak také Vendor Lock. Jedná se o mechanismus od výrobce či distributora zařízení, který má zabránit nahrání neoficiálních ROM. CID Lock lze odstranit, uživatel tím však přichází o záruku.

Kernel (jádro):

Nyní se konečně dostáváme k první části vlastního operačního systému. Na obrázku je zobrazen úplně dole. Kernel je základem operačního systému a především zajišťuje komunikaci mezi hardwarem a softwarem. Mezi jeho hlavní součást patří Drivery (ovladače), které zařizují právě onu komunikaci. Dále také zajišťuje správu procesů, správu paměti, správu napájení, zajišťuje síťové spojení atd. Android nepoužívá vlastní jádro, ale využívá Linuxové jádro, standardně ve verzi 2.6.

Knihovny (Libraries):

Nativní knihovny androidu jsou napsány v C/C++ a jedná se o základní funkce systému. Surface manager se stará o zobrazování aplikací a jejich vrstvení. Open GL a SGL jsou knihovny pro práci s grafikou. Open GL pro 3D grafiku a SGL pro 2D Grafiku. Media Framework slouží k práci s mediálními soubory. Obsahuje například kodeky pro různé formáty audia a videa. SQLite slouží pro ukládání a práci s daty. Webkit je opensource vykreslovací jádro pro webový prohlížeč, FreeType se stará o vykreslování písma a SSL se stará o šifrování a zabezpečení přenosu dat. Také zde najdeme základní C knihovny.

Android Runtime a Dalvik Virtual Machine:

Tato vrstva slouží primárně pro běh aplikací. Jelikož nejsou aplikace napsány v nativním kódu, ale v Javě, nachází se zde Dalvik Virtual Machine, což je aplikační virtuální stroj, který se stará o převod kódu ve kterém jsou napsané aplikace do nativního kódu. Důvod, proč nebyl zvolen Java VM, ale byl vyvinut vlastní virtuální stroj, je především licenční. Java VM a jeho součásti totiž nejsou opensource. Dále se zde nachází standartní Java knihovny.

Application Framework:

Vrstva obsahující další knihovny, tentokrát napsané v Javě, které tvoří vlastní systémové API, což je soubor funkcí, které umožňují programátorovi pracovat s prvky operačního systému. Jedná se zejména o přístup ke grafickým prvkům systému (tlačítka atp.), obsahu jiných aplikací (např. kontakty), API pro práci s notifikacemi, atd. Nad touto vrstvou už běží samotné aplikace.