OS CELLULARI

ANDROID

Introduzione

Sviluppato inizialmente all’interno di Google e promosso da una delle maggiori alleanze del settore, la Open Handset Alliance, Android è una piattaforma completa ed innovativa per dispositivi mobili rilasciata con licenza open-source ad Ottobre 2008. Il concetto importante che sta alla base dello sviluppo di Android è riassunto dalla parola Open. Android è aperto ad ogni livello della sua architettura, utilizza Linux come Base System OS per una maggiore portabilità, il framework di librerie è costituito da un mix tra progetti open-source esterni e componenti interni rilasciati anche questi con licenza open, infine le applicazioni vengono sviluppate in un modello collaborativo mai visto prima: ogni applicazione è libera di utilizzare tutte le funzionalità presenti nella piattaforma senza differenze tra applicazioni base di Android e quelle prodotte da singoli sviluppatori. Inoltre ogni applicazione è formata da componenti che altre applicazioni possono riutilizzare o sostituire per abbattere i tempi di sviluppo ed evolvere le funzionalità presenti liberamente. La licenza di riferimento del progetto open-source Android è Apache 2.0; licenza free software approvata dalla comunità Open Source Come una qualsiasi licenza free software, la licenza Apache garantisce agli utilizzatori del software la libertà di utilizzarlo, distribuirlo, modificarlo e distribuirne prodotti derivati. Apache 2.0 però non è copyleft: non esprime obblighi rispetto al regime giuridico dei prodotti derivati i quali, al limite, possono essere distribuiti con licenza proprietaria. E’ imposto però l’obbligo di citazione del lavoro originale. Ciò che ha spinto Google ad utilizzare questa tipologia di licenza è proprio la libertà rispetto alla forma di licenza dei lavori derivati: Per sua natura Android è una piattaforma espandibile e personalizzabile, aziende produttrici di dispositivi mobili possono si contribuirne allo sviluppo ma, in questo modo, possono anche inserire o modificare componenti (User interface..) senza dover necessariamente rilasciare il codice sorgente con licenza open-source.

Classificazione

Android si presenta con una architettura multi-layer . Come scritto in precedenza Android è basato sul sistema operativo Linux 2.6 con alcune estensioni. Linux fornisce una solida base alla piattaforma Android: fornisce modelli consolidati nella gestione dei processi, della memoria, dei driver di periferica, supporta librerie condivise ed implementa un ottimo modello di sicurezza basata su permessi. . Sicurezza - Ogni applicazione in Android corrisponde ad un processo Linux che esegue in seno ad una propria istanza Dalvik privata. Questo permette di garantire l’isolamento della memoria a disposi- zione della singola applicazione e di costruire politiche di gestione degli accessi sfruttando i concetti di utenti e gruppi Linux. Gestione della Memoria - La moltiplicazione di istanze JVM così ottenuta ha richiesto ottimizzazioni stringenti nella gestione della memoria rispetto alle JVM standard. Per questo è stato sviluppato un nuovo formato di file eseguibile .dex (Dalvik EXecutable) capace di contenere più definizioni di classi (alla pari dei file .jar che contengono più file .class) riordinate in modo da eliminare la ripetizione di aree funzionali e dati comuni ottenendo così una riduzione di più del 50% dello spazio occupato dai componenti di Android (Core Libraries, Application Framework ..) in un formato eseguibile non compresso. In Android le applicazioni sono scritte in linguaggio Java; e le risorse necessarie alla singola applicazione vengono riuniti con l’ausilio del tool aapt in un pacchetto .apk (Android Package). E’ questa la forma in cui una applicazione può essere distribuita ed installata in un dispositivo reale. Ogni applicazione in esecuzione nel sistema operativo, se lanciata, esegue in un proprio processo Linux in seno a una propria istanza JVM privata; lo User ID del processo viene assegnato da Android in modo univoco nell’insieme dei processi in esecuzione (se non esplicitamente definito) e i permessi dei file vengono impostati così che ogni applicazione non possa accedere direttamente a risorse non proprie.

Diffusione

Da un rapporto ITU del settembre 2008 si apprende come il numero globale delle sottoscrizioni a contratti per dispositivi mobili sia arrivato a superare la cifra delle 4.000.000.000 unità. Tomi T Ahonen in un suo post fornisce una descrizione molto interessante della situazione globale: a fronte di un numero così grande di dispositivi mobili attivi il numero di sottoscrizioni a contratti internet da locazioni fisse è dell’ordine dei 950 milioni (quattro volte di meno) mentre gli utenti attivi della rete globale si attestano nell’ordine delle 1.300 milioni di unità . Il mercato dell’internet-mobile parrebbe attestarsi ad una base d’utenza di 350 milioni di unità , ma se si conta la sovrapposizione di utenze (una persona che possiede un computer connesso ad internet può possedere un telefono capace di navigare) questo numero può essere addirittura maggiore. Ahonen stima a fine del 2008 che il numero di utenze mobili attive in internet per accessi browser sia pari a circa 1100 milioni di unità , superiore al numero di accessi via Personal Computer! Google si inserisce in questo mercato con un sistema operativo capace di supportare gli standard di comunicazione in grado di portare i servizi di Google anche sui dispositivi mobili. L’obbiettivo che rende lo sviluppo di Android appetibile è quello di penetrare il mercato dei sistemi operativi per dispositivi mobili per affermare gli standard di comunicazione che permettono a Google di fare soldi attraverso la propria offerta di servizi. In Android Google ha facilitato l’accesso ai propri servizi attraverso lo sviluppo di API native facendo questa una piattaforma privilegiata, ma l’obbiettivo principale è l’affermazione di una modalità di accesso alla rete standard per i normali PC che a fatica ora si sta cercando di riprodurre anche nei nuovi dispositivi mobili.