sistemi operativi mobile

49
Sistemi Operativi Phone

Upload: ilaria93

Post on 01-Feb-2015

1.828 views

Category:

Technology


3 download

DESCRIPTION

Comparazione diversi sistemi operativi mobile

TRANSCRIPT

Page 1: Sistemi Operativi Mobile

Sistemi Operativi Phone

Page 2: Sistemi Operativi Mobile

Cos'è un sistema operativo?

In informatica il sistema operativo, è un particolare software, installato su un sistema di elaborazione, senza il quale non è possibile l'utilizzo di altri software più specifici, come applicazioni o librerie software. Esso quindi funge da "base" al quale si appoggiano gli altri software, che dunque dovranno essere progettati in modo da essere riconosciuti e supportati da quel particolare sistema operativo. Per sistema operativo intendiamo quindi l'insieme dei componenti software che hanno il duplice scopo di gestire le risorse hardware e software del dispositivo e fare da interfaccia tra l'utente e l'hardware.Insieme al processore, con cui è strettamente legato, costituisce la cosiddetta piattaforma del sistema di elaborazione.

Page 3: Sistemi Operativi Mobile

StrutturaUn generico sistema operativo moderno si compone di alcune parti standard, più o meno ben definite:

• Il kernelun gruppo di funzioni fondamentali, strettamente interconnesse fra loro e con l'hardware, che vengono eseguite con il privilegio massimo disponibile sulla macchina ossia in modalità kernel; il kernel fornisce le funzionalità di base per tutte le altre componenti del sistema operativo, che assolvono le loro funzioni servendosi dei servizi che esso offre. A seconda del tipo di sistema operativo il kernel può inglobare altre parti (kernel classico, monolitico o modulare) o fornire solo funzioni base delegando più funzioni possibile a oggetti/gestori esterni (microkernel).

• Il gestore di file systemsi occupa di esaudire le richieste di accesso alle memorie di massa. Viene utilizzato ogni volta che si accede a un file su disco, e oltre a fornire i dati richiesti tiene traccia dei file aperti, dei permessi di accesso ai file. Inoltre si occupa anche e soprattutto dell'astrazione logica dei dati memorizzati sul dispositivo (directory, ecc).

• Un sistema di memoria virtualeche alloca la memoria richiesta dai programmi e dal sistema operativo stesso, salva sulla memoria di massa le zone di memoria temporaneamente non usate dai programmi e garantisce che le pagine swappate vengano riportate in memoria se richieste.

• Uno schedulerche scandisce il tempo di esecuzione dei vari processi e assicura che ciascuno di essi venga eseguito per il tempo richiesto. Normalmente lo scheduler gestisce anche lo stato dei processi e può sospenderne l'esecuzione nel caso questi siano in attesa senza fare nulla. Nei sistemi operativi realtime lo scheduler si occupa anche di garantire una timeline, cioè un tempo massimo di completamento per ciascun task in esecuzione, ed è notevolmente più complesso.

• Uno spoolerche riceve dai programmi i dati da stampare e li stampa in successione, permettendo ai programmi di proseguire senza dover attendere la fine del processo di stampa.

• Una interfaccia utente (Shell)che permette agli esseri umani di interagire con la macchina.

A seconda dei casi, un particolare sistema operativo può avere tutti questi componenti o solo alcuni. Una ulteriore differenza fra i sistemi operativi è data dal tipo di comunicazione fra le varie componenti: i sistemi operativi classici sono basati su chiamate dirette di funzioni, mentre molti sistemi operativi moderni, soprattutto quelli che adottano microkernel, si basano sul message passing, sullo scambio di messaggi fra le loro varie parti e fra il sistema operativo e i programmi che fa girare.

Page 4: Sistemi Operativi Mobile
Page 5: Sistemi Operativi Mobile

…Un salto al passato!

Il telefono cellulare è stato inventato da Martin Cooper, direttore della sezione Ricerca e sviluppo della Motorola, che fece la sua prima telefonata da un cellulare il 3 aprile 1973. Ma solo dopo 10 anni la Motorola decise di produrre un modello dal costo di 4000 dollari. Rapidamente i cellulari si sono diffusi nel mondo, nel 2007 il 50% della popolazione mondiale aveva un cellulare. All'inizio del 2009 la percentuale è salita al 61%. In Italia, secondo i dati resi pubblici dall'Autorità per le Telecomunicazioni, nel 2009, i minuti di conversazione al cellulare hanno superato quelli dal telefono fisso e tre famiglie su dieci lo hanno così eliminato.

Page 6: Sistemi Operativi Mobile

Evoluzione della telefonia cellulare

Dalla sua comparsa, il telefono cellulare ha usato diversi sistemi di funzionamento principali denominati "generazioni", basati su differenti tecnologie e standard di comunicazione, dai sistemi analogici degli anni settanta/novanta (160/450/900 MHz) a quelli digitali basati su standard GSM, GPRS, UMTS/EDGE e VSF-Spread OFDM (rispettivamente terza e quarta generazione ossia 3G e 4G).Mentre il passaggio dal segnale analogico a quello digitale ci permetteva di implementare alla sola chiamata vocale l'uso dei messaggi di testo SMS ora da pochi anni, l'UMTS, la terza generazione, permette l'utilizzo del telefono cellulare anche per inviare foto digitali, effettuare videotelefonate, registrare e visualizzare videofilmati, navigare in Internet (nello speciale protocollo Wireless Application Protocol WAP), spedire e-mail e in alcuni modelli visionare il segnale TV di alcune emittenti televisive dedicate.L'evoluzione dei segnali radio per il servizio telefonico è stata affiancata da una ancor più evidente evoluzione tecnologica del telefono cellulare. Dai design particolari, accattivanti o funzionali, con schermi LCD monocromatici poi divenuti a colori, ora con tecnologia a LED e touch screen. La grafica sempre più definita, l'impiego di menù complessi fino all'uso delle icone rendendo, nel tempo, i telefoni cellulari sempre più simili a un Computer. Accessori come macchine fotografiche integrate in grado di fotografare con ottime risoluzioni, riprendere piccoli video e a seconda del modello e alla quantità di memoria disponibile la possibilità di registrare veri e propri filmati digitali. Visionare foto e video sempre più dettagliati, navigare in Internet su siti sempre più simili a quelli visionati da un PC, un'evoluzione senza sosta. Le suonerie, grazie a micro casse acustiche e a componenti audio incorporati nel telefono sempre più sofisticati, da monofoniche sono divenute polifoniche e poi stereo per arrivare all'audio virtual 3D. Oramai anche i cellulari sono dei veri e propri apparati multimediali in grado di far ascoltare stazioni radio, compilation di MP3, effettuare registrazioni ambientali, memorizzare l'audio delle nostre conversazioni telefoniche e il tutto con qualità audio di altissimo livello. Il software dei cellulari di ultima generazione sono veri e propri Sistemi Operativi in grado di gestire i più svariati applicativi come browser per navigare in Internet, programmi di video scrittura e posta elettronica, giochi e suonerie scaricabili dalla rete ecc.

Page 7: Sistemi Operativi Mobile

Ultimamente, grazie ad accordi presi tra i produttori di cellulari e i gestori delle mappe globali GPS, si possono utilizzare i telefoni cellulari come navigatori satellitari e questi, grazie alla alta efficienza di alcuni modelli, possono rappresentare una vera e propria sfida contro le società specializzate nella costruzione di soli navigatori. Sono aumentate anche le porte e i metodi di connessione verso altri sistemi come ad esempio la trasmissione dati ad Infrarosso (IR), il Bluetooth e il wi-fi, la connessione tramite cavo USB, la possibilità di collegare cuffie, auricolari, microfoni e apparati vivavoce per auto o volendo un vero e proprio impianto HiFi. Alcuni modelli inoltre possono alloggiare schede di memoria aggiuntive Secure Digital (SD) per potenziare le prestazioni del telefono o perfino alloggiare e gestire 2 schede telefoniche SIM contemporaneamente quindi con due differenti numerazioni telefoniche sullo stesso telefono. La moda ha influenzato notevolmente anche questo settore infatti, sul mercato, si trovano telefoni cellulari di qualsiasi dimensione, forma e design; sono stati impiegati innumerevoli materiali differenti arrivando alla produzione di vere e proprie opere uniche più simili a gioielli di altissimo valore. Esistono cellulari per impieghi speciali con segnali cifrati e con sistemi che impediscono l'intercettazione del traffico telefonico, modelli praticamente impermeabili e ad altissima resistenza.

Page 8: Sistemi Operativi Mobile

Infine un accenno anche al Telefono Satellitare che, tramite la connessione satellitare, permette di telefonare praticamente da qualsiasi parte del globo. Sono telefoni che garantiscono un funzionamento anche in ambienti estremi cioè molto caldi, molto freddi o molto umidi. Utilizzano materiali resistenti ma leggeri, impiegano batterie con autonomie maggiorate e sono corredati di numerosi gadget utili ai più svariati scopi e imprevisti.

Page 9: Sistemi Operativi Mobile

Contemporaneamente a Londra……Nasceva Symbian OS, un sistema operativo per dispositivi mobili (i cosiddetti smartphone), prodotto da Symbian Foundation. Il Symbian OS è l'erede del sistema operativo EPOC, nella sua incarnazione EPOC32, creato dalla Psion alla fine degli anni novanta per la sua linea di palmari. La sua nascita risale al giugno del 1998 con la creazione della compagnia indipendente Symbian Limited nata dalla cooperazione di diverse compagnie telefoniche e dalla stessa Psion. Il primo telefono mobile ad utilizzare questo sistema operativo fu il Sony Ericsson modello P800 e i Nokia 9210 e 7650. L'ultima versione disponibile del sistema operativo è la 5.0.Nel giugno del 2008 Nokia ha comunicato l'intenzione di rilevare le quote azionarie delle altre società al fine di divenire l'unico proprietario del sistema operativo, e una volta completata l'acquisizione di renderlo open source con la creazione di Symbian Foundation: essa sarà formata dai vecchi proprietari e aperta ad altri produttori, e si dovrà occupare di unificare tutte le interfacce in una nuova release del sistema operativo e gestirne l'apertura agli sviluppatori esterni.Symbian dal 4 febbraio 2010 è diventato un sistema operativo libero. Inoltre, anche la documentazione relativa alle API è disponibile pubblicamente, quindi chiunque ha la possibilità di sviluppare software per Symbian. L' 11 febbraio 2011 Nokia e il suo nuovo CEO Stephen Elop hanno scelto di adottare sul proprio hardware il nuovo sistema operativo di Microsoft, Windows Phone 7, come "piattaforma principale" affiancando la piattaforma Symbian. Il 5 Aprile 2011 Nokia annuncia un cambiamento nei criteri necessari per contribuire al progetto, trasformandolo da un progetto libero a codice aperto a un progetto dove solo le aziende potranno collaborare al suo sviluppo. Il 27 Aprile 2011 Nokia annuncia l'esternalizzazione totale dello sviluppo della piattaforma Symbian alla società Accenture, già da tempo partner strategico della società finlandese.

Page 10: Sistemi Operativi Mobile

Caratteristiche

Come altri sistemi operativi, Symbian dispone di funzionalità di multithreading, multitasking e protezione della memoria. Grande importanza è data all'utilizzo della memoria, mediante tecniche specifiche di Symbian che determinano la rarità degli errori dovuti a una cattiva gestione della stessa (memory leak). Tecniche analoghe permettono un altrettanto efficiente gestione dello spazio su disco. Il funzionamento di Symbian è basato su eventi e la CPU è automaticamente disabilitata quando non vi siano eventi attivi: il corretto uso di questa tecnica aiuta ad assicurare alle batterie una durata maggiore (molto importante sui telefoni cellulari).

Page 11: Sistemi Operativi Mobile

Inoltre è caratterizzato da:

• Telefonia mobile multimode integrata - Symbian OS integra la potenza di calcolo con la telefonia mobile, portando servizi dati avanzati al mercato di massa

• Ambiente di applicazione aperto - Symbian OS rende i cellulari piattaforme per l'esecuzione di applicazioni e servizi (programmi e contenuti) sviluppati con vari linguaggi e secondo vari formati di contenuto

• Multi-tasking - è basato su un'architettura micro-kernel ed implementa threading e multitasking pieno. I servizi di sistema come la telefonia, il networking ed i motori delle applicazioni vengono eseguiti tutti ognuno nel proprio processo

• Struttura basata sui componenti ed orientata agli oggetti - Il sistema operativo è stato progettato avendo in mente sempre il dispositivo mobile, utilizzando avanzate tecnologie OO in modo da ottenere un'architettura flessibile

• Progettazione di interfaccia utente flessibile - Symbian OS offre una interfaccia utente grafica estremamente flessibile

• Robustezza - Symbian OS effettua accessi istantanei ai dati utenti. Si assicura così l'integrità dei dati anche in presenza di comunicazioni non affidabili e scarsità di risorse di memoria, di immagazzinamento ed energia.

• Symbian OS fornisce un ricco insieme di interfacce di programmazione di applicazioni che sono comuni a tutti i telefoni cellulari basati su Symbian OS.

• Ricca collezione di motori di applicazioni - la collezione include motori per contatti, schedulazione, messaging, browsing, utility e controllo sistema; OBEX per lo scambio di oggetti come appuntamenti e business card (vCard); le API integrate per la gestione dati, testo, clipboard e grafica.

• Applicazioni per Symbian OS è disponibile un discreto numero di programmi, sia gratuiti che a pagamento, il che ne fa un prodotto espandibile e personalizzabile. Sono stati importati inoltre numerosi giochi da console in versione Mobile, adattati al telefono, inoltre si ha l'integrazione del navigatore gratuito "Ovi Maps". Attualmente possibile visionare e (in alcuni casi) modificare direttamente dal telefono documenti di Word, Excel, PowerPoint, Outlook Express e PDF.

Page 12: Sistemi Operativi Mobile

Il KERNEL costituisce il nucleo di un sistema operativo. Si tratta di un software avente il compito di fornire ai processi in esecuzione sull'elaboratore un accesso sicuro e controllato all'hardware. Dato che possono esserne eseguiti simultaneamente più di uno, il kernel ha anche la responsabilità di assegnare una porzione di tempo-macchina e di accesso all'hardware a ciascun programma (multitasking).

MICRO-KERNELL'approccio microkernel consiste nel definire delle macchine virtuali molto semplici sopra l'hardware, con un set di primitive o chiamate di sistema per implementare servizi minimali del sistema operativo quali gestione dei thread, spazi di indirizzamento o comunicazione interprocesso.L'obiettivo principale è la separazione delle implementazioni dei servizi di base dalle strutture operative del sistema. Per esempio, il processo di blocco (locking) dell'Input/Output può essere implementato come modulo server a livello utente. Questi moduli a livello utente, usati per fornire servizi di alto livello al sistema, sono modulari e semplificano la struttura e la progettazione del kernel. Un servizio server che smette di funzionare non provoca il blocco dell'intero sistema, e può essere riavviato indipendentemente dal resto.

Page 13: Sistemi Operativi Mobile

• Browsing - è fornito uno stack WAP con supporto 1.2.1 per la navigazione da cellulare

• Messaging - messagi multimediali (MMS), messaggi avanzati (EMS) e SMS; posta internet, usando POP3, IMAP4, SMTP e MHTML; allegati e fax;

• Multimedia - supporto in registrazione, riproduzione e streaming di video e audio; conversione di immagini

• Grafica - accesso diretto allo schermo ed alla tastiera per alte prestazioni; API di accelerazione grafica

• Protocolli di comunicazione - stack di rete come TCP/IP (in dual mode Ipv4/v6) e WAP, supporto IrDA, Bluetooth e USB; viene fornito supporto anche per capacità multihoming e layer di collegamento Quality-of-Service (QoS) su reti GPRS/UMTS

• Telefonia mobile - Symbian OS 7.0 è pronto per il mercato G3 con supporto di voce e dati commutati su circuito GSM (CSD e EDGE ECSD) e dati basasti su pacchetti (GPRS e EDGE EGPRS); voce commutata su circuito CDMA , dati e dati basati su pacchetto (IS-95, CDMA2000 1x, e WCDMA); SIM, RUIM e UICC Toolkit; possono essere implementati altri standard attraverso API espandibili

• Supporto internazionale - conforme allo standard Unicode v 3.0 • Sincronizzazione dati - supporto sincronizzazione over-the-air (OTA) usando

SyncML; sincronizzazione PC su seriale, Bluetooth, infrarosso e USB; un framework di connettività PC fornisce la possibilità di trasferire file e sincronizzare dati PIM

• Sicurezza - crittazione completa e gestione dei certificati, protocolli sicuri (HTTPS, WTLS , SSL e TLS), framework WIM e installazione di applicazioni certificate Sviluppo per Symbian OS - C++,Java (J2ME) MIDP2.0 e Personal Java 1.1.1a (con l’opzione JavaPhone 1.0) e WAP; sono disponibili tools per costruire applicazioni C++ e Java e ROM con supporto per debugging on-target

• Input utente - meccanismi di input generici che supportano tastiera, tastierino numerico dei cellulari 0-9*#, voce, riconoscimento della scrittura e precisione immissione del testo.

Page 14: Sistemi Operativi Mobile

Symbian OS è formato da un insieme di sottosistemi secondo la seguente struttura. 

Page 15: Sistemi Operativi Mobile

MultimediaLa struttura Multimedia (MMF) fornisce una struttura snella e multi-threaded per gestire i dati multimediali. La struttura fornisce funzionalità di registrazione,riproduzione e streaming audio e

video.

Page 16: Sistemi Operativi Mobile

Infrastruttura di comunicazioneIl sottosistema di infrastruttura di comunicazione fornisce le strutture ed i servizi di sistema per le comunicazioni ed il networking.

Ciò include:• Un gestore dell’archivio delle comunicazioni che controlla la

configurazione delle comunicazioni • Un socket server ed una API (Application Programming Interface) lato

client che fornisce una struttura per implementare i vari protocolli di comunicazione attraverso una interfaccia socket. I protocolli plug-in sono caricati dinamicamente.

• Supporto multi-homing: interfacce multiple simultanee a livello OSI datalink, ognuna con il suo proprio indirizzo IP. Questo non è limitato ai contesti PDP Primari ma fornisce la disponibilità di tecnologie ad accesso multiplo come WLAN, BNEP e Ethernet con contesti PDP multipli

• Un gestore di interfaccia di rete che fornisce una struttura per la connessione ad altri computer o network. Il gestore fornisce un meccanismo al client per monitorare le attività ad esempio su una connessione PPP

• Un server di comunicazione seriale fornisce una porta seriale (RS232C) per permettere al telefono basato su Symbian OS di funzionare come DCE o DTE. Moduli plugin di comunicazione dinamicamente caricabili vengono attualmente usati per comunicare con i driver di dispositivo ed altri stack di protocollo

• Stack HTTP e WAP

Page 17: Sistemi Operativi Mobile

Versioni• Symbian OS 6 è del 2001 la prima versione del sistema operativo con il nuovo nome. Viene aggiunto il

supporto a bluetooth • Symbian OS 7. Nel 2003 con questa release vennero aggiunti il supporto a EDGE e IPv6. Con la

versione 7.0 i file .mid, .sis, .java e .mp3 sono diventati oggetti protetti e non inviabili tramite la normale funzione del telefono (ma non tramite programmi aggiuntivi, basta infatti rinominare l'estensione del file da inviare per esempio come nomefile.txt con un semplice programma come FExplorer), per evitare la riproduzione illegale di contenuti.

• Symbian OS 8. Uscì nel 2004 con nuove API per il supporto a CDMA, 3G, data streaming, DVB-H, Open GL ES. È stato prodotto con due kernel differenti: EKA1 e EKA2. Dalla versione 8 anche il formato .midi è risultato protetto e quindi non inviabile ad altro apparecchio.

• Symbian OS 9. Sceglie di sviluppare solo il kernel EKA1, perdendo parte della retrocompatibilità.

Versioni con codice aperto:• Symbian^1, essendo la prima release uscita nell'ottobre del 2008[9], costituisce la base per la

piattaforma. Incorpora Symbian OS e S60 5th Edition (che si basa su Symbian OS 9.4) e quindi non è stato reso disponibile in open source.

• Symbian^2 è stato il primo titolo gratuito la versione di Symbian, che venne rilasciato il 1° giugno del 2010. Alcune porzioni sono concesse in licenza EPL, ma la maggior parte del codice sorgente è sotto la licenza proprietaria SFL e disponibile solo ai membri della Symbian Foundation.

• Symbian^3, rilasciato a settembre 2010 ha introdotto nuove caratteristiche come un nuovo 2D e 3D architettura grafica, miglioramenti dell'interfaccia utente e il supporto per display esterno tramite HDMI. Introduce le due schermate personalizzabili

– Symbian Anna rilasciato da Nokia nel mese di aprile 2011, include miglioramenti come ad esempio un nuovo browser, una tastiera virtuale con orientamento verticale, nuove icone e in tempo reale lo scorrimento homescreen

– Symbian Belle è un aggiornamento di Symbian Anna. Il 24 agosto 2011, Nokia annuncia ufficialmente Belle per quattro nuovi smartphone, il Nokia 600, Nokia 603, Nokia 700, e il Nokia 701. Inoltre, annuncia che Belle arriverà su tutti i dispositivi Symbian^3 esistenti nell'ultimo quarto del 2011. Symbian Belle aggiunge ai miglioramenti di Anna barra di notifica a discesa, un'integrazione maggiore con il Near Field Communication (NFC), widgets di forma e grandezza variabile e aumenta ad un massimo di sei il numero di homescreen disponibili.

Page 19: Sistemi Operativi Mobile

Apple iOSiOS (fino a giugno 2010 iPhone OS) è il sistema operativo sviluppato da Apple per iPhone, iPod touch e iPad. Come Mac OS X è una derivazione di UNIX (famiglia BSD) e usa un microkernel XNU Mach basato su Darwin OS. iOS ha quattro livelli di astrazione: il Core OS layer, il Core Services layer, il Media layer ed il Cocoa Touch layer. Il sistema operativo occupa meno di mezzo gigabyte della memoria interna del dispositivo. Il sistema operativo non aveva un nome ufficiale fino al rilascio della prima beta dell'iPhone SDK il 6 marzo 2008; prima di allora, il marketing Apple affermava che "iPhone usa OS X". Il sistema operativo è stato presentato il 9 gennaio 2007 al Macworld Conference & Expo, e la versione 1.0, ancora priva di nome, è entrata in commercio con il primo iPhone il 29 giugno dello stesso anno. Il 6 marzo 2008, in concomitanza con la pubblicazione della prima beta del SDK, il sistema operativo è stato etichettato ufficialmente come "iPhone OS".L'11 luglio 2008 viene pubblicato in concomitanza della vendita di iPhone 3G l'aggiornamento a iPhone OS 2.0 che aggiunge, tra le altre funzioni, il tanto atteso App Store e la possibilità di installare applicazioni di terze parti.iPhone OS 3.0, pubblicato con l'iPhone 3GS il 17 giugno 2009 ha aggiunto molte funzioni richiste dagli utenti, quali copia e incolla e gli MMS. Tutti i dispositivi erano aggiornabili a iPhone OS 3, ma con delle limitazioni per la prima generazione di iPhone e iPod touch. Il primo iPad, entrato in commercio nell'aprile 2010, ha avuto inizialmente un "ramo" separato di iPhone OS 3, fino all'unificazione con gli altri dispositivi con la versione 4.2.1 del software.La quarta release del sistema operativo, pubblicata con iPhone 4 il 21 giugno 2010, ha aggiunto numerose funzioni quali il multitasking per le applicazioni di terze parti, FaceTime e iBooks. Il rinominato "iOS", ha unificato i vari dispositivi (iPhone, iPod touch e iPad) con una release comune, la 4.2.1.Il 6 giugno 2011 è stata presentata al WWDC (Worldwide Developers Conference) la quinta versione di iOS con numerose nuove funzioni, tra cui la sincronizzazione senza fili, l'integrazione con il servizio iCloud di Apple e un rinnovato sistema di notifiche; il giorno stesso è stata rilasciata la prima beta del sistema operativo. iOS 5 è stato pubblicato il 12 ottobre 2011.

Page 20: Sistemi Operativi Mobile

TecnologiaIl processore di iPhone ed iPod Touch è un RISC ARM, come il SoC usato nell'iPad è allo stesso modo di architettura ARM Cortex, a differenza del processore x86 (e prima PowerPC o MC680x0) che viene comunemente usato nella linea Macintosh; le soluzioni ARM sfruttano OpenGL ES 1.1 e OpenGL ES 2.0 renderizzate da un processore video PowerVR. Le applicazioni per Mac OS X non possono essere ufficialmente copiate e lanciate in dispositivi con iPhone OS ma necessitano di essere customizzate e compilate specificatamente per iPhone OS e per l'architettura ARM. Tuttavia, il web browser integrato Safari web browser supporta le "web applications". La prima versione dei rilasci di iPhone OS è stata diffusa il 9 gennaio 2007, senza il supporto per l'SDK e la creazione di applicazioni di terze parti.

Le funzioni multitasking sono state introdotte dall'iOS4, perchè Apple dubitava della durata della batteria con l'esecuzioni di più applicazioni di terze parti contemporaneamente, rendendolo disponibile questa funzionalità solo a partire da iOS 4 tramite le sue specifiche API:

• Audio di sottofondo: applicazione continua a funzionare in background fino a quando la riproduzione di contenuti audio o video non termina

• Voice over IP: l'applicazione viene sospesa quando una telefonata non è in corso • Posizione di geolocalizzaione: l'applicazione viene informato dei cambiamenti di

posizione• Notifiche Push: ricevere avvisi dai server remoti, anche quando la vostra applicazione

non è in esecuzione• Notifiche locale: la vostra applicazione può avvisare gli utenti di eventi in programma

e gli allarmi in background• Completamento delle attività: l'applicazione chiedere al sistema del tempo extra per

completare un determinato compito • Cambio rapido app: l'applicazione non esegue alcun codice e può essere rimosso dalla

memoria in qualsiasi momento, per poi essere ripresa dal punto in cui è stata lasciata.

Page 21: Sistemi Operativi Mobile
Page 22: Sistemi Operativi Mobile

Qui si ferma la parte open source del Mac OS X, da questo punto in poi c’è la parte “commerciale” che Apple sviluppa in casa e mette a disposizione dei programmatori mediante insieme di API o ambienti di sviluppo.Vediamo in dettaglio le API a disposizione:

• QuickTime (tecnologia multimediale per creare e distribuire video, audio, animazione, grafica, testo, l’interattività e la musica. Supporta decine di file e formati di compressione per le immagini, video e audio, tra cui conforme alle norme ISO MPEG-4 video e audio AAC. Le applicazioni QuickTime possono essere eseguiti su Mac OS X e tutte le principali versioni di Microsoft Windows)

• Core Audio (sono servizi a livello di sistema, messi a disposizione degli sviluppatori e permettono di includere nei software audio, audio multicanale, gestione dei formati ad alta risoluzione, gestione strumenti MIDI-based.)

• Core Image (tecnologia di elaborazione delle immagini integrato in Mac OS X, sfrutta l’hardware grafico e viene utilizzata dagli sviluppatori mediante API)

• Core Video (permette agli sviluppatori di accedere e manipolare i singoli fotogrammi, senza doversi preoccupare di conversione tra tipi di dati, QuickTime, OpenGL, e così via, o problemi di sincronizzazione)

• OpenGL (standard industriale per alte prestazioni grafiche 2D e 3D, specificamente progettato per supportare CAD / CAM , software di intrattenimento, etc..)

Page 23: Sistemi Operativi Mobile

Gli ambienti di sviluppo:

• Cocoa (ambiente di sviluppo orientato agli oggetti progettato specificamente per realizzare applicazioni per Mac OS X native)

• Carbon (insieme di API che permetto agli sviluppatori in C e C++ di sfruttare le caratteristiche di Mac OS X, tra cui un avanzato kit di strumenti di interfaccia utente, un meccanismo efficiente di gestione degli eventi, la libreria grafica Quartz 2D, e il supporto multiprocessing)

• Java (si possono distribuire facilmente applicazioni J2SE cross-platform come nativo per Mac OS X).

Interfaccia utente:

• Acqua (l’aspetto grafico del Mac OS X. Aqua definisce la grafica standard di specifici componenti dell’interfaccia utente come finestre, menu e comandi. Usa grafica di alta qualità e il design user-centric funzionale e accattivante.)

• Dashboard (sistema di gestione di utility del desktop chiamate widget [in italiano congegno o elemento grafico] che sono vere e proprie miniapplicazion)

Page 24: Sistemi Operativi Mobile

• Spotlight (offre un nuovo modo di organizzare e ricercare le informazioni sul computer utilizzando i metadati. Essi possono includere informazioni come data di modifica di un file, autore, parole chiavi o altre informazioni personalizzabili per particolari attività)

• Accessibility (interazione e assistenza con l’interfaccia utente di un’applicazione per essere utilizzate da persone con disabilità).

Il Mac OS X ha, quindi, una base BSD che lo rende UNIX con implementato il kernel XNU.

XNU (XNU è un acronimo ricorsivo che sta per XNU’s Not Unix = “XNU Non è Unix”) è un kernel ibrido modulare, unione del kernel monolitico FreeBSD e il microkernel Mach 3.0. Apple ha inserito XNU e object-oriented device driver API (Application Programming Interface) chiamate I/O Kit (forniscono un framework per lo sviluppo semplificato di driver, oltre che gestire Plug and Play, caricamento dinamico dei driver) in un progetto chiamato Darwin, opensource distribuito come core di Mac OS X ad uso degli sviluppatori. Darwin ed è un sistema operativo completo, senza interfaccia grafica.

Qui si ferma la parte open source del Mac OS X, da questo punto in poi c’è la parte “commerciale” che Apple sviluppa in casa e mette a disposizione dei programmatori mediante insieme di API o ambienti di sviluppo.

Microkernel

Page 25: Sistemi Operativi Mobile

• Kernel Ibridi

[si differenziano dai microkernel puri per l'implementazione di alcune funzioni  aggiuntive al fine di incrementare le prestazioni.]I kernel ibridi sono essenzialmente dei microkernel che hanno del codice “non essenziale” al livello di spazio del kernel in modo che questo codice possa girare più rapidamente che se fosse implementato ad alto livello. Questo fu un compromesso adottato da molti sviluppatori di sistemi operativi prima che fosse dimostrato che i microkernel puri potevano invece avere performance elevate. Molti sistemi operativi moderni rientrano in questa categoria: Microsoft Windows è l’esempio più noto. Anche XNU, il kernel di Mac OS X, è di fatto un microkernel modificato.Alcune persone confondono il termine “kernel ibrido” con i kernel monolitici che possono caricare dei moduli dopo il boot. Questo non è corretto, poiché “ibrido” implica che il kernel in questione condivida concetti architetturali e meccanismi tipici sia dei kernel monolitici che dei microkernel, specialmente il passaggio di messaggi e la migrazione di porzioni di codice “non essenziale” a più alto livello, mantenendo a livello kernel solo il codice necessario per ragioni di prestazioni.Esempi di kernel ibridi:• Microsoft Windows NT che è usato su tutti i sistemi basati su NT• XNU kernel del Mac OS X

Page 26: Sistemi Operativi Mobile

Pregi e critiche

Il sistema Apple ha delle peculiarità di funzionamento che ne determinano una diversa fruizione delle applicazioni e dei dispositivi. Uno studio della Symantec evidenzia come questo sistema operativo sia per il 2011 più sicuro del maggiore avversario Android grazie alle sue peculiarità.Con l'aggiornamento del sistema alla versione 4.3, che introduceva un miglioramento del browser e della navigazione si è evidenziato come questi aggiornamenti non fossero abilitati per le applicazioni web (collegamenti internet), questo perché l'aggiornamento ha effetto solo per il browser e non per il sistema che utilizza un visualizzatore internet integrato, il problema è stato risolto con la versione 5 del sistema operativo.La particolarità di questo sistema è data anche dal blocco di alcune funzionalità, o in toto o in parte, come ad esempio il bluetooth che può essere usato solo per connettere dispositivi ausiliari, come ad esempio cuffiette auricolari, ecc.Apple tramite il suo store evita l'installazione di applicazioni non approvate, questo perché prima di essere approvate vengono vagliate e viene testata la loro sicurezza e un eventuale problematicità nel loro uso, così come la loro qualità. Questo rende più difficile l'installazione di applicazioni malevoli ma nel contempo limita la libertà dell'utente. I rappresentati del movimento open source criticano questo approccio ritenendolo troppo limitante per l'utente e ritengono che dei dispositivi così limitati non possano essere equiparati a dei personal computer.

Page 27: Sistemi Operativi Mobile

Windows Phone 7

Windows Phone è il sistema operativo per smartphone di Microsoft, che lo ha presentato al Mobile World Congress il 15 febbraio 2010. Si rivolge al mercato consumer invece del mercato enterprise come il suo predecessore, eliminando molte delle funzionalità di Windows Mobile in dotazione. È completamente differente da tutte le precedenti versioni di Windows Mobile, incompatibili con esso e che richiedono lo sviluppo di nuove applicazioni; supporta il multitouch, gli schermi capacitivi, ha una nuova interfaccia grafica molto simile a quella di Zune HD e riunisce in una sola piattaforma i contenuti di Xbox Live e Zune. Inoltre gestisce gli account di social network quali Facebook e Twitter, e possiede una nuova versione di Internet Explorer basata su Windows Internet Explorer 9. Questa versione di Windows Phone conterrà un'edizione di Mobile Office 2010, con Word, Excel, Powerpoint, OneNote e Sharepoint.Questo nuovo sistema operativo venne presentato con il nome di Windows Phone 7 Series; successivamente, per rendere il logo più snello e facile da ricordare, Microsoft ha deciso di eliminare il "Series".Microsoft aveva affermato che Windows Phone 7 sarebbe stato commercializzato in tempo per le vacanze natalizie del 2010. A seguito del lancio mondiale avvenuto l'11 ottobre 2010, in Europa il nuovo sistema operativo mobile è stato messo in commercio il 22 ottobre 2010, in concomitanza con l'uscita dei primi modelli di dispositivi targati LG, HTC e Samsung. Per il lancio negli USA si dovrà attendere novembre.A luglio 2010 è stata rilasciata la beta di Windows Phone Developer Tools, un pacchetto software gratuito per sviluppare applicazioni per Windows Phone 7, contenente Visual Studio 2010 Express per Windows Phone, Windows Phone Emulator, Silverlight per Windows Phone, Microsoft Expression Blend per Windows Phone e XNA Game Studio 4.0.

Page 28: Sistemi Operativi Mobile

Sviluppo del sistema operativoIl lavoro per la creazione di una nuova generazione di Windows Mobile è iniziato all'inizio del 2004 sotto il nome in codice di "Photon", ma il lavoro procedeva lentamente ed il progetto venne definitivamente cancellato. Nel 2008, la Microsoft ha riorganizzato i gruppi di lavoro per il Windows Mobile ed ha iniziato a lavorare sul nuovo sistema operativo. Il prodotto doveva essere lanciato nel 2009 con il nome di Windows Phone, ma molti ritardi hanno spinto la Microsoft a lanciare prima il Windows Mobile 6.5 in attesa del nuovo OS.Windows Phone 7 è stato sviluppato velocemente. Uno dei risultato è stato che i software sviluppati per le serie precedenti non funzionano sul nuovo sistema operativo. Larry Lieberman, capo sviluppo della Microsoft Mobile Developer Experience, ha dichiarato: "Se avessimo avuto più tempo e risorse, avremmo potuto fare qualcosa per quanto riguarda la retrocompatibilità." Lieberman ha dichiarato che la Microsoft ha provato a guardare al mercato dei cellulari in una maniera differente, con al singolo cliente finale in mente ed allo stesso tempo alle reti aziendali.

Interfaccia utente Windows Phone utilizza una nuova interfaccia utente, basata sul design di Windows

Phone 7, nome in codice Metro. La schermata principale, chiamata Schermata Start, è composta da "Live Tiles". I Tile sono collegamenti ad applicazioni, funzioni o oggetti individuali (come contatti, pagine internet, applicazioni o altro). Gli utenti possono aggiungere, spostare o eliminare i Tile. I Tiles sono dinamici e si aggiornano in tempo reale - per esempio, il tile di un account email mostrerà il numero di messaggi non letti, o un Tile può mostrare un aggiornamento costante del meteo.

Page 29: Sistemi Operativi Mobile

Molte caratteristiche di Windows Phone 7 sono organizzate in "hub", che combinano contenuti locali ed online attraverso l'integrazione di Windows Phone 7 con i principali social network come Facebook e Windows Live. Per esempio, il Pictures hub mostra le foto effettuate con la fotocamera del telefono e le foto utente di Facebook, il People hub mostra i contatti aggregati dalla rubrica telefonica, da Windows Live, Facebook, e Gmail. Dall'Hub l'utente può direttamente commentare gli aggiornamenti dei social network. Gli altri hub sono il Music Hub, il Video Hub (che integrano Zune), Giochi (che integra l'Xbox Live), Windows Phone Marketplace e Microsoft Office.Windows Phone 7 utilizza una tecnologia multi-touch. L'interfaccia utente di default di Windows Phone 7 ha un tema scuro che prolunga la durata della batteria sui monitor OLED perché i pixel completamente neri non emettono luce. L'utente può scegliere un tema chiaro al suo posto, e può anche scegliere tra tanti colori accesi. Gli elementi dell'interfaccia utente quali i tile sono mostrati nel colore scelto dall'utente. Applicazioni esterne possono essere automaticamente accoppiate a questi colori.

BrowserIl Windows Phone 7 utilizza una versione di Internet Explorer con un motore che è una via di mezzo tra quelli di IE7 e IE8".Internet Explorer su Windows Phone 7 permette all'utente di mantenere una lista di siti preferiti e tiles linking to web pages on the Start screen. Il browser supporta fino a 6 schede che possono essere caricate in parallelo. Altre caratteristiche includono la gestione multi-touch, una particolare interfaccia utente, l'animazione zoom in e zoom out, l'abilità di salvare immagini sulle pagine web, condividere pagine web via mail e supporto per le ricerche che permettono all'utente di ricercare una parola o una frase in una pagina web semplicemente selezionandola. Microsoft ha annunciato di voler aggiornare regolarmente i browser dei Windows Phone 7 e il suo motore di layout indipendentemente dall'aggiornamento dei sistema operativo Windows Phone.

Page 30: Sistemi Operativi Mobile
Page 31: Sistemi Operativi Mobile

Kernel MonoliticoL'approccio monolitico definisce un'interfaccia virtuale di alto livello sull'hardware, con un set di primitive o chiamate di sistema per implementare servizi di sistema operativo come gestione dei processi, multitasking e gestione della memoria, in diversi moduli che girano in modalità supervisore.Anche se ogni modulo che serve queste operazioni è separato dal resto, l'integrazione del codice è molto stretta e difficile da fare in maniera corretta e, siccome tutti i moduli operano nello stesso spazio, un bug in uno di essi può bloccare l'intero sistema. Tuttavia, quando l'implementazione è completa e sicura, la stretta integrazione interna dei componenti rende un buon kernel monolitico estremamente efficiente.Il più grosso svantaggio dei kernel monolitici è tuttavia che non è possibile aggiungere un nuovo dispositivo hardware senza aggiungere il relativo modulo al kernel, operazione che richiede la ricompilazione del kernel. In alternativa è possibile compilare un kernel con tutti i moduli di supporto all'hardware, al costo di aumentarne la dimensione anche di molto. Tuttavia i kernel monolitici più moderni come il Kernel Linux e FreeBSD possono caricare dei moduli in fase di esecuzione, a patto che questi fossero previsti in fase di compilazione, permettendo così l'estensione del kernel quando richiesto, mantenendo al contempo le dimensioni del codice nello spazio del kernel al minimo indispensabile.

Esempi di kernel monolitici:• I tradizionali kernel UNIX, quali ad esempio i kernel BSD. • Il kernel Linux • Kernel di ricerca come Agnix

• FreeBSD

Page 32: Sistemi Operativi Mobile

In una dimostrativa, la Microsoft ha dichiarato che gli utenti potranno visualizzare i video di YouTube sul browser. Cliccando sul video sulla versione mobile di YouTube il video sarà visualizzato su un'applicazione a se stante ed aggiungerà il nuovo video al Music + Video Hub.Una futura versione di Internet Explorer Mobile basata su Internet Explorer 9 è in sviluppo per il sistema operativo Windows Phone ed include una migliore visualizzazione dei supporti standard HTML, CSS e JavaScript, insieme ad una maggiore velocità.

E-mail Windows Phone 7 supporta Hotmail, Outlook, Yahoo! Mail, Gmail e molti altri servizi di posta attraverso i protocolli POP e IMAP. Per i principali sistemi di posta è possibile sincronizzare anche contatti ed attività. Gli utenti possono anche ricercare all'interno delle proprie caselle di posta ricercando per titolo, oggetto, mittente e ricevente.

Applicazioni OfficeL'"Office hub" organizza tutti i programmi e documenti in Microsoft Office. Microsoft Office Mobile fornisce l’interoperabilità tra Windows Phone 7 e la versione desktop di Microsoft Office. Word Mobile, Excel Mobile, PowerPoint Mobile, OneNote Mobile e SharePoint Workspace Mobile permettono al formato di file Microsoft Office ad essere visualizzati e modificati.Al Mobile World Congress del 2011, la Microsoft ha annunciato che Windows Phone supporterà la sincronizzazione dei documenti di Office SkyDrive dopo un aggiornamento previsto per la seconda metà del 2011.

SincronizzazioneIl software Zune controlla i contenuti sugli apparati dotati di Windows Phone 7 e Windows Phone 7 può sincronizzarsi con Zune anche wireless. Inoltre oltre ad accedere ai dispositivi dotati di Windows Phone 7, il software Zune può anche accedere allo Zune Marketplace per acquistare musica, video ed applicazioni per Windows Phone 7. Mentre la musica ed i video vengono conservati sia su computer che sul telefono, le applicazioni lo sono soltanto sul telefono, anche se vengono acquistate attraverso il software Zune. Il Software Zune può essere anche utilizzato per aggiornare i dispositivi dotati di Windows Phone 7. Anche se il software Zune non è disponibile per sistemi operativi Mac OS X, la Microsoft ha rilasciato un connettore per Windows Phone 7 che permette di sincronizzare i dispositivi con iTunes per Mac ed iPhoto.

Page 33: Sistemi Operativi Mobile

Aggiornamenti del softwareSecondo quanto dichiarato dalla Microsoft, gli aggiornamenti saranno inseriti nei Windows Phone users attraverso Microsoft Update, come nel caso di altri sistemi operativi basati su Windows. Microsoft ha intenzione di aggiornare direttamente ogni telefono dotato di Windows Phone 7. Il software, chiamato Windows Phone Update, esiste sia per il telefono (per piccoli aggiornamenti) che sul software Zune(per aggiornamenti maggiori attraverso cavo USB). Gli utenti riceveranno la notifica di collegare i proprio telefoni al pc se è necessario tale aggiornamento. Microsoft ha dichiarato che in futuro, tutti gli aggiornamenti, sia piccoli che grandi saranno possibili anche senza collegare il telefono al pc. Charlie Kindel, Program Manager per lo sviluppo del Windows Phone, ha confermato che il sistema di aggiornamento per Windows Phone 7 era già disponibile e che la Microsoft è "in una posizione in cui è possibile rilasciare aggiornamenti in tutta sicurezza".Microsoft ha pianificato un costante invio di aggiornamento minori che aggiungeranno caratteristiche durante l'anno e un grosso aggiornamento annuo.Tutte le applicazioni esterne possono essere aggiornate automaticamente attraverso il Windows Phone Marketplace.

Caratteristiche annunciati e storia degli aggiornamenti Microsoft ha annunciato una roadmaps per futuri aggiornamenti alla piattaforma Windows Phone. Il primo aggiornamento è stato rilasciato il 22 marzo del 2011 ed include il copia e incolla, un significante miglioramento della performance di apertura e chiusura delle applicazioni,miglioramento nel sistema di ricerca del Marketplace, e supporto CDMA.Microsoft ha anche dichiarato che sta lavorano con la Adobe per rendere funzionante l'Adobe Flash sui Windows Phone.L'11 febbraio del 2011 al Mobile World Congress, Steve Ballmer ha annunciato un aggiornamento importante per il Windows Phone 7 entro la fine del 2011,che includerà una versione mobile di Internet Explorer 9 che supporta gli stessi standard (ad esempio HTML5) e l'accelerazione grafica della versione per computer. Microsoft ha dimostrato che la velocità, utilizzando il browser IE9 mobile, è superiore a quella del iOS 4.2.1 con Safari su iPhone 4.[69][71] L'integrazione di Twitter sarà inserita nel People hub aggiungendosi agli aggiornamenti di status di Windows Live. Multi-tasking delle applicazioni delle terze parti sarà gestito da un task switcher, e l'aggiornamento permettera agli utenti di accedere a Windows Live SkyDrive direttamene dal Windows Phone 7. Alla conferenza internazionale MIX11, la Microsoft ha reso noto che la prossima versione di Windows Phone 7 avrà la gestione multitasking. Oltre al multitasking, miglioramenti chiave miglioreranno il trasferimento dei file, maggiore velocità nell'apertura e chiusura delle applicazioni, maggiore integrazione tra il sistema operativo la videocamera e il sensore di movimento, questo permetterà l'attivazione di applicazioni di realtà aumentata.

Page 34: Sistemi Operativi Mobile

Il 4 febbraio del 2011, la Microsoft ha annunciato che lo strumento di sviluppo software per Windows Phone sarà aggiornato per supportare le novità che saranno aggiunte attraverso il primo principale aggiornamento del sistema operativo Windows Phone 7 (nome in codice "NoDo").Dopo aver aggiornato lo strumento di sviluppo dei software, la Microsoft ha detto agli sviluppatori che la maggior parte delle loro applicazioni non avranno bisogno di essere ricompilate o ripreparate a causa dell'aggiornamento. L'8 maggio è stato svelato che Bing su Windows Phone riceverà una profonda revisione che aggiongerà Bing Audio, Bing Audio e Bing Navigation (aggiungendo la navigazione vocale). I Windows Phone avranno anche un supporto nativo per podcast e scrittura vocale per SMS. Windows Live Messenger sarà integrato direttamente sul People hub.IL 9 maggio del 2011, la Microsoft ha inviato gli inviti a molti blog tecnici per un "V.I.P. Preview" di Mango, si tratta del prossimo principale aggiornamento di Windows Phone soprannominato "Windows Phone 7.5“.

L’EVOLUZIONE• Windows Phone 7.5, Mango

Alla fine di settembre del 2011 la Microsoft ha rilasciato l'aggiornamento annuale definito Windows Phone 7.5 (o 'Mango') è il più grande aggiornamento dal lancio del sistema operativo. Anche se il sistema si autodefinisce con il codice versione 7.1, commercialmente è stato lanciato come versione 7.5 in tutti i materiali pubblicitari. L'aggiornamento era stato inizialmente annunciato a New York il 24 maggio dello stesso anno, quando la Microsoft aveva dato un profondo preview dell'aggiornamento, poco prima che Steve Ballmer annunciasse la presenza di oltre 500 novità.Microsoft ha iniziato il rilascio ufficiale di Windows Phone 7.5 contemporaneamente nel mercato statunitense e nel resto del mondo il 27 settembre del 2011.

Page 35: Sistemi Operativi Mobile

Android

Android è un sistema operativo per dispositivi mobili costituito da uno stack software che include un sistema operativo di base, i middleware per le comunicazioni e le applicazioni di base. Ha avuto successo perché alcune versioni sono state open source e perché è basato su kernel Linux.La piattaforma usa il database SQLite, la libreria dedicata SGL per la grafica bidimensionale e supporta lo standard OpenGL ES 2.0 per la grafica tridimensionale. Le applicazioni vengono eseguite tramite la Dalvik virtual machine, una macchina virtuale adattata per l'uso su dispositivi mobili. Android è fornito di una serie di applicazioni preinstallate: un browser, basato su WebKit, una rubrica e un calendario.

Le Applicazioni Le applicazioni sono la forma più generica per indicare software installabili su Android. Dato che nell' Android Market tali applicazioni vengono definite "apps", questo termine è ampiamente diffuso nella comunità di utilizzatori.Per motivi di sicurezza informatica, le apps possono essere scaricate e utilizzate mediante un servizio di distribuzione fidato, quindi un sito internet che fornisca sia l'applicazione stessa che le relative certificazioni (software). Per venire incontro alle necessità degli sviluppatori, è stata però prevista la possibilità di disattivare il controllo di tali certificati, attraverso una voce presente nel menu "Impostazioni" (Android versione 2.2) .

Page 36: Sistemi Operativi Mobile
Page 37: Sistemi Operativi Mobile

Uso corretto delle memorie esterneAndroid ha la caratteristica di accettare i dispositivi di memorizzazione esterni (SD card, pennine USB, ecc...) al pari di molti sistemi operativi per PC.Mentre non c'è bisogno di alcuna precauzione per il collegamento di questa memoria esterna al dispositivo Android, bisogna effettuare una certa procedura prima di scollegarla. Su Android 2.2 , bisogna cliccare sulla voce di menu "Impostazioni -> Scheda SD e memoria" e da qui scegliere la voce "Smonta scheda SD" oppure "Unmount U-disk" (Smonta disco USB). A questo punto può essere scollegata dal dispositivo.Il motivo della necessità di effettuare la procedura di smontaggio è che all'interno di tali memorie potrebbero esserci ad esempio documenti o software che l'utente sta utilizzando; appena una app richiede di accedere ai dati di tali file e questi non sono più disponibili, Android la chiude forzatamente.Un altro problema della rimozione "a caldo" di una memoria esterna, è che il salvataggio dei dati di una applicazione non avviene immediatamente ma dopo un certo tempo. Il rischio è quindi che quel salvataggio (ad esempio un documento scritto dall'utente) venga memorizzato in maniera parziale (divenendo spesso inutilizzabile) o che il file vada perso.

DocumentazioneAi fini della programmazione, il team di Android ha specificato nella documentazione ufficiale vari termini per definire i vari tipi di applicazioni.

Attività (activity)Le attività sono quelle applicazioni destinate a una interazione diretta con l'utente. Un esempio sono i videogiochi, le applicazioni per l'ufficio e i visualizzatori (reader) di E-book. Le attività vengono generalmente distribuite sotto forma di file .APK , vengono poi installate in delle cartelle nella memoria del dispositivo (o in una card estraibile), infine viene creata una icona per l'utente, che gli permetterà di eseguirla in qualsiasi momento. E' anche possibile disinstallare le attività mediante una utility integrata con Android.

Servizio (service)I servizi sono, al contrario, quelle applicazioni che per loro natura svolgono delle operazioni autonome e che vengono richiamati dalle attività al bisogno. Il sistema operativo fornisce alle applicazioni vari servizi già pronti all'uso, per ottenere l'accesso all'hardware o a risorse esterne (ad esempio dei web services di messaggistica). Un esempio di servizio è com.android.inputmethod.latin , ossia il componente che fa comparire la tastiera quando si seleziona (con i tasti o con un "tocco" sul touch-screen) un campo di input testuale. I servizi possono essere eseguiti o interrotti direttamente dall'utente, sebbene siano eventualità alquanto rare.

Page 38: Sistemi Operativi Mobile

Frammento (fragment) Il frammento è quella porzione di codice (quindi di applicazione) che gestisce la parte grafica, in base alle possibilità del dispositivo su cui è stato installato. Il problema dello sviluppatore è evidente quando si trova a dover sviluppare una applicazione che funzioni, ad esempio, sia su un tablet (generalmente questi hanno uno schermo touch-screen di grandi dimensioni) che su alcuni tipi di smartphone (che possono avere 2 schermi e non è detto che entrambi siano touch-screen). È stato allora deciso, dal team di Android, di creare il concetto di "fragments", ossia una classe tanto generica da permettere lo sviluppo di una applicazione con la parte grafica slegata a quella "decisionale", in modo da rendere agevole l'adattamento dell'applicazione alle varie situazioni. Il programmatore creerà vari frammenti della parte grafica e poi Android la ridisegnerà correttamente per il dispositivo in uso. L'alternativa per il programmatore sarebbe stato di scriversi da solo un framework che facesse lo stesso lavoro (e l'avrebbe dovuto fare per tutti i suoi progetti) oppure avrebbe dovuto creare più versioni, ognuna destinata a una tipologia di dispositivo, quindi costringendolo a riscrivere diverse parti del proprio software.

Page 39: Sistemi Operativi Mobile

Il kernel e le librerie di base Questi componenti non sono sostituibili; al massimo sono aggiornabili alcune parti per correggere eventuali problemi di sicurezza. Quando viene rilasciata una nuova versione di Android, significa che alcune di queste parti sono state aggiornate o sostituite.

Il file APK Il software viene solitamente distribuito sotto forma di pacchetto autoinstallante, quindi un file con estensione .APK . Questo non è altro che un file compresso, contenente il software (file con estensione .dex) le sue risorse (immagini, suoni ecc...) e alcuni file XML. L'utente medio non ha necessariamente bisogno di conoscere tale tipologia di file, dato che il dispositivo gestisce tutta la parte di installazione mediante web services come Android Market.All'interno di questo file c'è anche un certificato che permette l'installazione di un pacchetto .APK su un dispositivo Android se questo non è stato compromesso o revocato. Il certificato deve essere presente in qualsiasi pacchetto, altrimenti Android non installerà l'applicazione al suo interno. Il certificato viene creato dallo sviluppatore dell'applicazione, che può scegliere di crearne uno di "debugging" (quindi a uso interno) o di "mercato" (per la distribuzione) e può deciderne la sua diffusione delle copie (libera o limitata). Il distributore (per esempio Android Market) ci aggiungerà poi una sua chiave, che potrà successivamente revocare, se necessario. In caso di revoca, l'applicazione non è più installabile né eseguibile in nessun dispositivo Android. Se uno sviluppatore indipendente vuole poter distribuire un suo software con pacchetto .APK , senza passare per un web service certificato, può autocertificarsi il certificato. In tal caso, l'utente riceverà un avviso che sta installando un software di questo tipo ("self-signed"); a questo punto potrà annullare l'installazione o farla proseguire a suo rischio.

Le classi La classe è un concetto della programmazione a oggetti. Per semplificare, consiste nella suddivisione di un software in "componenti", questo per evitare di usare il vecchio paradigma della programmazione lineare, che consiste nello stilare una lista di istruzioni sequenziali che possono essere poco adattabili per l'aggiunta di ulteriori funzionalità in futuro. Su Android tutti i componenti sono catalogati come classi e richiamabili da altri componenti se il programmatore ne permette questa possibilità.Per fare qualche esempio, nella versione 3.0 livello 11 delle API di Android, le classi del package android.bluetooth permettono a uno sviluppatore indipendente di includere nella sua applicazione la possibilità di comunicare con la sua stessa applicazione (oppure un'altra) installata su un altro dispositivo mobile, senza i cavi ma solo via radio. Esiste anche il package android.gesture , con al suo interno le classi che permettono a una applicazione di ricevere le "gestures", ossia i tracciamenti di un dito che sfiora il touch-screen.

Page 40: Sistemi Operativi Mobile

Android SDKLe applicazioni di Android sono sviluppate all'interno di un framework, ossia di una struttura dati specifica. La struttura del framework è molto chiara se si utilizza l'ambiente di sviluppo (SDK) con Eclipse;l mancato utilizzo di Eclipse, tuttavia, non ci impedisce di scrivere applicazioni Android funzionanti.Le applicazioni Android sono caratterizzate da una certa dualità: parti dinamiche scritte in Java e parti statiche scritte in XML. Tipico delle parti statiche possono essere quelle caratteristiche che non cambiano durante l'esecuzione dell'applicazione, come per esempio il colore dello sfondo. Tipico delle parti dinamiche sono gli aspetti programmatici come per esempio la gestione degli eventi. Questa dualità è però solo apparente. Durante l'esecuzione, infatti, la Dalvik Virtual Machine (DVM) esegue sempre un programma. Per lo sviluppo delle applicazioni è disponibile una completa documentazione la quale, anche graficamente, riprende la struttura tipica della documentazione Java del sito Oracle.

La Dalvik Virtual MachineTramite l'SDK (o meglio: tramite gli strumenti utilizzati mediante l'SDK) trasformiamo la nostra applicazione Android in un codice intermedio chiamato bytecode; questo è esattamente quello che accade abitualmente in Java, ossia:Codice Java: compilazione: bytecode: VM -> esecuzione reale del programma Questo bytecode viene eseguito dal un programma chiamato macchina virtuale (Virtual Machine, VM). Negli ambienti Android non viene utilizzata la Macchina virtuale Java: è stata scritta una nuova VM chiamata Dalvik Virtual Machine (DVM). Ogni terminale Android ha la sua DVM, come descritto nell'architettura del sistema; il suo compito è solo questo: eseguire il bytecode. Avremo quindi la seguente catena di esecuzione:Applicazione Android: compilazione: bytecode: DVM -> esecuzione reale dell'applicazione Android L'idea è questa: essendo la DVM uguale per tutti i dispositivi Android, ogni applicazione può essere eseguita su ogni terminale, indipendentemente dal costruttore e dall'implementazione. La conseguenza di questa idea, che è anche una visione, è stata questa: molti costruttori di dispositivi mobili scelgono Android; in questo modo possono fornire ai propri utenti un ambiente condiviso da moltissimi altri utenti.

Page 41: Sistemi Operativi Mobile

Creazione, compilazione, emulazione Tramite l'SDK possiamo passare dalla descrizione della nostra applicazione alla sua effettiva esecuzione sia in emulazione, sia su un dispositivo concreto. Per descrivere l'applicazione al dispositivo prescelto si utilizza il file Manifest.xml Possiamo quindi affermare che un'applicazione è descritta completamente da una tripletta:

• Codice Java • Risorse statiche xml• Manifest.xml

Il codice Java viene compilato insieme all'xml per generare un file con estensione .apk: esso contiene il bytecode per la DVM. I passi successivi servono per installare il bytecode nel dispositivo (ed eseguirlo in emulazione).

Java Si afferma che il linguaggio Java per applicazioni Android sia il Java standard: esistono delle contestazioni a questa affermazione. Un dato di fatto: la virtual machine è diversa (Dalvik). Dal punto di vista del programmatore l'approccio cambia: stiamo programmando un terminale mobile che risponde necessariamente ad eventi (touch schermo, azioni da tastiera).Nella tipica applicazione Android non c'è un entry point (metodo "main") da dove normalmente un programma comincia a caricare le sue parti software e avviarsi: tutto è pensato per essere un "componente" pilotato dagli eventi ("Event Driven") dell'hardware o di altri componenti. Questo paradigma fa sì che il programmatore sviluppi per ogni hardware delle routine il più possibile indipendenti. Un vantaggio è che il sistema operativo potrà ottimizzare le risorse, ad esempio rinunciando a caricare componenti (e hardware) non supportati o non prioritari perché inutilizzati.

Page 42: Sistemi Operativi Mobile

Inoltre, i componenti possono condividere le loro funzionalità: se ad esempio un videogioco trova installato nel dispositivo un programma che ritocca le fotografie appena scattate con la webcam, può avviarlo (se l'utente glielo consente) per permettere all'utente di ritoccare tali foto, sceglierne una e "farsela passare" per scopi ludici. Il tutto con una interfaccia grafica perfettamente integrata e quindi senza tante aperture e chiusure di programmi. Ma soprattutto, il programmatore di videogiochi è così sollevato dall'onere di dover creare un sottoprogetto per implementare una funzionalità già esistente sotto altra forma.

Page 43: Sistemi Operativi Mobile

Risorse XML Parte dichiarativa contenente varie informazioni:• informazioni di layout • supporto multilingue Android Manifest XML

File che descrive l'applicazione al dispositivo.Firmware

Molti telefoni che utilizzano Android come OS possono ottenere (grazie al lavoro di alcune comunità, come quella di XDA) i permessi di root, essendo Android basato su kernel linux. Questo "sblocco" permette ai dispositivi di accedere a funzioni avanzate altrimenti inaccessibili e soprattutto permettono all'utente di cambiare il firmware del telefono (senza avere i permessi aggiuntivi è comunque possibile installare eventuali aggiornamenti firmware ufficiali del produttore del telefono, senza perdere la garanzia).Inizialmente tutto il lavoro si è concentrato sull'HTC Dream con firmware come Mikhael, JacHero, TheDudes e altri.Ad oggi la potenza dei firmware preinstallati solitamente non spinge gli utenti a sostituire i loro firmware con altri creati dalle comunità online, ma rimane comunque molto popolare il firmware CyanogenMod compatibile con molti terminali fra cui il Nexus One, l'HTC Magic e l'HTC Desire. Esistono raccolte di firmware come quella di AndroidPedia.

Critiche ComputerWorld ha riportato in un articolo che le condizioni d'uso di Android e dello store delle applicazioni prevedono che "nel caso in cui un qualsiasi prodotto violi l'accordo di distribuzione con gli sviluppatori, Google si riserva il diritto di rimuoverle da remoto su ogni dispositivo a propria discrezione”.Il 23 giugno 2010 Google è ricorsa a questa modalità per motivi di sicurezza e pulizia, dato che le applicazioni erano state create solo a scopo di ricerca.Un team di sviluppatori si è visto rigettare un'applicazione regolarmente inserita nell'Android Market. L'applicazione in questione, "WiFi Tether for Root Users", è dedicata al tethering (permette ai dispositivi di funzionare come veri e propri router WiFi per girare connettività su altri apparecchi). La motivazione è che T-Mobile (primo carrier ufficiale di Android) vieta il tethering, e quindi le applicazioni ad esso dedicate creano un conflitto di interessi.

Page 44: Sistemi Operativi Mobile

Le notizie hanno scatenato pesanti polemiche tra gli utenti, indignati dalla poca flessibilità dimostrata da Google, che fa pensare che il sistema non sia in realtà tanto "open" come viene presentato.Va detto comunque che, cambiando il sistema operativo del telefono, seppur andando incontro a possibili problemi legati soprattutto alla garanzia, diventa perfettamente possibile l'uso del suddetto tethering wi-fi.Il tethering wi-fi è stato introdotto ufficialmente nella versione 2.2 di Android, denominata anche "Froyo“.

Page 45: Sistemi Operativi Mobile

BlackBerry OSBlackBerry OS è un sistema operativo mobile proprietario, sviluppato da Research In Motion per la sua linea di smartphone BlackBerry. Il sistema operativo fornisce multitasking e supporta dispositivi di input specializzati che sono stati adottati da RIM, in particolare la rotellina (trackball) e più recentemente il trackpad e touchscreen. La piattaforma BlackBerry è forse più nota per il suo supporto nativo della posta elettronica aziendale attraverso MIDP 1.0 e, più recentemente, un sottoinsieme di MIDP 2.0, che consente di completare l'attivazione wireless e la sincronizzazione con Microsoft Exchange, Lotus Domino o Novell GroupWise, per la sincronizzazione di e-mail, calendario, attività, note e contatti (necessità l'attivazione del BlackBerry Enterprise Server). Il sistema operativo supporta anche il WAP 1.2. Gli aggiornamenti del sistema operativo possono essere messo a disposizione dai diversi operatori di telefonia mobile che supportano il BlackBerry tramite il caricamento del software (utilizzando l'applicazione da PC), anche in OTASL, quindi senza dover connettere il dispositivo al personal computer (tramite la funzione aggiornamento wireless). Sviluppatori di terze parti sono in grado di scrivere software (applicazioni) utilizzando le classi API disponibili per BlackBerry OS, anche se le applicazioni che fanno uso di determinate funzionalità devono essere firmate digitalmente, queste applicazioni possono essere aggiornate direttamente dal telefono tramite l'applicazione AppWorld. A partire dal 2011, molti sviluppatori utilizzano la piattaforma BlackBerry per sviluppare le loro applicazioni, a giugno 2011 la ricerca indica che circa il 45% degli sviluppatori di telefonia mobile utilizza la piattaforma.

Page 46: Sistemi Operativi Mobile

Mentre RIM sviluppa e rilascia le versioni aggiornate del suo sistema operativo per supportare ogni dispositivo, spetta ai distributori individuali decidere se e quando una versione sarà rilasciata ai propri utenti.Il primo sistema Blackberry si presenta con il cercapersone 850 ed è numerato 1.0; Mentre il primo sistema operativo per smartphone è numerato come 3.6 (3.6.0.87), fa la sua comparsa sul terminale 5810 della AT&T (operatore telefonico), ed è disponibile dal 4 marzo 2002 (7 gennaio 2004 per AT&T), questa prima versione è caratterizzata da un piattaforma software numero 1.4 (1.4.0.73), successivamente nel gennaio del 2005 si avrà la nuova versione 3.7 con la piattaforma 1.6; Nel febbraio 2005 uscì la versione 4.0 sempre con piattaforma 1.6, ma con diverse applicazioni, mentre successivamente si ha la versione 4.1 con piattaforma 2.0 e l'implementazione della geolocalizzazione tramite GPS, la quale venne seguita dalla versione 4.2 con la piattaforma 2.3, che per la prima volta integra i comandi vocali, che sono elaborati direttamente dal dispositivo; Nell'ottobre del 2007 uscì la versione 4.3Negli ultimi mesi del 2008 si ha l'uscita della versione 4.5, che introduce la possibilità di leggere e rendere le email HTML, mentre in precedenza potevano solo visualizzare il codice sorgente senza le immagini incorporate, viene inoltre introdotta la possibilità di registrare e inviare una nota vocale, inoltre si ha un aggiornamento del media player del BlackBerry, dove le liste di musica e video possono essere visualizzare tutti i file contemporaneamente o dando agli utenti finali la possibilità di applicare filtri per genere, artista o album, s'introduce il correttore degli errori d'ortografia, l'app Map offre anche i punti di interesse e si è introdotto l'aggiornamento over-the-air del dispositivo, si ha la possibilità di riprodurre in streaming i video, questa versione verrà seguita dalla 4.6, dalla 4.6.1, dalla 4.7 e dalla 4.7.1, le quali apporteranno delle migliorie minoriNegli ultimi mesi del 2009 si ha la versione 5.0 del sistema operativo che integra un browser web BlackBerry aggiornato con un render accurato di AJAX, l'elaborazione del JavaScript più veloce, tra cui il supporto widget di Google Gears e SQLite per Widgets BlackBerry. Per il servizio Push si ha la gestione dei messaggi e-mail, la gestione delle cartelle e-mail, la possibilità di visualizzare, modificare, salvare le stesse, inviare e ricevere e-mail con allegati documenti da condivisioni di file remoti. Vengono introdotte molte animazioni assieme alla nuova interfaccia grafica, inoltre si ha una nuova gestione dei messaggi SMS, che rendono la lettura più esemplificata e durante la scrittura delle stesse si ha a disposizione una nuova finestra per l'inserimento delle emoticon[11], inoltre a partire dalla metà del 2010 viene implementata la geolocalizzazione tramite le celle telefoniche.

Page 47: Sistemi Operativi Mobile

Ad aprile 2010 RIM ha annunciato il nuovo BlackBerry OS versione 6.0, che è stato rilasciato nel 3° trimestre 2010; con questa nuova versione, si è migliorata la navigazione internet, sia sotto il punto di vista della compatibilità (compatibile con HTML5) che della velocità di navigazione, grazie al passaggio al motore di render WebKit, ma si differenzia anche per la nuova interfaccia grafica, ricerca universale, l'introduzione di menu popup sensibili al contesto operativo e il Social Feeds, che permette di gestire in unica soluzione i contenuti provenienti da tutti i principali social network, tra cui anche posta elettronica e SMS, inoltre a metà stagione 2011 viene implementata la geolocalizzazione tramite la rete WiFi.Le voci di un sistema operativo serie 6.1 sono iniziate a circolare nel 2011, insieme alle immagini del nuovo software. Il 2 maggio 2011 RIM ha annunciato che tale sistema prenderà il nome di BlackBerry OS 7, con rilascio presunto nell'estate del 2011. RIM ha annunciato che i dispositivi attuali non potranno essere aggiornati a BlackBerry OS 7. RIM ha anche annunciato il rilascio di nuovi dispositivi touch della serie Bold (Blackberry Bold 9930 e 9900) che supporterebbero BlackBerry OS 7. Questo nuovo sistema introduce ricerche ad attivazione vocale (sia per la ricerca web che per i file all'interno del dispositivo) e il miglioramento del browser (40% più veloce rispetto al precedente) che ora ha come caratteristica un compilatore JavaScript JIT (Just-in-time) e il supporto del video in HTML5.

Page 48: Sistemi Operativi Mobile
Page 49: Sistemi Operativi Mobile