Hlavní navigace

Kód platformy Android byl odstraněn z jádra. Co to znamená?

Adam Štrauch

Že Android není Linux, to už jsme četli mnohokrát. Pravdou je, že v jeho srdci Linux sedí, Je upravený, je trochu jiný, ale je tam. Jak moc to jde dohromady s Linuxem, jakého známe, těžko rozhodneme, ale jedno víme, to, co se děje v jádře Androida, resp. androidího Linuxu, vystupuje mimo zaběhnuté koleje vývoje Linuxu a nedělá to dobrotu.

Je tu Android, je open, pojďme vyvíjet

Přesně 5. listopadu 2007 se Google nechal slyšet, že plánuje během krátké doby uvolnit nový operační systém postavený na Linuxu s názvem Android. Měl být upravený pro běh na mobilních zařízeních. Byla to vcelku velká událost. Prakticky první linuxový operační systém, který měl potenciál dostat se dál než jeho předchůdci a navíc tu bylo jedno obrovské plus, vývoj aplikací měl probíhat v Javě, celý operační systém měl být open source a to ještě pod velmi volnou licencí Apache free-software and open-source license.

Znělo to jako vynikající nápad a Google asi o měsíc později uvolnil SDK pro celou platformu. To obsahovalo všechno, co bylo potřeba pro vývoj, od emulátoru po moduly do Eclipse. Když bylo vše pro vývoj uvolněno, začali se pomalu hrnout vývojáři aplikací. Aby tuto fázi Google urychlil, vyhlásil v této době soutěž, ve které se hrálo celkově o 10 000 000 USD. Ty byly rozděleny mezi vývojáře vítězných aplikací. Došlo tedy k tomu, že na Android existovalo již několik stovek aplikací, aniž by uživatelé nebo vývojáři dostali telefon do ruky. To se ale brzy změnilo. Přesně 23. září byl uvolněn Android 1.0 včetně SDK a na konci roku už mohli první uživatelé získat telefon s novým Androidem.

Od té doby se Android posunul až na verzi 2.1. Ve většině dnešních telefonů ale najdeme verze 1.5 a 1.6.

Jak se Android začal rozšiřovat, tak ho začalo zkoumat i víc lidí a začaly se objevovat články na téma „Android není Linux“.

Linux sice ano, ale …

Co to tedy Android je? Googlu se podařilo vytvořit linuxový operační systém přesně na míru mobilním zařízením, a to primárně telefonům, resp. čemukoli do kapsy. Dnes už se dá snad sehnat s Androidem i mikrovlnka, takže to už rozhodně není operační systém pouze telefony. Každopádně Google vzal linuxové jádro, trochu ho učesal a upravil a doplnil ho o základní nástroje, javovský virtual machine Dalvik a nakonec i o vlastní API a na něj navazující uživatelské prostředí.

Právě Java a jednotné API je „killer feature“ operačního systému Android. Když se podíváte na dnešní linuxový desktop, je tu konkurenční boj hlavně mezi GTK a Qt a na nich postavenými desktopovými prostředími. Není na tom nic špatného, ale rozhodně se to nehodí pro mobilní platformu, kam je potřeba co nejrychleji nahnat co nejvíce firem a vývojářů. Google měl toto v rukou a rozhodl se tak, aby se Android rozšířil a to všechno na úkor svobody ve výběru API. To je zpětně kompatibilní se staršími verzemi a dává vývojářům nástroj, kterým mohou přistupovat k hardwaru telefonu i k jeho funkcím a funkcím celého Androida. Když vývojář něco napíše pro Androida, pojede to na všech telefonech, na kterých je minimálně ta verze systému, na kterou to vývojář napsal. V reálném světě to není vždycky ideální, protože jsou malé rozdíly mezi jednotlivými výrobci. U čistého Androida se to ale dá říct.

Možná se ptáte, proč Google nepoužil třeba Qt nebo GTK. Na to je jednoduchá odpověď. Obojí se stará prakticky jen o vykreslování oken, grafiky a maximálně ještě o přístup k databázi. Androidí API ale pokrývá přístup k síti, Bluetooth, senzoru přiblížení, senzoru polohy či světla, GPS nebo přes něj můžete vytvořit aplikaci, jejíž vzhled bude závislý na nastavení zbytku telefonu a v neposlední řadě můžete přistupovat i k samotným funkcím systému Android. Tohle nemohlo nabídnout žádné existující API a když se podíváme, že Android má ještě velmi dobrou bezpečnostní politiku, tak zjistíme, že se vytvoření nového API vyplatilo.

Jenže…

 K čemu hlavní větev? Máme svoji!

… zde narážíme na problém, o kterém se rozepsal jeden z jaderných vývojářů, Greg Kroah-Hartman. Jak jste se mohli dočíst v naší včerejší zprávičce, Greg má obavy o budoucnost Androida, co se týče zařazení do hlavní větve jádra.

Android, bohužel, pracuje se specifickými úpravami a háčky linuxového jádra, které jsou neslučitelné s aktuálním linuxovým jádrem. Podle jeho slov není Android jen pár ovladačů a jinak standardní jádro jaké si stáhneme z kernel.org, ale obsahuje dost zásadní změny jako speciální lock type a háčky nutné pro speciální bezpečnostní model. Tyto změny se neslučují se stavem v jakém Android je a nejhorší je, že ovladače napsané pro jádro Androida nemohou být zahrnuty v hlavní větvi linuxového jádra, protože jsou závislé na těchto zásadních odlišenostech.

Před výrobci stojí volba a to vést vývoj ovladačů pro obě větve nebo se soustředí jen na Androida. Otázkou samozřejmě je, co jim přinese posílání patchů jinam než do Androida. Odpověď je jednoduchá, krom dobrého pocitu a podpory jejich hardwaru v normálním linuxovém systému prakticky nic.

Rozuzlení

Co z toho všeho tedy plyne? Google si syslí vývoj u sebe. Kód je k dispozici, takže se o spojení někdy někdo třeba pokusí, ale bez podpory od samotného Googlu k tomu pravděpodobně nedojde. Google bude svoji práci zakládat na aktuálním vývoji hlavní větve jádra a bude udržovat jen patche specifické pro Androida. Uživatelé proto nepřijdou o Linux jako takový, zvlášť když si uvědomíme, jak nákladný by mohl být kompletní fork. Google ví, že vývojáři v Linuxu udělají spoustu práce a byla by škoda té práce nevyužít.

Situace proto není tak špatná, jak by se mohla zdát a krom svrbění u žaludku nás to jako uživatele nějak trápit nebude. Je klidně možné, že se časem obě větve změní společně s tím, jak půjde vývoj Androida a Linuxu dál, resp. někdo najde způsob, jak to udělat čistě, aby mohly být změny zahrnuty do jádra jen jako nenápadná volba „Android“.

Dosavadní kód Androida, který se nacházel v hlavní větvi jádra, resp. ve větvi staging, byl odstraněn. Bylo to z důvodu, že už ho nikdo nevyvíjel a nemělo smysl ho tam nechávat. Zdaleka nešlo o všechny změny, takže jeho použitelnost byla prakticky nulová.

Našli jste v článku chybu?

5. 2. 2010 13:19

Lol Phirae (neregistrovaný)

To je naprosto normalni preklad terminu „kernel hook“… se slovem „hack“ to nema nic spolecneho.

5. 2. 2010 12:54

Fantomas (neregistrovaný)

Kdyz to neodporuje licenci, tak je to jedno. Na cele zemekouli nejsou urcite sami, pouze jdou ted nejvice videt.

Lupa.cz: Kdo pochopí vtip, může jít do ČT vyvíjet weby

Kdo pochopí vtip, může jít do ČT vyvíjet weby

DigiZone.cz: Je tu první sportovní přenos přes mobily

Je tu první sportovní přenos přes mobily

Vitalia.cz: Taky věříte na pravidlo 5 sekund?

Taky věříte na pravidlo 5 sekund?

Vitalia.cz: Jmenuje se Janina a žije bez cukru

Jmenuje se Janina a žije bez cukru

Podnikatel.cz: V restauraci bez cigaret? Sněmovna kývla

V restauraci bez cigaret? Sněmovna kývla

Měšec.cz: Jak vymáhat výživné zadarmo?

Jak vymáhat výživné zadarmo?

DigiZone.cz: Rádio Šlágr má licenci pro digi vysílání

Rádio Šlágr má licenci pro digi vysílání

Měšec.cz: mBank cenzuruje, zrušila mFórum

mBank cenzuruje, zrušila mFórum

Lupa.cz: Co se dá měřit přes Internet věcí

Co se dá měřit přes Internet věcí

Podnikatel.cz: Snížení DPH na 15 % se netýká všech

Snížení DPH na 15 % se netýká všech

Vitalia.cz: Mondelez stahuje rizikovou čokoládu Milka

Mondelez stahuje rizikovou čokoládu Milka

DigiZone.cz: Recenze Westworld: zavraždit a...

Recenze Westworld: zavraždit a...

Vitalia.cz: Nejlepší obranou při nachlazení je útok

Nejlepší obranou při nachlazení je útok

Měšec.cz: Kdy vám stát dá na stěhování 50 000 Kč?

Kdy vám stát dá na stěhování 50 000 Kč?

Root.cz: Certifikáty zadarmo jsou horší než za peníze?

Certifikáty zadarmo jsou horší než za peníze?

Měšec.cz: Jak levně odeslat balík přímo z domu?

Jak levně odeslat balík přímo z domu?

Lupa.cz: Teletext je „internetem hipsterů“

Teletext je „internetem hipsterů“

Vitalia.cz: Když přijdete o oko, přijdete na rok o řidičák

Když přijdete o oko, přijdete na rok o řidičák

120na80.cz: Co všechno ovlivňuje ženskou plodnost?

Co všechno ovlivňuje ženskou plodnost?

120na80.cz: Pánové, pečujte o svoje přirození a prostatu

Pánové, pečujte o svoje přirození a prostatu