Corso di Laurea Specialistica in Ingegneria delle Telecomunicazioni

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Corso di Laurea Specialistica in Ingegneria delle Telecomunicazioni"

Transcript

1 UNIVERSITÀ DEGLI STUDI DI CAGLIARI FACOLTÀ DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria delle Telecomunicazioni ATTACCHI AVANZATI SU PIATTAFORMA ANDROID: STUDIO, SVILUPPO E IMPLEMENTAZIONE DI SOFTWARE DELIBERATAMENTE VULNERABILE RELATORE: Prof. Ing. Giorgio Giacinto TESI DI LAUREA DI: Simone Moro CO-RELATORI: Ing. Igino Corona Ing. Davide Maiorca ANNO ACCADEMICO 2012/2013

2 A mia mamma Combatti! Perché non ci sarebbero grandi guerrieri senza grandi battaglie!

3 Sommario Introduzione... 5 Glossario... 8 Capitolo Piattaforma Android - Architettura Introduzione ad Android Architettura di Sistema Meccanismi di Comunicazione Inter-Processo Componenti Fondamentali delle Applicazioni Sistema dei Permessi di Android Versioni di Android, Diffusione e Controversie Capitolo Vulnerabilità su Piattaforma Android Introduzione alle Minacce di Sicurezza su Android Malware vs Vulnerabilità Le Vulnerabilità: un nemico subdolo per la sicurezza informatica Tipologie di Vulnerabilità Vulnerabilità di Sistema Vulnerabilità di Applicazione Capitolo Tipologie di Vulnerabilità di Applicazione Introduzione alle Vulnerabilità di Applicazione Connessioni non sicure Archiviazione non sicura

4 3.4 Logging non sicuro Crittografia non robusta Utilizzo non sicuro della memoria Vulnerabilità dei Content Provider e SQLite Injection Cross-Application-Exploit e Mercury Framework La Risposta di Google: Google Bouncer Capitolo Sviluppo e pubblicazione di Vulnware Introduzione ai Vulnware Vulnware e Malware per Android: così vicini, così distanti SMS 1 Click Backup Un applicazione deliberatamente vulnerabile Elenco Vulnerabilità di SMS 1 Click Backup Capitolo Sistemi di Contromisura Introduzione ai Sistemi di Contromisura Substrato vulnerabile Android e Sistemi di Contromisura Contromisure a livello di SDK Contromisure a livello di Distribuzione Contromisure a livello di interfaccia di Esecuzione Conclusioni Bibliografia Lista delle Figure e delle Didascalie Lista delle Tabelle

5 Introduzione Nell ambito della sicurezza informatica si presta sempre particolare attenzione a non rimanere un passo indietro rispetto alle trasformazioni costanti introdotte dalle nuove tecnologie. L innovazione in ambito tecnologico e informatico porta fisiologicamente con sé, oltre che una gran dose di entusiasmo e ottimismo, una serie di problematiche, apparentemente intangibili ai più, al di sopra delle quali si vanno spesso a sviluppare delle minacce particolarmente importanti per utenti e aziende. Negli ultimi anni in particolare abbiamo assistito al decollo del mercato dei dispositivi mobili intelligenti, gli smartphone, che hanno rivoluzionato il modo di comunicare, pensare e interagire con il mondo circostante. Essi si sovrappongono in maniera perfettamente complementare alle reti sociali e al nuovo modo di concepire l interazione e la condivisione di pensieri e contenuti offerto da Internet e da un web che sembra essere sempre più vicino all inizio della sua terza fase storica. In questo contesto in costante mutazione, l occhio di chi sa scrutare al di là della semplice innovazione è continuamente pronto a setacciare i punti oscuri che si celano tra i circuiti e le righe di codice delle sempre più complesse architetture attuali. Così, mentre ricercatori, produttori ed esperti, attraverso grandi sforzi congiunti nella direzione di una maggiore sicurezza, sono spesso riusciti a limitare notevolmente l impatto di alcune tipologie tradizionali di minacce, i nuovi pirati informatici si sono rivolti sempre più verso nuove frontiere, talvolta più semplici ed efficaci, 5

6 INTRODUZIONE direttamente correlate alle innovazioni e al modo in cui esse vengono recepite. Sia nel mondo dei Personal Computer che in quello dei dispostivi mobili, l attenzione si sta spostando sempre più verso categorie particolarmente subdole di minacce, perpetrate in maniera difficilmente identificabile in quanto strettamente interconnesse con comportamenti apparentemente legittimi e innocui del software. In particolare appaiono di forte interesse tutte le nuove tecniche di attacco che in qualche modo tentano di dissimulare l esistenza dello stesso, all interno di contenitori apparentemente puliti. Questo tipo di tecniche, definite steganografiche, pur non rappresentando un innovazione in termini assoluti, potranno ora contare sulla presenza di nuovi contenitori che permetteranno di veicolare gli attacchi in maniera più potente ed efficace. Se infatti fino a poco tempo fa la steganografia veniva utilizzata principalmente per la realizzazione di canali di comunicazione oscuri, rappresentati quasi sempre da contenuti multimediali apparentemente puliti, ora il veicolo potrebbe diventare il software stesso, che potrà nascondere vulnerabilità e minacce di non semplice individuazione, appositamente inserite dagli sviluppatori all interno di un involucro applicativo perfettamente funzionante. Quello appena descritto è uno scenario che, a nostro parere, trova una particolare valvola di sfogo all interno di un contesto mobile, nel quale software-house, sviluppatori indipendenti e veri e propri cybercriminali possono usufruire degli stessi canali di distribuzione, e possono accedere in maniera semplice ai dispositivi e ai dati personali dei singoli utenti. Perciò, se è vero il detto per cui..la mano che crea può anche distruggere.., bisognerà essere particolarmente cauti nel riuscire a identificare e a limitare questo tipo di minacce, senza dare più per 6

7 SIMONE MORO UNIVERSITÀ DI CAGLIARI FACOLTÀ DI INGEGNERIA DELLE TELECOMUNICAZIONI scontata la buona fede degli sviluppatori nella creazione di software vulnerabile. Come possono essere realizzati degli attacchi di questo tipo? I sistemi di contromisura attuali sono pronti ad identificare questa categoria di minacce? In che modo esse si potranno prevenire? In questo lavoro si tenterà di dare delle risposte a queste domande, realizzando, attraverso un approccio teorico e pratico, un vero e proprio proofof-concept di quanto appena esposto, con riferimento alla piattaforma Android 1. Cagliari, luglio 2013 Simone Moro 1 Parte dei concetti espressi in questo testo, in particolare nel capitolo 3, 4 e 5, richiedono una conoscenza di base dei concetti di programmazione Java, con particolare riferimento al framework di sviluppo Android. Per un eventuale studio e/o approfondimento degli stessi si rimanda al testo citato in [45]. 7

8 GLOSSARIO Glossario ACID Acronimo di Atomicity, Consinstency, Isolation e Durability. Si tratta di quattro proprietà logiche che, all interno di un database, devono essere soddisfatte dalle transazioni, affinché queste operino in modo corretto sui dati. ADB Android Debug Bridge, driver offerto dall SDK di Android che permette la comunicazione tra dispositivo e Personal Computer. Viene utilizzato principalmente per operazioni di debug. App Diminutivo di applicazione, talvolta usata come sinonimo di essa all interno del testo, ma riferita principalmente ad un contesto mobile. Le app offrono una struttura piuttosto semplificata rispetto alle applicazioni normali, in termini di utilizzo, velocità e facilità di installazione. Vengono generalmente installate a partire da uno store che si occuperà di verificarne la compatibilità con il dispositivo richiedente. ASLR Acronimo di Address Space Layout Randomization. Fa riferimento a una tecnica di disposizione casuale, all interno dello spazio di indirizzamento di un processo, delle porzioni di codice relativo a heap, stack, librerie etc. Auth-token Codice di autorizzazione, ottenuto da un client durante un processo di autenticazione col server, utilizzato per i successivi accessi all interno di una finestra temporale limitata. Background Termine generalmente utilizzato nel testo per indicare i processi in esecuzione che non godono del focus dell interfaccia grafica. Bad-pratice Termine usato nel testo per indicare una cattiva pratica di programmazione. 8

9 SIMONE MORO UNIVERSITÀ DI CAGLIARI FACOLTÀ DI INGEGNERIA DELLE TELECOMUNICAZIONI Best-pratice Termine usato nel testo per indicare una pratica di programmazione raccomandabile. Boot Termine utilizzato in generale per indicare la fase di avvio di un sistema. Brick Termine che indica un dispositivo che, per gravi problemi di configurazione software, generalmente legate ad un aggiornamento del firmware non andato a buon fine, non riuscirà più ad essere utilizzato. Buffer overflow Generica vulnerabilità riferita ad un programma che non valida opportunamente la lunghezza di un campo di dati in ingresso e che lo memorizza all interno di un buffer di lunghezza predefinita. Se il campo in ingresso è di dimensioni maggiori rispetto al buffer di salvataggio, si permetterà la scrittura delle porzioni in eccedenza all interno di aree contigue di memoria. Questo porterà a delle conseguenze imprevedibili sul programma, generalmente sfruttate dagli attaccanti per scopi malevoli. Carrier telefonico. Termine utilizzato nel testo come sinonimo di Provider Copy-on-write Strategia di memorizzazione che permette di ridurre le operazioni di duplicazione di determinate aree di memoria. In generale quando sarà necessaria la duplicazione di un area di memoria, essa non avverrà effettivamente finché una delle due istanze di essa non ne necessiterà la modifica. Le due copie saranno infatti indistinguibili fino a questo momento e potranno essere associate ad uno stesso spazio di indirizzi fisici. Cracker Hacker non etico, che cerca di trarre profitto dall elusione dei sistemi di sicurezza. Data-Leakage Letteralmente fuoriuscita di dati, termine utilizzato per indicare la potenziale esposizione dei dati verso soggetti non autorizzati. 9

10 GLOSSARIO DEP Acronimo di Data Execution Prevention. Esso si riferisce ad un sistema di sicurezza utilizzato dai sistemi operativi moderni per prevenire l esecuzione di determinati exploit, attraverso tecniche hardware e software, che mirano a segnare come non eseguibili determinate porzioni di memoria. Device Termine usato nel testo come sinonimo di dispositivo. DoS Acronimo di Denial of Service. È un attacco informatico che causa generalmente un disservizio su un determinato sistema informatico. Dump/dumping Termine utilizzato in questo testo per indicare la duplicazione di aree di memoria fisica corrispondenti ai processi in esecuzione, direttamente su un supporto. Exploit Codice che sfrutta un bug o una vulnerabilità. Flashing Meccanismo utilizzato per sovrascrivere parti di memoria non-volatile (ad esempio un sistema operativo). Flood Invio a grande velocità di pacchetti e/o dati non pertinenti utilizzato per abusare di un sistema, al fine di perpetrare un attacco di tipo DoS o spam. Foreground Parola inglese utilizzata nel testo per definire un attività in primo piano, che fa uso dell interfaccia grafica. È inteso perciò come il contrario di background. Fork Chiamata di sistema utilizzata da sistemi Unix-Like per indicare il meccanismo per cui un processo può creare una copia di se stesso in memoria. Spesso viene implementato attraverso tecniche di copy-on-write. Framework Struttura logica utilizzata per offrire supporto alla creazione di un determinato software. Viene spesso utilizzato nel testo per indicare l Android-Framework, ovvero l insieme del relativo livello di astrazione dello stack di sistema e degli strumenti che 10

11 SIMONE MORO UNIVERSITÀ DI CAGLIARI FACOLTÀ DI INGEGNERIA DELLE TELECOMUNICAZIONI offrono supporto alla realizzazione di codice Java specifico per Android. Google Play Market ufficiale di Google, utilizzato per scaricare e installare le applicazioni mobili create dagli sviluppatori attraverso l Android SDK e/o NDK, e sottomesse a Google, che ne dovrà approvare la pubblicazione. Conta attualmente circa applicazioni, oltre a una serie di contenuti multimediali come brani musicali, film, libri e riviste online. Sostituisce l Android market, che prevedeva unicamente la presenza di applicazioni Android. Hacker Persona che si impegna nell'affrontare sfide intellettuali per aggirare o superare creativamente le limitazioni che gli vengono imposte, non limitatamente ai suoi ambiti d'interesse (che di solito comprendono l'informatica o l'ingegneria elettronica), ma in tutti gli aspetti della sua vita 2. In generale l hacker non è un criminale informatico, la cui descrizione è invece riassunta dal termine cracker. Heap Area dati presente all interno dello spazio di un processo. In esso vengono allocate le variabili in maniera dinamica da un processo in esecuzione. Heap-Overflow Tecnica di buffer-overflow utilizzata ai danni delle porzioni di memoria dell heap. Input-Validation Termine riferito nel testo to a una serie di vulnerabilità che, all interno di un processo in esecuzione, non validano in maniera efficace un particolare input, portando perciò il processo a funzionare in maniera anomala o non prevista

12 GLOSSARIO JVM Java Virtual Machine, macchina virtuale utilizzata dalle tradizionali applicazioni Java. Marshaling Processo di trasformazione della rappresentazione della memoria di un oggetto in una forma che sia adattabile a una sua memorizzazione in supporti logici/fisici diversi. Viene utilizzato nel testo soprattutto per indicare la comunicazione tra diverse porzioni di un architettura software di un sistema operativo. Matching Termine inglese per indicare una corrispondenza tra due campi appartenenti a strutture diverse. Metasploit Project Progetto di sicurezza informatica utilizzato per il penetration-testing, conosciuto anche per il suo sotto-progetto Metasploit-Framework. Quest ultimo è uno strumento utilizzato per l esecuzione e il test di diversi moduli di exploit verso macchine remote. MITM Acronimo di Man In The Middle, ovvero una tecnica di attacco in cui l attaccante riuscirà a porsi nel mezzo di una comunicazione tra due parti, le quali non avranno modo di sapere se la comunicazione sia realmente intercettata o meno. Può essere di tipo attivo o di tipo passivo, a seconda delle operazioni svolte dall attaccante. Nel primo caso il traffico intercettato viene parzialmente o interamente modificato dall attaccante, nel secondo caso vengono attuate unicamente operazioni di sniffing. NaN Tipologia di dato numerico che rappresenta un valore indefinito, utilizzato specialmente nei calcoli in virgola mobile. NDK Acronimo di Native Development Kit, si riferisce a un insieme di strumenti messi a disposizione per gli sviluppatori di Android che permetteranno la creazione di applicazioni attraverso l utilizzo di linguaggi nativi come C e C+. Netcat Celebre software a riga di comando utilizzato per l analisi e la creazione di connessioni remote tra diversi sistemi. 12

13 SIMONE MORO UNIVERSITÀ DI CAGLIARI FACOLTÀ DI INGEGNERIA DELLE TELECOMUNICAZIONI Nop Acronimo di No-OPeration. Istruzione generalmente presente nella maggior parte delle architetture. Fa sì che la CPU non esegua alcuna istruzione per un certo numero di cicli di clock. Nopsled Insieme di istruzioni NOP utilizzate al fine di riempire l heap di un processo affinché, in sistemi che prevedano una disposizione pseudo-casuale delle variabili in memoria (come meccanismo di sicurezza) si riesca comunque ad eseguire una particolare routine. Il processo eseguirà infatti una serie di istruzioni NOP finché non verrà letta la prima istruzione contenente codice malevolo di cui non si poteva prevedere la posizione all interno, ad esempio, dell heap. NX-Protection Acronimo di Never execute protection, che si riferisce alle tecnologie (generalmente hardware) utilizzate per implementare tecniche di DEP, attraverso l utilizzo di un bit che valuterà per ogni regione di memoria se il contenuto di questa potrà essere utilizzato come istruzioni dal processore o se invece essa contiene unicamente dati utente. On-the-fly Locuzione inglese usata nel testo per indicare perlopiù l analisi o la creazione di routine generate dinamicamente a tempo di esecuzione. Open Handset Alliance Gruppo di 84 aziende produttrici di smartphone o di componenti per i dispositivi mobili. Essa collabora con Google per lo sviluppo di Google Android e per la definizione di Device Android Compatibile. Open source Filosofia di distribuzione del codice sorgente del software per cui gli autori ne permettono l uso, lo studio e l apporto di modifiche da parte di altri programmatori. Viene solitamente implementata grazie alla creazione di una serie di specifiche licenze che ne regolamentano più in dettaglio gli aspetti normativi legati alla modifica e alla redistribuzione/commercializzazione del software. 13

14 GLOSSARIO OS Acronimo di Operating System, utilizzato perciò come sinonimo di sistema operativo. Package Collezione di classi o interfacce java. Generalmente ogni app avrà un proprio package. Parcels Contenitore di messaggi risultanti dalle operazioni di marshaling. Porting Termine riferito solitamente alla conversione di un applicazione da una piattaforma ad un altra. Provider Usato nel testo per indicare le compagnie telefoniche. Reverse-remote-shell Shell remota creata in maniera inversa (ovvero sarà il computer remoto a connettersi a quello dell attaccante). Revision Termine utilizzato nel testo per indicare una versione aggiornata di una particolare versione di Android, generalmente rilasciata per la correzione di bug critici. ROP Acronimo di Return-oriented programming. È una tecnica di exploit che permette di aggirare protezioni basate sul DEP. Anziché utilizzare codice iniettato attraverso tecniche di overflow l attaccante utilizzerà dei gadget, ovvero delle istruzioni pre-caricate nello stack che, utilizzate nella maniera opportuna, permetteranno di controllare l esecuzione di un particolare processo. RPC Acronimo di Remote Procedure Call, chiamata di procedura remota. SDK Software Development Kit. È lo strumento di sviluppo fornito per creare la maggior parte delle applicazioni Android. Stack overflow Tecnica di buffer-overflow mirata alla manipolazione dello stack. 14

15 SIMONE MORO UNIVERSITÀ DI CAGLIARI FACOLTÀ DI INGEGNERIA DELLE TELECOMUNICAZIONI TLS/SSL Acronimi di Transport Layer Security / Secure Sockets Layer. Si tratta di diverse versioni di protocolli crittografici utilizzati per garantire una comunicazione sicura end-to-end su reti TCP-IP, operando al di sopra del livello di trasporto. Unmarshaling Contrario di Marshaling. Upgrade Sinonimo di aggiornamento. Use-after-free Condizione di errore in cui viene utilizzato un puntatore già precedentemente liberato attraverso l istruzione free. Virtual Machine Macchina virtuale. Contesto logico che rappresenta una astrazione software di una vera e propria architettura fisica. XSS CrossSite-Scripting. Scripting. Vulnerabilità tipica dei siti web dinamici, che permetterà a un attaccante, per via di una validazione non corretta dei parametri inseriti tipicamente all interno di un form, di iniettare del codice che verrà poi eseguito dalle vittime lato client. 15

16 1.1 INTRODUZIONE AD ANDROID Capitolo 1 Piattaforma Android - Architettura 1.1 Introduzione ad Android Android è un sistema operativo mobile che a partire dal 2008 ha rivoluzionato il mercato degli smartphone e dei tablet 3. Grazie al supporto di Google, che ha rilevato l azienda nel 2005, e della Open Handset Alliance, il progetto Android si è sviluppato rapidamente guadagnando fette di mercato sempre più ampie e ottenendo il supporto di gran parte dei produttori hardware di dispositivi mobili. La struttura del sistema operativo è prettamente Open Source, fatta eccezione per alcune versioni intermedie che sono state distribuite direttamente compilate. Puntualmente Google rilascia nuove versioni del proprio sistema operativo, indicandole attraverso un numero di versione e un friendly-name. Al momento della stesura di questo documento Android è giunto alla versione (Jelly Bean). Il mantenimento e lo sviluppo di Android sono garantiti dall Android Open Source Project (AOSP), che tra i suoi compiti ha 3 N.B. ci riferiremo in questo testo a dispositivi mobili che supportano il sistema operativo Google Android. Talvolta indicheremo genericamente questo tipo di dispositivi come smartphone, sebbene ci riferiremo indifferentemente anche a tablet, phablet o qualsiasi altra categoria hardware supportata da Android. Non è possibile però garantire che le considerazioni effettuate all interno del testo siano valide per dispositivi che, pur supportando Android, non implementeranno funzioni di telefonia, come ad esempio accade per diversi modelli di tablet presenti in commercio. 16

17 CAPITOLO 1 PIATTAFORMA ANDROID - ARCHITETTURA quello di definire il protocollo di un dispositivo Android Compatibile, in grado di supportare pienamente il Sistema Operativo e di eseguire le applicazioni create dagli sviluppatori attraverso l Android SDK e NDK. Il marchio Google Android è applicabile solo per i dispositivi che rispettano il CDD (Compatibility Definition Document), che attesta, oltre che la compatibilità, la possibilità di poter usufruire delle app proprietarie di Google, tra le quali è compreso anche il market Google Play [1]. Esso è attualmente il più ampio e conosciuto Store di applicazioni e contenuti per il sistema operativo, con una disponibilità di oltre app a febbraio Android viene distribuito con licenza Apache2.0.. Questo permetterà a chiunque la modifica e la redistribuzione dello stesso, senza particolari vincoli legati alla divulgazione del codice sorgente o all eventuale commercializzazione del software modificato. I livelli più bassi dello stack del sistema operativo si basano tuttavia su versioni di Linux che vengono distribuite con licenza GPLv2, obbligando perciò i produttori al rilascio del codice sorgente del Kernel anche su versioni di Android closed-source. 1.2 Architettura di Sistema Android ha un architettura che si snoda su diversi livelli di astrazione. Lo stack è composto principalmente da quattro livelli: 1. Linux Kernel Layer; 2. Native Layer; 3. Application Framework Layer; 4. Applications Layer. Ogni livello ha il compito di nascondere l architettura sottostante ai livelli di astrazione superiori, raggruppando determinate funzionalità del sistema operativo [2]. 17

18 1.2 ARCHITETTURA DI SISTEMA Kernel Linux Figura 1 - Kernel Linux Layer Al livello più basso dell architettura troviamo il Kernel Linux. Android utilizza le versioni 2.6 e 3.x del kernel, rivisitate e modificate da Google per un ottimizzazione su piattaforma mobile. Esso si occuperà della gestione dei processi, delle risorse hardware e della creazione di strutture software fondamentali come il meccanismo di comunicazione inter-processo basato sul Binder Driver. Android Version Linux Kernel Version (Cupcake) (Donut) (Froyo) (GingerBread) (Honeycomb) x (Ice Cream Sandwich)

19 CAPITOLO 1 PIATTAFORMA ANDROID - ARCHITETTURA 4.1./4.2 (Jelly Bean) Tabella 1 - Versioni di Android e Kernel Linux utilizzato Library Layer Figura 2 Libraries Layer Il Library Layer crea un interfaccia tra il kernel e i livelli superiori. Contiene delle implementazioni di alcune librerie C/C++ che non interagiranno direttamente con l hardware, ma che costituiranno delle strutture essenziali per i livelli di astrazione superiori. In questo livello troveremo una serie di librerie Open Source utilizzate per determinati scopi: Surface Manager: : gestore della composizione delle finestre sullo schermo; SGL (Scalable Graphics Library): libreria utilizzata per il rendering grafico bidimensionale; OpenGL ES: : sottoinsieme delle librerie OpenGL che ottimizza la grafica 3D per dispositivi mobili; 19

20 1.2 ARCHITETTURA DI SISTEMA Media Framework: librerie utilizzate per la gestione dei contenuti multimediali; Free Type: Libreria utilizzata per il rendering vettoriale dei font; Webkit: Motore di rendering per le pagine web; Libc: viene utilizzata da Android una versione personalizzata della libreria standard di C, chiamata Bionic Library, che implementa molte feature della libreria standard C ottimizzate per i dispositivi mobili; SQLite: Libreria che implementa un DBMS relazionale ACID utilizzabile dalle applicazioni del dispositivo. L SQLite permetterà infatti la creazione di una base di dati all interno di un unico file. SQLite, per via della sua leggerezza ed efficienza, ben si presta all utilizzo da parte di dispositivi mobili, per i quali risulterebbe inadatta l implementazione di un sistema DBMS tradizionale di tipo client/server; Open SSL: implementazione Open Source dei protocolli crittografici TLS e SSL; Application Framework Layer Figura 3 - Application Framework Layer A livello di framework troviamo tutti i componenti fondamentali utilizzati dalle diverse applicazioni Android incapsulati sotto forma di oggetti Java. Al Framework Layer è delegata la gestione delle 20

21 CAPITOLO 1 PIATTAFORMA ANDROID - ARCHITETTURA funzionalità di alto livello, facilmente utilizzabili dagli sviluppatori attraverso i kit di sviluppo (SDK) rilasciati periodicamente da Google per le diverse versioni del sistema operativo. Faranno parte dell Application Framework Layer alcuni componenti fondamentali, illustrati nella figura precedente, ognuno dei quali persegue determinati scopi: Activity Manager: : gestione del ciclo di vita di un applicazione Android. Window Manager: organizzazione dello schermo e degli spazi di visualizzazione. Questi saranno perciò disegnati e visualizzati maniera trasparente rispetto all applicazione in esecuzione. View System: creazione e gestione delle View, che rappresentano il componente fondamentale per la costruzione delle interfacce utente nel sistema operativo Android. Package Manager: gestione dei diversi package installati all interno del dispositivo e dei relativi permessi. Resource Manager: : gestione delle risorse dichiarate e implementate da ogni applicazione. Esse sono i contenuti statici (ad esempio immagini, layout, stringhe etc.) che grazie al Resource Manager verranno referenziati opportunamente in fase di compilazione. Notification Manager: controllo e notifica degli eventi attraverso l utilizzo di meccanismi di segnalazione hardware o software. Content Provider: : condivisione di dati tra le diverse applicazioni. Location Manager: : gestione delle funzionalità di localizzazione, attraverso l interazione con il GPS o le celle degli operatori mobili. Telephony Manager: controllo delle chiamate in entrata e in uscita del telefono. 21

22 1.2 ARCHITETTURA DI SISTEMA Applications Layer Figura 4 Applications Layer Il livello applicativo comprende tutte le applicazioni, di sistema o utente, installate o in esecuzione nel dispositivo. Allo sviluppatore Android che crea applicazioni attraverso l SDK sarà perciò completamente trasparente l architettura sottostante. Egli dovrà occuparsi unicamente di creare codice Java tenendo conto degli oggetti e delle peculiarità della piattaforma. È tuttavia possibile utilizzare e compilare librerie scritte in C, C++ o in altri linguaggi attraverso l Android Native Development Kit (NDK). L utilizzo di librerie native è consigliato soprattutto per applicazioni che dovranno estendere funzionalità non presenti nell SDK, ottimizzare componenti di basso livello o svolgere task ben definiti che richiedano un utilizzo intensivo della CPU, con esigenze di memoria non necessariamente elevate. L NDK ben si presta perciò ad applicazioni per il signal processing o la simulazione grafica. L utilizzo improprio dell NDK aumenterà notevolmente la complessità dell applicazione e andrebbe sempre evitato nel caso in cui le funzionalità richieste possano essere inserite in maniera efficace attraverso l SDK. Spesso gli sviluppatori utilizzano in modo improprio le librerie native per effettuare il porting di applicazioni scritte per altre piattaforme. Questa pratica è poco consigliata anche per i possibili problemi di compatibilità dovuti alla diversa implementazione della libreria standard C in Android. 22

23 CAPITOLO 1 PIATTAFORMA ANDROID - ARCHITETTURA Runtime Layer Figura 5 - Android Runtime Layer Il Runtime-Layer è posto tra il secondo e il terzo livello dello stack di sistema. Al suo interno troviamo principalmente la Dalvik Virtual Machine e le Librerie di Core che verranno allocate e gestite dalla stessa macchina virtuale. Dalvik Virtual Machine: la DVM è una macchina virtuale molto simile alla tipica JVM di Java. Essa tuttavia non legge direttamente Bytecode, ma una versione ottimizzata di questo, il Dalvik-Bytecode o.dex (Dalvik Executable). L architettura della DVM è stata studiata in maniera tale da ottimizzare le prestazioni su dispositivi mobili rispetto alla JVM. Presenta perciò: - un architettura basata sui registri (la JVM è basata sullo stack). Gli opcode della DVM non possono infatti accedere direttamente allo stack, ma lavoreranno sui 2^16 registri disponibili, nei quali verranno memorizzate le variabili; - un ottimizzazione per scarse richieste di memoria; - la possibilità di eseguire contemporaneamente diverse istanze della Virtual Machine; - La delega di tutti i meccanismi di threading, protezione e isolamento dei processi al sistema operativo sottostante [3] [4]. 23

24 1.2 ARCHITETTURA DI SISTEMA Zygote Ogni applicazione verrà eseguita in una istanza diversa della Virtual Machine. Per ottimizzare l uso delle librerie condivise tra i processi e per velocizzare la creazione di nuove VM viene utilizzato Zygote. Esso è un processo che viene eseguito all avvio del sistema e che crea la prima istanza della macchina virtuale (ZygoteVM), che verrà precaricata con le librerie di core utilizzate in sola lettura. Queste librerie verranno poi riutilizzate dalle altre applicazioni. Zygote mette infatti a disposizione un socket e resta in ascolto per le richieste degli altri processi. Quando un processo (ad esempio l ActivityManagerService) invierà una richiesta di creazione di una nuova applicazione, Zygote effettuerà un fork della ZygoteVM creando un istanza della DalvikVM che verrà utilizzata dalla nuova app. Attraverso il fork si minimizzerà il tempo di creazione e caricamento delle nuove librerie e si realizzerà un evidente ottimizzazione del consumo di spazio in memoria grazie all implementazione di un meccanismo di copy-on-write. Nello stack di sistema Zygote si porrà perciò a cavallo tra il Library Layer (livello in cui è implementato) e il Runtime Layer (livello in cui è eseguita l istanza della Zygote VM). L interfaccia di Zygote, che utilizza un socket per accogliere nuove richieste di clonazione della VM, rappresenta una delle poche eccezioni riguardo al meccanismo di comunicazione inter-processo, che generalmente è implementato, come vedremo successivamente, attraverso l utilizzo del Binder. 24

Scuola Professionale e Filologica Geom. F.Borgogna Vercelli

Scuola Professionale e Filologica Geom. F.Borgogna Vercelli Scuola Professionale e Filologica Geom. F.Borgogna Vercelli Corsi ANDROID 2013/2014 Benvenuti nel mondo dinamico dello sviluppo di applicazioni per smartphone e tablet Android Corsi ANDROID 2013/2014 L

Dettagli

ANDROID. Domenico Talia. Università della Calabria. talia@dimes.unical.it

ANDROID. Domenico Talia. Università della Calabria. talia@dimes.unical.it ANDROID Domenico Talia Università della Calabria talia@dimes.unical.it Sistemi Operativi per Mobile! I sistemi operativi per sistemi mobili seguono i principi dei SO classici ma devono gestire risorse

Dettagli

Programmazione in ambiente

Programmazione in ambiente Università Politecnica delle Marche Dipartimento di Ingegneria dell Informazione Programmazione in ambiente Android Laura Montanini - laura.montanini@univpm.it Corso di Tecnologie per le TLC 2013-2014

Dettagli

Android development. Sviluppo di Mobile Apps sul sistema operativo di Google

Android development. Sviluppo di Mobile Apps sul sistema operativo di Google Android development Sviluppo di Mobile Apps sul sistema operativo di Google Agenda Giorni: Gio 14/04/2011 Ven 15/04/2011 Gio 21/04/2011 Ven 22/04/2011 Suddivisione: Mattina: teoria Pomeriggio: pratica

Dettagli

Un Sistema Location-based per la mappatura degli Access Point

Un Sistema Location-based per la mappatura degli Access Point 1 Un Sistema Location-based per la mappatura degli Access Point Pasquale Cautela pasquale.cautela@studio.unibo.it Marco Peca marco.peca@studio.unibo.it Rosario Salpietro rosario.salpietro@studio.unibo.it

Dettagli

Tecniche di progettazione e sviluppo di applicazioni mobile

Tecniche di progettazione e sviluppo di applicazioni mobile Slide del corso FSE Tecniche di progettazione e sviluppo di applicazioni mobile svolto presso AREA Science Park Padriciano - Trieste - Italy diegozabot@yahoo.it Android Introduzione diegozabot@yahoo.it

Dettagli

Android world. Sviluppare app per Android. Un insieme di software per dispositivi mobili (smartphone, tablet, portatili...)

Android world. Sviluppare app per Android. Un insieme di software per dispositivi mobili (smartphone, tablet, portatili...) Android world Un insieme di software per dispositivi mobili (smartphone, tablet, portatili...) Contiene un Sistema Operativo, software middleware e applicazioni varie Sviluppato da Open Handset Alliance,

Dettagli

Linux Day 2015. ANDROID ed i suoi derivati. Pavia, 24 ottobre 2015. Marco Giorgi NUTRIA LUG

Linux Day 2015. ANDROID ed i suoi derivati. Pavia, 24 ottobre 2015. Marco Giorgi NUTRIA LUG Linux Day 2015 NUTRIA LUG Pavia, 24 ottobre 2015 ANDROID ed i suoi derivati Quant'è davvero open un dispositivo Android e come renderlo ancora più libero CHI SONO Membro del team di sviluppo DEFT Linux

Dettagli

INTRODUZIONE ALLE PIATTAFORME

INTRODUZIONE ALLE PIATTAFORME INTRODUZIONE ALLE PIATTAFORME Android ios Windows Phone 8 Android 2 Cos è Android? Un moderno open-source sistema operativo Componenti: Linux kernel Java Core applications 3 Perché è stato un successo

Dettagli

Strutture dei Sistemi Operativi

Strutture dei Sistemi Operativi Strutture dei Sistemi Operativi Componenti di sistema Servizi del sistema operativo Chiamate di sistema Programmi di sistema Struttura del sistema Macchine virtuali Progetto e implementazione di sistemi

Dettagli

Sistemi Mobili e Wireless Android Introduzione alla piattaforma

Sistemi Mobili e Wireless Android Introduzione alla piattaforma Sistemi Mobili e Wireless Android Introduzione alla piattaforma Stefano Burigat Dipartimento di Matematica e Informatica Università di Udine www.dimi.uniud.it/burigat stefano.burigat@uniud.it Cos'è Android?

Dettagli

La sicurezza secondo skymeeting (data pubblicazione 06/12/2011)

La sicurezza secondo skymeeting (data pubblicazione 06/12/2011) La sicurezza secondo skymeeting (data pubblicazione 06/12/2011) www.skymeeting.net La sicurezza nel sistema di videoconferenza Skymeeting skymeeting è un sistema di videoconferenza web-based che utilizza

Dettagli

Programmazione Android

Programmazione Android Programmazione Android Giovanni Perbellini, Stefano Cordibella Università di Verona EDALab S.r.l. Agenda Introduzione Android Overview Ambiente di sviluppo Esempi Helloworld Weather 2 1 Cos è Android?

Dettagli

Android. Anatomia di una applicazione

Android. Anatomia di una applicazione Android Anatomia di una applicazione Elementi di base Gli elementi di base per costruire una applicazione Android sono cinque: Activity Intent Broadcast Receiver Service Content Provider 2 Activity (1/3)

Dettagli

Struttura di un sistema operativo. Struttura dei Sistemi Operativi. Servizi per l utente generico. Servizi per l utente generico

Struttura di un sistema operativo. Struttura dei Sistemi Operativi. Servizi per l utente generico. Servizi per l utente generico Impossibile visualizzare l'immagine. Struttura di un sistema operativo Struttura dei Sistemi Operativi Servizi di un sistema operativo Interfaccia Utente Capitolo 2 -- Silberschatz Chiamate di sistema

Dettagli

Componenti di Sistemi Operativi. System Call Programmi di sistema Componenti di un SO Servizi di SO

Componenti di Sistemi Operativi. System Call Programmi di sistema Componenti di un SO Servizi di SO Componenti di so 1 Componenti di Sistemi Operativi System Call Programmi di sistema Componenti di un SO Servizi di SO 2 System Call Le system call forniscono l'interfaccia tra running program e SO Generalmente

Dettagli

Capitolo 2 -- Silberschatz

Capitolo 2 -- Silberschatz Struttura dei Sistemi Operativi Capitolo 2 -- Silberschatz Struttura di un sistema operativo Servizi di un sistema operativo Interfaccia Utente Chiamate di sistema Tipi di chiamate Programma di sistema

Dettagli

Indice generale. Prefazione...xiii. Introduzione...xv

Indice generale. Prefazione...xiii. Introduzione...xv Prefazione...xiii Introduzione...xv Destinatari del libro...xvi Prerequisiti...xvi Versioni di Android...xvii Organizzazione del libro...xvii Convenzioni...xviii Ringraziamenti...xix L autore...xix Il

Dettagli

Sistemi Operativi. Funzioni e strategie di progettazione: dai kernel monolitici alle macchine virtuali

Sistemi Operativi. Funzioni e strategie di progettazione: dai kernel monolitici alle macchine virtuali Modulo di Sistemi Operativi per il corso di Master RISS: Ricerca e Innovazione nelle Scienze della Salute Unisa, 17-26 Luglio 2012 Sistemi Operativi Funzioni e strategie di progettazione: dai kernel monolitici

Dettagli

Architetture per le applicazioni web-based. Mario Cannataro

Architetture per le applicazioni web-based. Mario Cannataro Architetture per le applicazioni web-based Mario Cannataro 1 Sommario Internet e le applicazioni web-based Caratteristiche delle applicazioni web-based Soluzioni per l architettura three-tier Livello utente

Dettagli

Architetture Web. parte 1. Programmazione in Ambienti Distribuiti A.A. 2003-04

Architetture Web. parte 1. Programmazione in Ambienti Distribuiti A.A. 2003-04 Architetture Web parte 1 Programmazione in Ambienti Distribuiti A.A. 2003-04 Architetture Web (1) Modello a tre livelli in cui le interazioni tra livello presentazione e livello applicazione sono mediate

Dettagli

Basi Android. Android si definisce open. Con8ene tecnologie open source. Il codice di Android è open. Licenza Open Source Apache 2.

Basi Android. Android si definisce open. Con8ene tecnologie open source. Il codice di Android è open. Licenza Open Source Apache 2. Basi Android 1 Android Cosa è Android? Android è un insieme di strumen8 e librerie per sviluppare applicazioni mobili è più di un SO Android si definisce open Con8ene tecnologie open source Linux Il codice

Dettagli

per favore Android Mobile Programming Prof. R. De Prisco Prof. Roberto De Prisco 29/09/14 e NON RISPONDERE!!!! Slide 3

per favore Android Mobile Programming Prof. R. De Prisco Prof. Roberto De Prisco 29/09/14 e NON RISPONDERE!!!! Slide 3 Prof. Roberto De Prisco 2 per favore 3 o almeno e NON RISPONDERE!!!! Scrivere un app che mehe la vibrazione il lun e gio dalle 16:00 alle 18:00 1 Dress Code 4 Lui Vestito scuro, cravatta, camicia chiara,

Dettagli

Elementi di Informatica e Programmazione

Elementi di Informatica e Programmazione Elementi di Informatica e Programmazione Il Sistema Operativo Corsi di Laurea in: Ingegneria Civile Ingegneria per l Ambiente e il Territorio Università degli Studi di Brescia Docente: Daniela Fogli Cos

Dettagli

MagiCum S.r.l. Progetto Inno-School

MagiCum S.r.l. Progetto Inno-School MagiCum S.r.l. Progetto Inno-School Area Sviluppo Software Autore: Sergio Gandola Revisione: 2 Data: 07/06/13 Titolo: Documentazione Tecnica Diario File:Documentazione Tecnica.pdf Sito: http://inno-school.netsons.org/

Dettagli

La Login in Prestito!!Disponbilità Tesi. Categorie di Progetti di Ingegneria del Software

La Login in Prestito!!Disponbilità Tesi. Categorie di Progetti di Ingegneria del Software Draft versione 1.1 Categorie di Progetti di Ingegneria del Software Tutti i temi Progettuali proposti rientrano in una delle seguenti categorie. 1. Temi sull'elaborazione di Dati Multimediali Temi su Audio,

Dettagli

Programmazione Fondi Strutturali 2007/2013 P.O.N. FSE A.S. 2013/2014 SCHEDA PROGETTUALE MODULO. Obiettivo: C Azione: 1 Riferimento interno:

Programmazione Fondi Strutturali 2007/2013 P.O.N. FSE A.S. 2013/2014 SCHEDA PROGETTUALE MODULO. Obiettivo: C Azione: 1 Riferimento interno: ISTITUTO ISTRUZIONE SECONDARIA SUPERIORE GUGLIELMO MARCONI Piazza Poerio 2, 70126 Bari - Tel.080-5534450 Fax.080-5559037 - www.marconibari.it - info@marconibari.it Programmazione Fondi Strutturali 2007/2013

Dettagli

Il.NET Framework. By Dario Maggiari. L architettura del.net Framework è riassunta, nel complesso, nella figura seguente:

Il.NET Framework. By Dario Maggiari. L architettura del.net Framework è riassunta, nel complesso, nella figura seguente: Il.NET Framework By Dario Maggiari L architettura del.net Framework è riassunta, nel complesso, nella figura seguente: Il cuore del.net Framework è costituito dal CLR (Common Language Runtime) che, secondo

Dettagli

Processi. Laboratorio Software 2008-2009 C. Brandolese

Processi. Laboratorio Software 2008-2009 C. Brandolese Processi Laboratorio Software 2008-2009 Introduzione I calcolatori svolgono operazioni simultaneamente Esempio Compilazione di un programma Invio di un file ad una stampante Visualizzazione di una pagina

Dettagli

Corso di Sicurezza Informatica

Corso di Sicurezza Informatica Corso di Sicurezza Informatica Sicurezza del Software Ing. Giuseppe D Aquì Sicurezza nell informatica Un computer sicuro è un computer spento (Kevin Mitnick) Attacchi informatici Gli attacchi informatici,

Dettagli

Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL

Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL STRUTTURA DEI SISTEMI OPERATIVI 3.1 Struttura dei Componenti Servizi di un sistema operativo System Call Programmi di sistema Struttura del sistema operativo Macchine virtuali Progettazione e Realizzazione

Dettagli

Gianluigi Magnasco easitec S.r.l. Parma, 16 Settembre 2010

Gianluigi Magnasco easitec S.r.l. Parma, 16 Settembre 2010 Soft Control facile con RTX e Windows Embedded Standard 7 RTX 2009: funzionalità ed uso pratico Gianluigi Magnasco easitec S.r.l. Parma, 16 Settembre 2010 Definizione di Sistema Tempo Reale: Definizione

Dettagli

Concetti base. Impianti Informatici. Web application

Concetti base. Impianti Informatici. Web application Concetti base Web application La diffusione del World Wide Web 2 Supporto ai ricercatori Organizzazione documentazione Condivisione informazioni Scambio di informazioni di qualsiasi natura Chat Forum Intranet

Dettagli

Lezione 4 La Struttura dei Sistemi Operativi. Introduzione

Lezione 4 La Struttura dei Sistemi Operativi. Introduzione Lezione 4 La Struttura dei Sistemi Operativi Introduzione Funzionamento di un SO La Struttura di un SO Sistemi Operativi con Struttura Monolitica Progettazione a Livelli di un SO 4.2 1 Introduzione (cont.)

Dettagli

PROGETTAZIONE E SVILUPPO DI UNA APPLICAZIONE MOBILE PER AGENTI E RAPPRESENTANTI

PROGETTAZIONE E SVILUPPO DI UNA APPLICAZIONE MOBILE PER AGENTI E RAPPRESENTANTI ALMA MATER STUDIORUM UNIVERSITÀ DI BOLOGNA Polo scientifico-didattico di Cesena FACOLTÀ DI SCIENZE MATEMATICHE FISCHE NATURALI CORSO DI LAUREA IN SCIENZE DELL INFORMAZIONE PROGETTAZIONE E SVILUPPO DI UNA

Dettagli

Manuale di riferimento di HP Web Jetadmin Database Connector Plug-in

Manuale di riferimento di HP Web Jetadmin Database Connector Plug-in Manuale di riferimento di HP Web Jetadmin Database Connector Plug-in Informazioni sul copyright 2004 Copyright Hewlett-Packard Development Company, L.P. Sono vietati la riproduzione, l'adattamento e la

Dettagli

Evoluzione dei sistemi operativi (5) Evoluzione dei sistemi operativi (4) Classificazione dei sistemi operativi

Evoluzione dei sistemi operativi (5) Evoluzione dei sistemi operativi (4) Classificazione dei sistemi operativi Evoluzione dei sistemi operativi (4) Sistemi multiprogrammati! più programmi sono caricati in contemporaneamente, e l elaborazione passa periodicamente dall uno all altro Evoluzione dei sistemi operativi

Dettagli

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca.

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Lezione 3 Martedì 15-10-2013 1 Struttura ed organizzazione software dei sistemi

Dettagli

Sistemi informatici. Informatica. Il software. Il sw di sistema. Il sw applicativo. Il sw di sistema. Il sistema operativo. Hardware.

Sistemi informatici. Informatica. Il software. Il sw di sistema. Il sw applicativo. Il sw di sistema. Il sistema operativo. Hardware. http://159.149.98.238/lanzavecchia/docum enti/sscta.htm Sistemi informatici Hardware Microprocessore Memoria Periferiche di input e output Software Software di sistema Programmi applicativi 1 2 Il sw applicativo

Dettagli

Sistema Operativo Chrome: Analisi degli aspetti peculiari.

Sistema Operativo Chrome: Analisi degli aspetti peculiari. tesi di laurea Sistema Operativo Chrome: Analisi degli aspetti peculiari. Anno Accademico 2009/2010 relatore Ch.mo prof. Porfirio Tramontana candidato Lina Cocomello Matr. 534/000565 Obiettivi. Che cos

Dettagli

Strutture dei sistemi operativi

Strutture dei sistemi operativi Contenuti della lezione di oggi Strutture dei sistemi operativi Descrizione dei servizi messi a disposizione dell utente dal SO Utente generico Programmatore Esame delle possibili strutture di un SO Monolitica

Dettagli

INDICE. Indice. Introduzione

INDICE. Indice. Introduzione V Indice Introduzione XIII Capitolo 1 La programmazione multithread 1 1.1 Cosa sono i thread 2 Utilizzare i thread per dare una possibilità ad altri task 9 Avvio ed esecuzione dei thread 10 Esecuzione

Dettagli

Dott. Ing. Davide Maiorca

Dott. Ing. Davide Maiorca Pattern Recognition and Applications Lab Sicurezza dei Sistemi Android Dott. Ing. Davide Maiorca davide.maiorca@diee.unica.it Corso di Sicurezza Informatica A.A. 2014/2015 Dipartimento di Ingegneria Elettrica

Dettagli

27/03/2013. Contenuti

27/03/2013. Contenuti Corso Sistemi Distribuiti 6 cfu Docente: Prof. Marcello Castellano Contenuti Virtualizzazione - 3 Macchina virtuale - 4 Architetture delle macchine virtuali - 6 Tipi di virtualizzazione - 7 Monitor della

Dettagli

La genealogia di Windows. Windows NT e Windows 95/98. Dimensioni del codice. Parte IX. Windows

La genealogia di Windows. Windows NT e Windows 95/98. Dimensioni del codice. Parte IX. Windows La genealogia di Windows Parte IX Windows Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 IX - 1 DOS: sistema operativo monoutente Windows 3.1 interfaccia a finestre che gira su DOS Windows 95/98

Dettagli

Parte IX. Windows. Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 IX - 1

Parte IX. Windows. Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 IX - 1 Parte IX Windows Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 IX - 1 La genealogia di Windows DOS: sistema operativo monoutente Windows 3.1 interfaccia a finestre che gira su DOS Windows 95/98

Dettagli

Calcolo numerico e programmazione. Sistemi operativi

Calcolo numerico e programmazione. Sistemi operativi Calcolo numerico e programmazione Sistemi operativi Tullio Facchinetti 25 maggio 2012 13:47 http://robot.unipv.it/toolleeo Sistemi operativi insieme di programmi che rendono

Dettagli

Parte VI SISTEMI OPERATIVI

Parte VI SISTEMI OPERATIVI Parte VI SISTEMI OPERATIVI Sistema Operativo Ogni computer ha un sistema operativo necessario per eseguire gli altri programmi Il sistema operativo, fra l altro, è responsabile di riconoscere i comandi

Dettagli

Appl. di emissione PKCS#11. API (Metacomandi) Resource Manager Windows. Drivers PC/SC dei lettori

Appl. di emissione PKCS#11. API (Metacomandi) Resource Manager Windows. Drivers PC/SC dei lettori Roma, 30 gennaio 2003 La realtà della carta di identità elettronica (nel seguito CIE) e della carta nazionale dei servizi (nel seguito CNS) rende ineluttabile l individuazione di servizi da erogare in

Dettagli

Informativa e consenso per l utilizzo delle Google Apps for Education ISMC ALLEGATO 2 ALLEGATO 2 PRIVACY DI GOOGLE

Informativa e consenso per l utilizzo delle Google Apps for Education ISMC ALLEGATO 2 ALLEGATO 2 PRIVACY DI GOOGLE Pag. 1 di 8 PRIVACY DI GOOGLE (http://www.google.com/intl/it/policies/privacy/ Ultima modifica: 19 agosto 2015) I nostri servizi possono essere utilizzati in tanti modi diversi: per cercare e condividere

Dettagli

Punti fondamentali sulla tecnologia del sistema ABScard

Punti fondamentali sulla tecnologia del sistema ABScard Punti fondamentali sulla tecnologia del sistema ABScard Architettura ABSCARD Pagina 1 di 13 INDICE GENERALE 1 Architettura...3 1.1 Introduzione...3 1.1.1 Sicurezza...4 1.1.2 Gestione...5 1.1.3 ABScard

Dettagli

File system. Realizzazione del file system. Struttura del file system. Struttura del file system. Realizzazione del file system

File system. Realizzazione del file system. Struttura del file system. Struttura del file system. Realizzazione del file system Realizzazione del file system Struttura del file system Metodi di allocazione: Contigua Concatenata Indicizzata Gestione dello spazio libero Realizzazione delle directory Efficienza e prestazioni Ripristino

Dettagli

CAPITOLO 5 - Sistemi Operativi Moderni

CAPITOLO 5 - Sistemi Operativi Moderni CAPITOLO 5 - Sistemi Operativi Moderni PRESENTAZIONE DI INSIEME Vedremo ora come si è evoluta nel tempo la struttura di un sistema operativo, per passare dalle vecchie strutture di tipo normalmente modulari,

Dettagli

Realizzazione del file system

Realizzazione del file system Realizzazione del file system Struttura del file system Metodi di allocazione: Contigua Concatenata Indicizzata Gestione dello spazio libero Realizzazione delle directory Efficienza e prestazioni Ripristino

Dettagli

Novell ZENworks Configuration Management in ambiente Microsoft * Windows *

Novell ZENworks Configuration Management in ambiente Microsoft * Windows * Guida GESTIONE SISTEMI www.novell.com Novell ZENworks Configuration Management in ambiente Microsoft * Windows * Novell ZENworks Configuration Management in ambiente Microsoft Windows Indice: 2..... Benvenuti

Dettagli

Classificazione del software

Classificazione del software Classificazione del software Classificazione dei software Sulla base del loro utilizzo, i programmi si distinguono in: SOFTWARE Sistema operativo Software applicativo Sistema operativo: una definizione

Dettagli

Sicurezza dei sistemi SIP: analisi sperimentale di possibili attacchi e contromisure

Sicurezza dei sistemi SIP: analisi sperimentale di possibili attacchi e contromisure UNIVERSITÀ DEGLI STUDI DI PISA FACOLTÀ DI INGEGNERIA Corso di Laurea in INGEGNERIA DELLE TELECOMUNICAZIONI Tesi di Laurea Sicurezza dei sistemi SIP: analisi sperimentale di possibili attacchi e contromisure

Dettagli

MOBILE ENTERPRISE: APPLICAZIONI, COMPORTAMENTI E RISCHI

MOBILE ENTERPRISE: APPLICAZIONI, COMPORTAMENTI E RISCHI MOBILE ENTERPRISE: APPLICAZIONI, COMPORTAMENTI E RISCHI ANTONELLA FRISIELLO E FRANCESCO RUÀ ISTITUTO SUPERIORE MARIO BOELLA Quali pericoli corriamo utilizzando internet e gli strumenti digitali? Uno, nessuno

Dettagli

Filippo Druda LO SVILUPPO IN ANDROID

Filippo Druda LO SVILUPPO IN ANDROID 1 Classe 5 A Candidato Filippo Druda LO SVILUPPO IN ANDROID 2 L'EVOLUZIONE TECNOLOGICA NON HA MAI DANNEGGIATO NESSUNO.. ABSTRACT Istituto Tecnico Industriale Don Orione Fano 3 Il progresso tecnologico

Dettagli

Protezione. Sistemi Operativi mod. B 16.1

Protezione. Sistemi Operativi mod. B 16.1 Protezione Scopi della Protezione Dominio di Protezione Matrice d Accesso Implementazione della Matrice d Accesso Revoca dei Diritti d Accesso Sistemi Basati su Abilitazioni Protezione basata sul linguaggio

Dettagli

Realizzazione di un sistema di logging prototipale per la piattaforma

Realizzazione di un sistema di logging prototipale per la piattaforma tesi di laurea Realizzazione di un sistema di logging prototipale per la piattaforma Android Anno Accademico 2011 / 2012 relatore Ch.mo prof. Marcello Cinque candidato Dario De Meis Matr. 528 / 741 Smartphone

Dettagli

Il sistema operativo TinyOS

Il sistema operativo TinyOS tesi di laurea Anno Accademico 2005/2006 relatore Ch.mo prof. Domenico Cotroneo candidato Giovanni Chierchia Matr. 534 / 804 ::. Obiettivi del lavoro di tesi Studio del sistema operativo TinyOS Studio

Dettagli

ERP Commercio e Servizi

ERP Commercio e Servizi ERP Commercio e Servizi Sistema informativo: una scelta strategica In questi ultimi anni hanno avuto grande affermazione nel mercato mondiale i cosiddetti sistemi software ERP. Tali sistemi sono in grado

Dettagli

D3.1 Documento di analisi della visualizzazione 3D in ambiente Cloud e relative problematiche

D3.1 Documento di analisi della visualizzazione 3D in ambiente Cloud e relative problematiche D3.1 Documento di analisi della visualizzazione 3D in ambiente Cloud e relative problematiche Il Cloud Computing La visualizzazione nella Cloud Problematiche Virtualizzazione della GPU Front end Virtualization

Dettagli

PROGETTO - Ingegneria del Software. Università degli Studi di Milano Polo di Crema. Corso di laurea in Scienze Matematiche, Fisiche e Naturali

PROGETTO - Ingegneria del Software. Università degli Studi di Milano Polo di Crema. Corso di laurea in Scienze Matematiche, Fisiche e Naturali Università degli Studi di Milano Polo di Crema Corso di laurea in Scienze Matematiche, Fisiche e Naturali INFORMATICA Corso di Ingegneria del Software progetto IL SISTEMA CALENDAR Presentato al dott. Paolo

Dettagli

Compiti del S.O. Lezione 2: Gestione dei processi. La struttura e funzioni dei Sistemi Operativi

Compiti del S.O. Lezione 2: Gestione dei processi. La struttura e funzioni dei Sistemi Operativi Lezione 2: Compiti del S.O. La struttura e funzioni dei Sistemi Operativi Un S.O. ha il compito di rendere semplice (all utente), l utilizzo del calcolatore componenti di un sistema operativo servizi dei

Dettagli

Software che sovrintende al funzionamento del computer eseguendo compiti diversi:

Software che sovrintende al funzionamento del computer eseguendo compiti diversi: Sistema Operativo dispensa a cura di Alessandro Bellini Software che sovrintende al funzionamento del computer eseguendo compiti diversi: 1. Gestire interazione utente macchina 2. Fornire un interfaccia

Dettagli

LA TUA PRIMA APP CON CORDOVA

LA TUA PRIMA APP CON CORDOVA LA TUA PRIMA APP CON CORDOVA Dedicato a. Gianluca ed Enza, due persone speciali Autore: Gianpiero Fasulo www.gfasulo.it - Pag. 2 COPYRIGHT La tua prima APP con CORDOVA Tutti i diritti riservati. Nessuna

Dettagli

Approccio stratificato

Approccio stratificato Approccio stratificato Il sistema operativo è suddiviso in strati (livelli), ciascuno costruito sopra quelli inferiori. Il livello più basso (strato 0) è l hardware, il più alto (strato N) è l interfaccia

Dettagli

ANDROID 4.2 JELLY BEAN Installazione e configurazione dell ambiente

ANDROID 4.2 JELLY BEAN Installazione e configurazione dell ambiente INTRODUZIONE Per sviluppare applicazioni in grado di girare su sistemi Android servono tre cose: il Java JDK (Java Development Kit), che contiene tutti gli strumenti necessari a sviluppare nel linguaggio

Dettagli

Sistemi Operativi (modulo di Informatica II)

Sistemi Operativi (modulo di Informatica II) Sistemi Operativi (modulo di Informatica II) La comunicazione tra processi Patrizia Scandurra Università degli Studi di Bergamo a.a. 2008-09 Sommario Processi cooperanti La comunicazione tra processi Necessità

Dettagli

Sviluppo di applicazioni mobili su piattaforma Maemo

Sviluppo di applicazioni mobili su piattaforma Maemo tesi di laurea Anno Accademico 2009/2010 relatore Ch.mo prof. Marcello Cinque candidato Giovanni Fortini Matr. 534/2169 Contesto e contributo Sistemi operativi per dispositivi mobili Sviluppo di un applicazione

Dettagli

corrispondente server Web (l applicazione server) viene inviata una richiesta, alla quale il server normalmente risponde inviando la pagina HTML che

corrispondente server Web (l applicazione server) viene inviata una richiesta, alla quale il server normalmente risponde inviando la pagina HTML che Prefazione In questo volume completiamo l esplorazione del linguaggio Java che abbiamo iniziato in Java Fondamenti di programmazione. I due testi fanno parte di un percorso didattico unitario, come testimoniano

Dettagli

Protocolli e architetture per WIS

Protocolli e architetture per WIS Protocolli e architetture per WIS Web Information Systems (WIS) Un Web Information System (WIS) usa le tecnologie Web per permettere la fruizione di informazioni e servizi Le architetture moderne dei WIS

Dettagli

Capitolo 3: Strutture dei sistemi operativi

Capitolo 3: Strutture dei sistemi operativi Capitolo 3: Strutture dei sistemi operativi Componenti del sistema Servizi di un sistema operativo Chiamate del sistema Programmi di sistema Struttura del sistema Macchine virtuali Progettazione e realizzazione

Dettagli

uomo Software (sistema operativo) hardware

uomo Software (sistema operativo) hardware uomo Software (sistema operativo) hardware 1 Sistema operativo Insieme di programmi che svolgono funzioni essenziali per l uso del sistema di elaborazione Questi programmi sono i primi ad essere eseguiti

Dettagli

Lezione 19 Blackberry. Dr. Paolo Casoto, Ph.D - 2012

Lezione 19 Blackberry. Dr. Paolo Casoto, Ph.D - 2012 + Lezione 19 Blackberry + Credits I lucidi di questa lezione sono stati redatti dal Dr. Paolo Casoto nel 2012. Sono rilasciati con licenza Creative Commons Attribuzione, non commerciale e non opere derivate.

Dettagli

Interstudio L INGEGNERE NELLE NUVOLE. App, WEB App e Cloud. ing. Sauro Agostini. Architectural & Engineering Software. venerdì 11 ottobre 13

Interstudio L INGEGNERE NELLE NUVOLE. App, WEB App e Cloud. ing. Sauro Agostini. Architectural & Engineering Software. venerdì 11 ottobre 13 Architectural & Engineering Software L INGEGNERE NELLE NUVOLE App, WEB App e Cloud ing. Sauro Agostini Mitterand 1981 Reagan Battaglin Alice IBM PC 5150 Alonso C ERA UNA VOLTA IL DOS Non è una rivoluzione,

Dettagli

Sicurezza e virtualizzazione per il cloud

Sicurezza e virtualizzazione per il cloud Sicurezza e virtualizzazione per il cloud Con il cloud gli utenti arrivano ovunque, ma la protezione dei dati no. GARL sviluppa prodotti di sicurezza informatica e servizi di virtualizzazione focalizzati

Dettagli

PROGETTO DI UN MIDDLEWARE PER L ACCESSO REMOTO A UN REPOSITORY

PROGETTO DI UN MIDDLEWARE PER L ACCESSO REMOTO A UN REPOSITORY Giampiero Allamprese 0000260193 PROGETTO DI UN MIDDLEWARE PER L ACCESSO REMOTO A UN REPOSITORY Reti di Calcolatori LS prof. Antonio Corradi A.A. 2007/2008 ABSTRACT L obiettivo di questo progetto è la realizzazione

Dettagli

Fondamenti di Informatica: Sistemi Operativi 1. Introduzione

Fondamenti di Informatica: Sistemi Operativi 1. Introduzione Introduzione Fondamenti di Informatica: Sistemi Operativi 1 Elaboratori necessitano di SOFTWARE SOFTWARE DI SISTEMA (SISTEMI OPERATIVI): fanno funzionare le varie componenti del computer e permettono all

Dettagli

CAPITOLO 1 I SISTEMI OPERATIVI

CAPITOLO 1 I SISTEMI OPERATIVI CAPITOLO 1 I SISTEMI OPERATIVI Introduzione ai sistemi operativi pag. 3 La shell pag. 3 Tipi di sistemi operativi pag. 4 I servizi del sistema operativo pag. 4 La gestione dei file e il file system Il

Dettagli

Sviluppo su Android. Linux Day Torino 2010

Sviluppo su Android. Linux Day Torino 2010 Sviluppo su Android Linux Day Torino 2010 Francesco Ronchi francesco.ronchi@gmail.com - www.synesthesia.it Cos'è Android Sistema operativo dedicato ai device mobili: cellulari, palmari, tablet, navigatori...

Dettagli

Progetto e sviluppo di una Applicazione Android per l accesso a reti di sensori senza filo

Progetto e sviluppo di una Applicazione Android per l accesso a reti di sensori senza filo tesi di laurea Progetto e sviluppo di una Applicazione Android per l accesso a reti di sensori Anno Accademico 2009 2010 relatore Ch.mo prof. Marcello Cinque candidato Nicola Lubrano Matr. 534/1397 Contesto

Dettagli

Virtualizzazione e Macchine Virtuali

Virtualizzazione e Macchine Virtuali Virtualizzazione e Macchine Virtuali Gabriele D Angelo, Ludovico Gardenghi {gda, garden}@cs.unibo.it http://www.cs.unibo.it/~gdangelo/ http://www.cs.unibo.it/~gardengl/ Università di Bologna Corso di Laurea

Dettagli

Android. Android. Sviluppo di applicazioni. Dalvik 19/03/2011. A. Ferrari

Android. Android. Sviluppo di applicazioni. Dalvik 19/03/2011. A. Ferrari Android Android A. Ferrari Android è un sistema opera8vo per disposi8vi mobili. Inizialmente sviluppato da Startup Android Inc. acquisita poi nel 2005 da Google Inc. Il cuore di Android è un kernel Linux.

Dettagli

Software e Sistemi Operativi Prof. Maurizio Naldi A.A. 2015/16

Software e Sistemi Operativi Prof. Maurizio Naldi A.A. 2015/16 Software e Sistemi Operativi Prof. Maurizio Naldi A.A. 2015/16 Cosa vedremo Il software applicativo Categorie di SW Il sistema operativo Gestione programmi in esecuzione (processi) Gestione memoria Gestione

Dettagli

Table of Contents. Definizione di Sistema Distribuito 15/03/2013

Table of Contents. Definizione di Sistema Distribuito 15/03/2013 Insegnamento: Sistemi Distribuiti - 6 cfu LM Ing. Informatica Docente: Prof. Marcello Castellano Table of Contents Definizione di Sistema Distribuito - 4-7 - 13 Definizioni e Principali Caratteristiche

Dettagli

MA GLI ANDROIDI SOGNANO PINGUINI ELETTRICI? Introduzione ad Android. Il futuro prossimo dei telefoni cellulari.

MA GLI ANDROIDI SOGNANO PINGUINI ELETTRICI? Introduzione ad Android. Il futuro prossimo dei telefoni cellulari. MA GLI ANDROIDI SOGNANO PINGUINI ELETTRICI? Introduzione ad Android. Il futuro prossimo dei telefoni cellulari. 8 aprile 2008 Case delle Culture di Ponziana via Orlandini 38 - Trieste Cos'è Android? Android

Dettagli

Corso Android Corso Online Programmatore Android

Corso Android Corso Online Programmatore Android Corso Android Corso Online Programmatore Android Accademia Domani Via Pietro Blaserna, 101-00146 ROMA (RM) info@accademiadomani.it Programma Generale del Corso Modulo Uno - Programmazione J2ee 1) Programmazione

Dettagli

Corso Android Corso Online Sviluppo su Cellulari con Android

Corso Android Corso Online Sviluppo su Cellulari con Android Corso Android Corso Online Sviluppo su Cellulari con Android Accademia Futuro info@accademiafuturo.it Programma Generale del Corso di Sviluppo su Cellulari con Android Programma Base Modulo Uno - Programmazione

Dettagli

DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER

DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER L architettura CLIENT SERVER è l architettura standard dei sistemi di rete, dove i computer detti SERVER forniscono servizi, e computer detti CLIENT, richiedono

Dettagli

Introduzione al sistema operativo. Laboratorio Software 2008-2009 C. Brandolese

Introduzione al sistema operativo. Laboratorio Software 2008-2009 C. Brandolese Introduzione al sistema operativo Laboratorio Software 2008-2009 C. Brandolese Che cos è un sistema operativo Alcuni anni fa un sistema operativo era definito come: Il software necessario a controllare

Dettagli

Il Sistema Operativo. Introduzione di programmi di utilità. Elementi di Informatica Docente: Giorgio Fumera

Il Sistema Operativo. Introduzione di programmi di utilità. Elementi di Informatica Docente: Giorgio Fumera CPU Memoria principale Il Sistema Operativo Elementi di Informatica Docente: Giorgio Fumera Corso di Laurea in Edilizia Facoltà di Architettura A.A. 2009/2010 ALU Unità di controllo Registri A indirizzi

Dettagli

1. I dispositivi periferici

1. I dispositivi periferici La gestione dell I/O 1. I dispositivi periferici Un ulteriore aspetto fondamentale del SO è la gestione dei dispositivi periferici (periferiche) Dal punto di vista del sistema operativo per periferiche

Dettagli

7 CATEGORIE DI ARGOMENTI FORMATIVI

7 CATEGORIE DI ARGOMENTI FORMATIVI 7 CATEGORIE DI ARGOMENTI FORMATIVI Dall unione di due grandi esperienze, nasce un SERVIZIO dedicato a voi, la FORMAZIONE. Nei settori della Tecnologia e dell Informatica siamo giunti ormai ad un punto

Dettagli

Sistema Operativo Compilatore

Sistema Operativo Compilatore MASTER Information Technology Excellence Road (I.T.E.R.) Sistema Operativo Compilatore Maurizio Palesi Salvatore Serrano Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 1 Il Sistema

Dettagli

WEB TECHNOLOGY. Il web connette. LE persone. E-book n 2 - Copyright Reserved

WEB TECHNOLOGY. Il web connette. LE persone. E-book n 2 - Copyright Reserved WEB TECHNOLOGY Il web connette LE persone Indice «Il Web non si limita a collegare macchine, ma connette delle persone» Il Www, Client e Web Server pagina 3-4 - 5 CMS e template pagina 6-7-8 Tim Berners-Lee

Dettagli

Table of Contents. Insegnamento: Sistemi Distribuiti - 6 cfu LM Ing. Informatica Docente: Prof. Marcello Castellano

Table of Contents. Insegnamento: Sistemi Distribuiti - 6 cfu LM Ing. Informatica Docente: Prof. Marcello Castellano Insegnamento: Sistemi Distribuiti - 6 cfu LM Ing. Informatica Docente: Prof. Marcello Castellano Table of Contents Definizione di Sistema Distribuito - 4 Obiettivi Principali di un S.D. - 7 Tipi di Sistemi

Dettagli