Quali sono le differenze tra Android e Linux ?

25/04/2018
Posted in Tutorial
25/04/2018 fastbyte01

Quali sono le differenze tra Android e Linux ? Molto spesso mi è capito di leggere questo quesito in rete e molto spesso le risposte che ho letto hanno soltanto fatto più confusione e messo altri dubbi.

Con questo breve articolo andremo a vedere di fare un pò di chiarezza sulla vera natura di Android e Linux, e quali sono i punti comuni e quali le differenze.

Iniziamo con il dire che Linux è un kernel  monolitico, e la sua prima versione è stata rilasciata nel 1991 da Linus Torvalds.

Il kernel Linux costituisce il nucleo centrale dei sistemi operativi GNU/Linux, quelli che in gergo chiamiamo distribuzioni.

Le varie distribuzioni sono quindi create dall’insieme del kernel del pinguino e da tutti i tool del sistema operativo GNU.

Le distribuzioni GNU/Linux sono estremamente modulari ed è possibile adattarle agli utilizzi più improbabili.

Ed è proprio questo elemento che ne ha decretato il successo nel mondo enterprise e non solo.

Invece, per quando riguarda Android, le prime versioni risalgono circa al 2003 ed il progetto era stato sviluppato inizialmente per essere utilizzato sulle fotocamere compatte, solo in un secondo momento il codice fu riadattato per competere con i sistemi operativi mobile che dominavano il mercato dell’epoca, Symbian, Windows Mobile e Blackberry OS.

Ma la vera svolta per Android è arrivata nel 2005, quando Google decise di acquistare sia il codice sia l’azienda che stava dietro al suo sviluppo.

Questo ha permesso a Google di dare il via alla propria piattaforma mobile.

Android inizialmente sfruttava un fork del kernel Linux, successivamente però, le modifiche apportate da Mountain View hanno ricevuto l’approvazione da parte del team che sviluppa il kernel Linux e quindi le patch sono state integrate sul ramo di sviluppo principale del kernel del pinguino.

Quindi possiamo dire che Android utilizza una versione modificata del kernel Linux, ma non adotta però tutto l’insieme di programmi e librerie GNU.

Android per esempio utilizza la propria implementazione delle librerie C chiamate Bionic, mentre la maggioranza delle distribuzioni GNU/Linux usano la GNU C Library.

Inoltre l’Hardware Abstraction Layer (HAL), l’userspace e il Desktop Enviroment sono sviluppati e mantenuti sempre da Google.

In conclusione possiamo dire che Android e Linux hanno sicuramente molto in comune.

Infatti possiamo definire Android una distribuzione Linux (ma non GNU/Linux) ma è anche vero che il team dietro allo sviluppo di Android ha implementato diverso codice dedicato sia alla rete cellulare che all’architettura ARM in generale.

Queste patch molto spesso non sono presenti sulle normali distribuzioni perché i due progetti hanno dei target molto diversi.

Le distribuzioni tradizionali puntano principalmente sul segmento Server/Desktop mentre Android a come target il mercato mobile e quindi integra una serie di ottimizzazioni maggiori per questo tipo di dispositivi.

, ,