Hemsida » hur » Android är baserat på Linux, men vad betyder det?

    Android är baserat på Linux, men vad betyder det?

    Android kan vara baserat på Linux, men det är inte baserat på vilken typ av Linux-system du kanske har använt på datorn. Du kan inte köra Android-appar på typiska Linux-distributioner och du kan inte köra Linux-programmen du är bekant med på Android.

    Linux utgör kärndelen av Android, men Google har inte lagt till alla typiska program och bibliotek som du skulle hitta på en Linux-distribution som Ubuntu. Detta gör hela skillnaden.

    "Linux" vs Linux-kärnan

    Den stora skillnaden här kommer ner till vad vi menar med Linux. Människor använder termen "Linux" för att betyda många olika saker. Linux betyder i grunden Linuxkärnan. En kärna är kärnan i vilket operativsystem som helst.

    Vi hänvisar också till Linux-distributioner som bara "Linux". Linux-distributioner är dock inte bara Linuxkärnan. De innehåller många andra mjukvaror, till exempel GNU-skalverktygen, Xorgs grafiska server, GNOME-skrivbord, Firefox-webbläsare och så vidare. Därför tycker vissa att termen GNU / Linux ska användas för "Linux-distributioner" som Ubuntu, Mint, Debian, Fedora, Arch, openSUSE och andra.

    Android använder Linux-kärnan under huven. Eftersom Linux är öppen källkod kan Googles Android-utvecklare ändra Linux-kärnan för att passa deras behov. Linux ger Android-utvecklarna en förbyggd, redan underhållen operativsystemkärna till att börja med, så att de inte behöver skriva sin egen kärna. Det här är sättet att många olika enheter är byggda - till exempel använder PlayStation 4 FreeBSD-kärnan i öppen källkod, medan Xbox One använder Windows NT-kärnan som finns i moderna versioner av Windows.

    Du kommer även se Linux-kärnversionen som körs på din enhet under Om telefon eller Om tablet i Android Inställningar.

    Skillnaderna

    Det finns en del debatt om huruvida Android kvalificerar sig som en "Linux-distribution". Den använder Linux-kärnan och annan programvara, men den innehåller inte mycket av programvaran Linux-distributioner inkluderar normalt.

    När du startar en Android-enhet laddas Linux-kärnan på samma sätt som på en Linux-distribution. Men mycket av den andra mjukvaran är annorlunda. Android innehåller inte GNU C-biblioteket (glibc) som används på standard Linux-distributioner, det innehåller inte heller alla GNU-bibliotek som du hittar på en vanlig Linux-distribution. Det innehåller inte heller en X-server som Xorg, så du kan inte köra standard grafiska Linux-applikationer.

    I stället för att köra typiska Linux-applikationer använder Android Dalviks virtuella maskin för att i huvudsak driva applikationer skrivna i Java. Dessa applikationer riktar sig till Android-enheter och applikationsprogrammeringsgränssnittet (API) Android ger snarare än att vara riktade mot Linux i allmänhet.

    Varför kan du inte köra Desktop Linux-programvaran på Android

    Eftersom Android inte innehåller en grafisk X-server eller alla vanliga GNU-bibliotek kan du inte bara köra Linux-applikationer på Android. Du måste köra program som är skrivna specifikt för Android.

    Android har ett skal som det du hittar på Linux. Det finns inget sätt att komma åt det utan att göra det, men du kan installera en app som Android Terminal Emulator för att få tillgång till denna terminalmiljö.

    Som standard finns det inte mycket du kan göra här. Terminalen kommer fortfarande att köras i en begränsad miljö, så du kan inte få ett fullständigt rotskal utan att rotera din Android-enhet. Många standardkommandon som du kanske behöver är inte tillgängliga - det är därför som folk som rotar sin enhet, installerar BusyBox-applikationen, som installerar många kommandoradsverktyg. Dessa verktyg används av applikationer för att göra saker med sin root-åtkomst.

    Varför kan du inte köra Android-programvara på Desktop Linux

    Linux innehåller inte den virtuella Dalvik-maskinen, så den kan inte köras i Android-appar. Dalviks virtuella maskin och alla Android-programvaror kan inte helt enkelt släppas på en stationär Linux-maskin - du måste göra mer arbete för att göra Android-appar till ett fönster på ett vanligt skrivbord via Xorg. Teoretiskt sett kan utvecklarna med tillräckligt arbete göra Dalvik köra på stationär Linux, så att stationära Linux-användare kan köra Android-appar på sina stationära datorer. Den nu vilande Ubuntu for Android-produkten försökte göra något så här, integrera Ubuntu och Android på en telefon och låta dessa Android-appar köras på Ubuntus skrivbord.

    BlueStacks och andra Android app emulatorer försöker göra det för Windows och Mac. De kör Android på virtuell maskinvara i en virtuell maskin, så att de kan köra Android-appar - med ett prestationsstraff - på skrivbordet. Dessa lösningar har dock inte visat sig vara mycket populära.


    Googles Chrome OS är också baserat på Linux. Liksom Android tillhandahåller inte Chrome OS ett standard X-fönster, så standard Linux-applikationer kan inte köras på Chrome OS. Till skillnad från Android är Chrome OS närmare standard Linux-distribueringar, så att du kan använda utvecklarläget för att installera den saknade Linux-skrivbordsprogramvaran.

    Bildkredit: Ranti på Flickr, Anatomi och Physiology of Android