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

15

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.

 

  • Majk

    Díky..přesně takovej článek jsem potřeboval(hledal) :))

  • tupaorc

    Jen tak dal:-) klidně vic podrobně 🙂

  • cenculko

    Preco miesate recovery s bootloaderom ? To su 2 rozlicne veci

  • Přesně píšete o bootloaderu, ale v odstavci je řeč o recovery. http://alpharev.nl/

  • qwe

    Hodně hodně nesmyslů. Část firmwaru, která bootuje kernel, je něco jiného než bootloader, což je zase něco jiného než recovery. Slovem ROM se v případě Androidu označuje jednoduše Android, nic jiného. Není to žádná „magická“ paměť se speciálním přístupem, je to úplně normální paměť, např. typu NAND, která je rozdělena na několik částí a samozřejmě úplně normálně se do ní dá zapisovat (ro mount není žádná magie a s typem paměti nemá nic společného). Stejně tak neexistuje žádná radio ROM, ale firmware. Firmware, chlapče. Možná ještě jednou pro ty tupější: firmware, který se opět dělí na několik částí a jedna z nich je firmware radia. Kernel v Androidu z linuxového kernelu pouze vychází, těch úprav je tam podstatně více, než aby se daly ignorovat. Což by ale věděl programátor, ne „student, který před nedávnem přešel na Android“ (nabízí se ovšem otázka, proč píše o něčem, o čem nemá ani tušení). Mimochodem, nepíše se „standartní“, ale „standardní“, ty studente (kdeže to studuješ? vy tam nemáte češtinu?). Jednodušší uživatelské věci ti jdou lépe, raději se jich drž a nechoď na píseček, kde si hrajou větší kluci, počkej až vyrosteš 🙂

    • Stump

      Read Only Memory, zkráceně ROM se používá už velmi dlouho a pokud si pamatujete ještě CD-ROM tak to byly krásné lisované originály, které nešly přepsat, stejně tak BIOS byl kdysi na základních deskách uložen v pamětech typu ROM a následně je nahradily paměti typu FLASH, za účelem pozdějších update firmwaru. To, že si tento název výrobci převezmou jinak na tom nic nemění. Proto se například BIOS na PS1-2 přeflashovával aby byl schopen číst i vypalovaná CD.

  • pazzy

    Qwe … Dobry. Ale proc autora clanku tak shazujes?
    Myslim, ze pro laika dobrej clanek a ze se najde nekdo, kdo bude chtit byt chytrej se dalo cekat 😉
    Jinak roM je podle me zkratka, ktera dodnes oznacuje Memory, tedy pamet. Nikoliv android. Akorat dnes uz neni tak read only.

  • hodne prudy tady v diskuzi :-). pro lajky imho vybornej clanek, jen tak dal! a negativni komentare jsou normalni, toho si nevsimej – kdyby ses dotycneho zeptal, jestli by to nechtel napsat sam a lepe, svesi ocas a zmizi v davu 😉

  • Lukeroll

    Ano, na Android jsem přešel nedávno, na druhou stranu o operační systémy a jejich architekturu se zajímám už nějaký ten pátek, takže o tom něco vím.
    Ano, v článku trochu motám pojmy s dojmy a úmyslně zjednodušuji, že bych tam měl vyloženě faktické chyb ale odmítám.
    Vím, že slučuji pojmy bootloader a recovery, nicméně ta věc, která nahrává kernel do operační paměti je opravdu bootloader.
    ROM je především paměť (a jak již z názvu vyplývá, v běžném případě určená pouze pro čtení), že se to přejalo pro Android je věc druhá (a to tam mám napsáno taky). Že radio ROM je firmware vím, ale radio ROM se tomu říká.
    Android má v základu upravené linuxové jádro. O jaké úpravy se jedná upřímně řečeno nevím, ale jestli je jich tolik, že už se tomu nedá říkat linux, je věc názoru. Můj názor je, že se o linux stále jedná.
    Jinak studuji osmileté gymnázium, takže češtinu opravdu máme a neřekl bych, že jsem na tom v tomhle ohledu nějak tragicky. Občas to prostě ujede každýmu.
    Na konec ještě opakuji, že úmyslně zjednodušuji, aby to pochopil i laik, proto tam některé věci nejsou přesně popsány.

    • Jimmy

      Tak a teď teda ten nezjednodušenej, ten by zajimal mě…. 🙂

    • MIXJAM

      SOUHLASIM STEBOU.POTREBUJU POMOC POMUZES??? PROSIM TE POTREBUJU TEN LOADER ALE NA TABLET. A TREBA TEN POSTUP.MOZNA ZE BUDE STEJNEJ JAK TU.CHCI SMAZAT PUVODNI OS NA ROMCE A NAHRAT NOVEJSI OS.MAM NAINSTALOVANEJ V TABLETU ROM Manager Premium v4.8.0.2 tak BYCH RAD CHTEL POSTUP Z TOHOTO PROGRAMU.JE JEDNODUCHEJ ALE NEFUNGUJE JAK BY MEL?MOZNA PROTO ZE NENI REGISTROVANEJ? 🙂 KDYZ DAM DOWNLOAD ROM?,,STAHUJE….ALE KDYZ PAK DAM INSTALL ROM from SD CARD NEPRECTE TO ,,NENI VIDET?? JE TO TAK???MUSI SE ASI REGISTROVAT ZE?PROSIM KDYZ TAK ODEPIS NA EMAIL…DIKY MOC

  • dexter

    Pěkná snůška nesmyslů. Autor by měl více studovat a případně i podobně odborný článek konzultovat s odborníky. Pokud si ho přečte někdo s nulovými znalostmi, jenom se naučí nesmysly, které bude následně aplikovat, což je naprostý nesmysl.
    bootloader – zavaděč systému. často i kontroluje podpisy a brání proti nahrání alternativního systému. K nahrání alternativního systému slouží odemčení (unlock)
    recovery – „bezpečnostní“ menu telefonu sloužící k práci s telefonem na systémové úrovni. Umožňuje instalaci nového systému, zálohu a obnovu stávajícího, čistění vnitřních částí paměti a mnoho dalšího.
    ROM – původně „read only memory“; sloužila k bezpečnému(=enpřepsatelnému) uložení operačního systému. Dnes termín „ROM“ označuje balík operačního systému včetně kernelu (někdy včetně radia i bootloaderu).
    Radio – drivery hardwaru.
    kernel – jádro OS. Obsahuje drivery a zajišťuje komunikaci mezi OS a hardwarem. Pro android 2.x je ve verzi 2.6.x, pro android 4.x je v nové verzi 3.x.

    Tyhle hardwarový věci už dneska moc lidí nezná a většina informací pohybujících se na internetu je silně zkreslená. A pokud chceme někoho něco učit, je dobré to dělat bez chyb.

    • Martin

      Tento článok je správny, len si ho doplnil o odborné informácie ktorými autor nechcel laikov zbytočne zavádzať a zaťažovať. Autor splnil to, čo na začiatku článku sľúbil.

  • pepino

    dobry poradil by mi nekdo? mam MOTOROLU DEFY je tam nahran novejší android 4.1.2 J.B …a sam sem mi vypina restartovava…nevite nekdo co stim? děkuji moc cenim si radu..

  • Dolejs.Petr

    Děkuji za článek, něco takového jsme hledal