Sok felhasználó tisztában van azzal, hogy az Android maga “Linux” alapú rendszer lenne. De mi is van igazából a háttérben, és miért is nem ugyanarról a Linuxról beszélünk, mint amit asztali PC-re telepítünk?. A következő kis bejegyzésből ezt is megtudhatjuk.

Az eredeti bejegyzés címe: Android is Based on Linux, But What Does That Mean? ( Az Android Linuxra épül, de mit is jelent ez valójában?.)

Az Android Linuxra épül, de! nem arra a típikus Linuxra amit a jól megszokott módon használunk asztali PC-ken. Az Android applikációk nem futtathatóak  Linux disztribúciókon, és fordítva.

Az Androidot kiegészítették Linuxos dolgokkal, de a Google a tipikus alkalmazásokat és “könyvtárakat” már nem adta hozzá a rendszeréhez, amit ugyebár a legtöbb Linux disztribúcióban megtalálhatunk mint például az Ubuntuban. Ez így teljesen eltér a valóságtól.


“Linux” vs Linux Kernel

Az első nagy különbség amiről beszélnünk kell az, hogy mit is értünk Linux alatt. Az emberek olykor több értelemben használják a Linuxot. De szögezzük le, a Linux az magát a Linux Kernelt jelenti. A kernel pedig az operációs rendszer  fő mozgató része .

Szintén gyakori “hiba”, hogy egyszerűen csak azt mondjuk egy Linux disztribúcióra, hogy Linux. Ha egy Linux disztribúcióról beszélünk akkor már nem csak a Linux kernelt értjük. Ezek a rendszerek számos egyéb szoftvereket is tartalmaznak mint például:

  • GNU shell ( héj ),
  • Xorg,
  • GNOME desktop ( jelen cikkben ),
  • Firefox,
  • és egyéb kiegészítők,

Ezért van az, hogy a GNU/Linux kifejezést számos ember Linux disztribúcióként használja amit hívhatnak akár Ubuntu, Mint, Debian, Fedora, Arch, OpenSUSE, vagy egyéb rendszereknek.

Igazából az Android valóban Linux kernelt használ. MERT! a Linux kernel nyílt forráskódú, és ezért a Google, Android-részlegének kedves fejlesztői saját szájuk íze szerint formálhatták. A Linux, egy előre-épített “eszközt” adott ezeknek a fejlesztőknek ahhoz, hogy ne kelljen bajlódni illetve ne kelljen “kreálni” egy új működő “magot”.Ennek példájaként valósult meg az is, hogy például a PlayStation 4 a nyílt forráskódú FreeBSD kernelt, míg az Xbox One pedig a Windows NT kernelét használja.

– A telefonodban ellenőrizheted, hogy milyen Linux kernel-el fut a már meglévő Androidos készüléked.-

linux-kernel-version-on-android-about-screen

A különbségek

Mint már említettem, számos vita folyik arról, hogy az Android szót, sokan Linux disztribúcióként használják. Habár az Android Linux kernelt használ, az alapvető fontosabb szoftvereket ami egy Linux disztribúcióhoz kell, azt nem tartalmazza.
Amikor is, az Android eszközöd betölt (boot), a Linux kernel is ugyanúgy betölt mint egyes Linux disztribúciókban. Habár, számos szoftverben különbözik. Az Android például nem tartalmazza a GNU C “könyvtárakat” (glibc) amit ugyebár a Linux disztribúciók igen, valamint nem tartalmazza az X szervert ami a Xorg, ami ugyebár a grafikus felület elindításához szükséges.

Ehelyett, az Android egy úgynevezett “Dalvik” virtuális gépet használ az alkalmazásokhoz amik Java programozási nyelvben íródtak. Ezek az alkalmazások főként Android eszközökön használhatóak, valamint ide tartozik még az API a programozási felület is.

android-architecture


Miért nem futtathatóak a Linux szoftverek Androidon?

Egyszerű a válasz: Mert az Android nem tartalmazza az X szervert és/vagy GNU “könyvtárakat” ( libraries ). Csak az Androidra írt, speciális alkalmazások használhatóak Androidos eszközökön.

Az Androidnak is van egy “héj” ( shell ) szerkezete amit a Linuxban is megtalálhatsz. Habár hozzáférni nem lehet, de mondjuk egy Android Terminál Emulátor segítségével hozzáférhetsz terminál környezetben.

Mondjuk alapból semmit nem tudsz kezdeni vele. A terminál lefuttat egy korlátozott környezetet, de teljes root-jogot egyáltalán nem fogsz kapni a módosításokhoz. Az alapvető parancsok része is hiányzik vagy nem elérhetőek. Ezért van az például, hogy sok felhasználó akik “rootolják” a készülékeiket, feltelepítenek egy bizonyos “BusyBox” alkalmazást aminek segítségével már számos parancs használható lesz a terminál környezetben.

android-terminal-emulator-uname


Miért nem futtathatóak az Android szoftverek asztali felhasználású Linux alatt?

Erre is nagyon egyszerű a válasz: A Linux nem tartalmazza a “Dalvik” virtuális gépet, így hát az Android alkalmazások sem futtathatóak. A “Dalvik” virtuális gép és az összes Android szoftver nem adható csak úgy hozzá Linux disztribúciónkhoz. Viszont, ha eleget “mókolsz” talán eléred célod és futtathatsz Linux rendszereden Android alkalmazásokat, természetesen ezek mind egy ablakban fognak megjelenni. Egyes fejlesztők azon vannak, hogy lehessen használni a “Dalvik” virtuális gépet Linux rendszereken és így akkor már futtathatóak az Android alkalmazások. Ilyen “fejlesztők” közé sorolhatóak azok az Ubuntu-csapatában lévő emberkék is, akik elérhetővé tették, hogy az Ubuntu telefonokon az Android alkalmazások futtathatóak legyen. Persze ehhez integrálni kellett olyan eszközöket amiknek segítségével a folyamat létrejöhetett.

A BlueStack és egyéb Android app-emulátorok hasonlóan működnek Windows és MAC rendszereken is. Az Androidot egy virtuális gépen futtatják, így elérhetővé válnak az Androidos applikációk futtatásai “desktop” környezetben. Habár ez az eljárás még nem igazán elterjedt.

apk-on-desktop-linux
A Google Chrome OS is Linuxra épül. Habár hasonlóan az Androidhoz, a Chrome OS sem tartalmaz szabványos X ablak rendszert, így hát az alapvető Linux alkalmazások itt sem futtathatóak. Ellentétben az Androiddal, A Chorme OS egy kicsit közelebb áll az alapvető Linux disztribúciókhoz ezért is lehet például úgynevezett “developer” azaz “fejlesztői” módot használni, aminek köszönhetően már a Chrome OS-en is futtathatóak a hiányzó Linux szoftverek.

Eredeti bejegyzés elérhető a következő linkre kattintva: HowToGeek Android

Megosztás