venerdì 27 settembre 2013

Android x86 - Il robottino sul tuo pc

Ormai si sa, chiunque, con un centinaio d'euro o anche meno, può garantirsi le prestazioni di Android sul proprio device, usufruire dei servizi offerti da Google, ma anche di migliaia di developers in giro per il mondo, per entrare, così, nella rivoluzione di massa più grande degli ultimi tempi.
Uno dei motivi di tale successo di questo sistema operativo è stata, senza dubbio, la sua natura open source, che ha consentito a tanti power user, di compilare dai sorgenti le proprie versioni delle rom, aggiungendo (o rimuovendo) features per personalizzarlo al meglio. Altro motivo di successo è il kernel, ossia il cuore del sistema operativo, quell'insieme di codice che "fa da ponte" tra il software e l'hardware, facendoli comunicare tra loro. Come un po' tutti avranno imparato ormai, il kernel di Android è Linux, o meglio, una branca del kernel Linux ripensato e ricompilato per adattarsi a sistemi con architettura ARM. 
Piccola digressione sulle architetture esplicata in maniera semplice: gli smartphone sono dei veri e propri pc, con tanto di CPU con le loro frequenze di clock, memoria RAM con la relativa velocità di bus, GPU, scheda madre, modulo Wi-Fi etc, insomma, un computer in miniatura. Ma si distinguono da questi ultimi dal tipo di architettura, ossia un insieme di criteri, nel quale sono pensate le CPU e di conseguenza tutta la macchina.


 Mentre i pc sono pensati e costruiti con processori con architettura x86_64, gli smartphone posseggono, al loro interno, delle CPU così dette ARM, dall'azienda che li produce (la ARM holdings per l'appunto). Ora, il kernel Linux, come abbiamo detto sopra, sappiamo che si occupa della comunicazione tra le componenti hardware e l'apparato software. Ma sappiamo anche che Linux è stato (ed è tuttora, ancora di più di prima) sotto le luci della ribalta per essere forse il migliore sistema operativo per PC (anche se è il meno diffuso). L'idea che potrebbe venire in mente è pressoché immediata: ma allora, visto che è il kernel che si occupa della comunicazione tra hardware e software, perché non creare un sistema operativo Android che poggia su un kernel Linux pensato per PC?
È la stessa domanda che si son posti i developer del progetto Android x86: visto il successo che stava e sta avendo Android e considerata la sua natura open source (ossia sorgente aperto, libero), la risposta al quesito fu altrettanto rapida. Difatti presero il codice sorgente rilasciato da Google e lo ricompilarono con target x86, ci associarono i sorgenti di Linux e fecero uscire una serie di versioni del sistema operativo pensate per diversi pc.

La chiave per attuare questo tipo di porting fu il funzionamento intrinseco di Android: difatti esso è scritto in una versione modificata del linguaggio di programmazione Java e la peculiarità di quest'ultimo è che il codice non viene eseguito direttamente dalla macchina, bensì da una macchina virtuale installata sulla macchina stessa. Il concetto è un po' macchinoso da comprendere: un software, per funzionare correttamente, ha la necessità di essere eseguito da una macchina e deve essere modificato per la macchina in cui viene eseguito (quindi lo stesso codice non può essere eseguito su macchine con processori x86_64 e macchine con processori ARM). Il punto di forza di Java, ossia del linguaggio nel quale è scritto Android, è che il codice è lo stesso universalmente, cambia solo il fatto che non viene eseguito direttamente dalla macchina, bensì da un interprete che lo traduce e lo esegue in un linguaggio comprensibile per la macchina stessa.


Nasce, da questo insieme di idee e concetti, Android per pc.

Ok, la spiegazione è stata lunga e macchinosa per chi non è abituato a certi concetti, ma è fine a sé stessa, poiché non siete tenuti a sapere queste informazioni per usufruire dell'OS.
Vediamo adesso alcune caratteristiche e peculiarità: innanzitutto, essendo Android molto leggero di suo, la sua versione x86 è assolutamente consigliata per girare su pc poco potenti, netbook o macchine che ormai ritenete obsolete e non in grado di darvi soddisfazioni (ma ovviamente gira anche sugli ultimi modelli, non temete).
Secondo, è un progetto sperimentale e comunque pioneristico, per cui non meravigliatevi se qualcosa non va come dovrebbe, o se un'applicazione non è disponibile.
Terzo, essendo pensato per pc con molti meno sensori rispetto ad uno smartphone, dovrete fare a meno di applicazioni che fanno uso di giroscopi, sensori di prossimità, torce, ma anche chiamate, 3G, sms ed mms (a meno che il vostro pc non li abbia integrati).

Allora, passiamo all'installazione vera e propria, quel che vi serve è:

- una pendrive da almeno 8gb
- unetbootin (disponibile per Windows, Linux e Mac), servirà per creare la pen drive installante
- la versione di Android x86 che preferite, che potete trovare qui
- un po' di dimestichezza coi pc

Prima di tutto, preparate la vostra pen drive:

- collegate la pen drive vuota e formattata in FAT32
- avviate unetbootin
- selezionate l'ISO scaricata ed il dispositivo di montaggio dell'ISO ed avviate
- attendete il termine dell'operazione

Adesso siamo giunti all'installazione vera e propria:

- riavviate il pc con la pen drive collegata ed impostate dal bios come primo boot la pendrive (o dal menu di boot)
- dal menu che comparirà, selezionate "Install Android to Hard Disk"
- create la partizione e formattatela in ext3 (è l'unico file system che Android riesce a leggere)
- avviate l'installazione (sono necessari 2-3 minuti)
- alla domanda se vorrete installare il menu di grub, rispondete sì solo se al momento android è l'unico sistema operativo nell'hd
- riavviate
A partire da Froyo, al termine dell'installazione, il sistema vi chiederà di scegliere la partizione di Windows attiva, per cui verrà caricato un bootloader per far sì che all'avvio del pc possiate scegliere quale OS avviare.

Una volta riavviato, avrete Android installato sul vostro pc, che verrà riconosciuto come tablet e potrete usufruire di moltissime applicazioni disponibili sul Play Store.


Per maggiori dettagli sull'installazione e screenshot di supporto, vi rimando alla guida che io stesso ho scritto per Androidiani.com, che potete trovare qui, se avete qualsiasi dubbio o perplessità, potrete trovare la risposta lì.

Alla prossima!