Qual è la differenza tra Android e Linux?

Questa risposta sarà molto lunga.

Presumo che tu abbia familiarità con alcuni termini di base utilizzati in informatica. Quindi eccoci qui.

Android può essere basato su Linux, ma non è basato sul tipo di sistema Linux che potresti aver usato sul tuo PC. Non puoi eseguire applicazioni Android sulle tipiche distribuzioni Linux e non puoi eseguire i programmi Linux che ti sono familiari su Android.

Linux costituisce la parte centrale di Android, ma Google non ha aggiunto tutto il software e le librerie tipiche che si trovano su una distribuzione Linux come Ubuntu. Questo fa la differenza.

La grande differenza qui si riduce a ciò che intendiamo per Linux. La gente usa il termine "Linux" per significare molte cose diverse. Alla sua base, Linux significa il kernel di Linux. Un kernel è la parte centrale di qualsiasi sistema operativo.

Noi ci riferiamo anche alle distribuzioni Linux semplicemente come "Linux". Tuttavia, le distribuzioni Linux non sono solo kernel Linux. Contengono molti altri pezzi di software, come le utility della shell GNU, il server grafico Xorg, il desktop GNOME, il browser web Firefox, e così via. Ecco perché alcune persone pensano che il termine GNU/Linux dovrebbe essere usato per "distribuzioni Linux" come Ubuntu, Mint, Debian, Fedora, Arch, openSUSE, e altri.

Android usa il kernel Linux sotto il cofano. Poiché Linux è open source, gli sviluppatori Android di Google potrebbero modificare il kernel Linux per adattarlo alle loro esigenze. Linux dà agli sviluppatori di Android un kernel del sistema operativo precostituito e già mantenuto da cui partire, così non devono scrivere il proprio kernel. Questo è il modo in cui sono costruiti molti dispositivi diversi - per esempio, la PlayStation 4 usa il kernel BSD libero open source, mentre la Xbox One usa il kernel Windows NT che si trova nelle versioni moderne di Windows.

Vedrai anche la versione del kernel Linux in esecuzione sul tuo dispositivo sotto About phone o About tablet nelle impostazioni di Android.

main-qimg-3b129fdc000e83690d2c3a4e52c1bda0.webp

Questa è la sezione about del mio telefono. Lo Xiaomi Redmi Note 3.

Si discute se Android si qualifichi come una "distribuzione Linux". Usa il kernel Linux e altri software, ma non include molto del software che le distribuzioni Linux normalmente includono.

Quando si avvia un dispositivo Android, il kernel Linux si carica proprio come farebbe su una distribuzione Linux. Tuttavia, molto dell'altro software è diverso. Android non include la GNU C Library (glibc) usata nelle distribuzioni Linux standard, né tutte le librerie GNU che si trovano in una tipica distribuzione Linux. Inoltre non include un server X come Xorg, quindi non è possibile eseguire applicazioni grafiche standard di Linux.

Piuttosto che eseguire applicazioni tipiche di Linux, Android usa la macchina virtuale Dalvik per eseguire essenzialmente applicazioni scritte in Java. Queste applicazioni sono mirate ai dispositivi Android e alle interfacce di programmazione delle applicazioni (API) che Android fornisce, piuttosto che essere mirate a Linux in generale.

Android non include un server X grafico o tutte le librerie GNU standard, non si possono semplicemente eseguire applicazioni Linux su Android. Dovete eseguire applicazioni scritte appositamente per Android.

Android non ha una shell come quella che troverete su Linux. Non c'è modo di accedervi out-of-the-box, ma è possibile installare un'applicazione come Android Terminal Emulator per avere accesso a questo ambiente terminale.

Di default, non c'è molto da fare qui. Il terminale verrà comunque eseguito in un ambiente ristretto, quindi non è possibile ottenere una shell di root completa senza fare il rooting del dispositivo Android. Molti comandi standard di cui potresti aver bisogno non sono disponibili - questo è il motivo per cui le persone che fanno il root del loro dispositivo generalmente installano l'applicazione BusyBox, che installa molte utilità a riga di comando. Queste utilità sono usate dalle applicazioni per fare cose con il loro accesso come root.

Linux non include la macchina virtuale Dalvik, quindi non può eseguire applicazioni Android. La macchina virtuale Dalvik e tutti gli altri software di Android non possono essere semplicemente lasciati su una macchina desktop Linux - si dovrebbe fare più lavoro per far uscire le applicazioni Android in una finestra su un desktop standard attraverso Xorg, per esempio. Teoricamente, con abbastanza lavoro, gli sviluppatori potrebbero far funzionare Dalvik su Linux desktop in modo che gli utenti Linux desktop possano eseguire le applicazioni Android sui loro desktop. L'ormai inattivo prodotto Ubuntu for Android ha tentato di fare qualcosa del genere, integrando Ubuntu e Android su un telefono e permettendo a quelle applicazioni Android di girare sul desktop di Ubuntu.

BlueStacks e altri emulatori di applicazioni Android tentano di fare questo per Windows e Mac. Eseguono Android su hardware virtuale in una macchina virtuale, permettendo loro di eseguire le app Android - con una penalità di prestazioni - sul vostro desktop. Queste soluzioni non si sono dimostrate molto popolari, però.

Anche Chrome OS di Google è basato su Linux. Come Android, Chrome OS non fornisce un sistema di finestre standard X, quindi le applicazioni Linux standard non possono essere eseguite su Chrome OS. A differenza di Android, Chrome OS è più vicino alle distribuzioni Linux standard per il desktop, quindi è possibile utilizzare la modalità sviluppatore per installare il software desktop Linux mancante.

Riferimenti: howtogeek