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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

LICARUS LICENSE SERVER

LICARUS LICENSE SERVER UNIVERSITÀ DEGLI STUDI DI ROMA TOR VERGATA Facoltà di Ingegneria Corso di Laurea Specialistica in Ingegneria Informatica Progetto per il corso di Sicurezza dei Sistemi Informatici LICARUS LICENSE SERVER

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

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

Introduzione ai Sistemi Operativi

Introduzione ai Sistemi Operativi Introduzione ai Sistemi Operativi Sistema Operativo Software! Applicazioni! Sistema Operativo! È il livello di SW con cui! interagisce l utente! e comprende! programmi quali :! Compilatori! Editori di

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

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

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

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

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

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

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

Il sistema operativo

Il sistema operativo Il sistema operativo Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Cos è un Sistema Operativo? Per capirlo, immaginiamo inizialmente

Dettagli

Architettura di un sistema operativo

Architettura di un sistema operativo Architettura di un sistema operativo Dipartimento di Informatica Università di Verona, Italy Struttura di un S.O. Sistemi monolitici Sistemi a struttura semplice Sistemi a livelli Virtual Machine Sistemi

Dettagli

Introduzione al sistema operativo Il file system: file, directory,...

Introduzione al sistema operativo Il file system: file, directory,... ,OVRIWZDUHGLVLVWHPD cosa vedremo: Introduzione al sistema operativo Il file system: file, directory,...... 223,OVRIWZDUHLQWURGX]LRQH L hardware da solo non è sufficiente per il funzionamento dell elaboratore

Dettagli

Zoo di sistemi operativi: studio e realizzazione del supporto di macchine virtuali con accesso via Web

Zoo di sistemi operativi: studio e realizzazione del supporto di macchine virtuali con accesso via Web Zoo di sistemi operativi: studio e realizzazione del supporto di macchine virtuali con accesso via Web Mattia Gentilini Relatore: Renzo Davoli Laurea Specialistica in Informatica I Sessione A.A. 2005/2006

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

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

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

ISTVAS Ancona Introduzione ai sistemi operativi Tecnologie Informatiche

ISTVAS Ancona Introduzione ai sistemi operativi Tecnologie Informatiche ISTVAS Ancona Introduzione ai sistemi operativi Tecnologie Informatiche Sommario Definizione di S. O. Attività del S. O. Struttura del S. O. Il gestore dei processi: lo scheduler Sistemi Mono-Tasking e

Dettagli

Strumenti per l Analisi Statica e Dinamica di Eseguibili

Strumenti per l Analisi Statica e Dinamica di Eseguibili Pattern Recognition and Applications Lab Strumenti per l Analisi Statica e Dinamica di Eseguibili Dott. Ing. Davide Maiorca davide.maiorca@diee.unica.it Corso di Sicurezza Informatica A.A. 2014/2015 Dipartimento

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

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

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

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

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

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

Sviluppo Applicazioni Mobile Lezione 12 JDBC. Dr. Paolo Casoto, Ph.D - 2012

Sviluppo Applicazioni Mobile Lezione 12 JDBC. Dr. Paolo Casoto, Ph.D - 2012 + Sviluppo Applicazioni Mobile Lezione 12 JDBC + Cosa vediamo nella lezione di oggi Oggi analizzeremo insieme una specifica tecnologia Java per l accesso e la manipolazione di basi di dati relazionali

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

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

Xerox SMart esolutions. White Paper sulla protezione

Xerox SMart esolutions. White Paper sulla protezione Xerox SMart esolutions White Paper sulla protezione White Paper su Xerox SMart esolutions La protezione della rete e dei dati è una delle tante sfide che le aziende devono affrontare ogni giorno. Tenendo

Dettagli

Corso di Alfabetizzazione Informatica

Corso di Alfabetizzazione Informatica Corso di Alfabetizzazione Informatica Lezione 6 a.a. 2010/2011 Francesco Fontanella La Complessità del Hardware Il modello di Von Neumann è uno schema di principio. Attualmente in commercio esistono: diversi

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

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino Il Sistema Operativo Il Sistema Operativo è uno strato software che: opera direttamente sull hardware; isola dai dettagli dell architettura hardware; fornisce un insieme di funzionalità di alto livello.

Dettagli

Informatica e Bioinformatica: Sistemi Operativi

Informatica e Bioinformatica: Sistemi Operativi Informatica e Bioinformatica: Sistemi Operativi 11 marzo 2013 Macchina Hardware/Software Sistema Operativo Macchina Hardware La macchina hardware corrisponde alle componenti fisiche del calcolatore (quelle

Dettagli

UBIQUITY 6 e Server. Il documento descrive le novità introdotte con la versione 6 della piattaforma software ASEM Ubiquity.

UBIQUITY 6 e Server. Il documento descrive le novità introdotte con la versione 6 della piattaforma software ASEM Ubiquity. UBIQUITY 6 e Server Privato Introduzione Il documento descrive le novità introdotte con la versione 6 della piattaforma software ASEM Ubiquity. Versione Descrizione Data 1 Prima emissione 21/06/2015 Disclaimer

Dettagli

SISTEMI OPERATIVI DISTRIBUITI

SISTEMI OPERATIVI DISTRIBUITI SISTEMI OPERATIVI DISTRIBUITI E FILE SYSTEM DISTRIBUITI 12.1 Sistemi Distribuiti Sistemi operativi di rete Sistemi operativi distribuiti Robustezza File system distribuiti Naming e Trasparenza Caching

Dettagli

IL SOFTWARE TIPI DI SOFTWARE. MACCHINE VIRTUALI Vengono definite così perché sono SIMULATE DAL SOFTWARE, UNIFORMANO L ACCESSO SISTEMA OPERATIVO

IL SOFTWARE TIPI DI SOFTWARE. MACCHINE VIRTUALI Vengono definite così perché sono SIMULATE DAL SOFTWARE, UNIFORMANO L ACCESSO SISTEMA OPERATIVO IL SOFTWARE L HARDWARE da solo non è sufficiente a far funzionare un computer Servono dei PROGRAMMI (SOFTWARE) per: o Far interagire, mettere in comunicazione, le varie componenti hardware tra loro o Sfruttare

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

CORSO EDA Informatica di base. Sicurezza, protezione, aspetti legali

CORSO EDA Informatica di base. Sicurezza, protezione, aspetti legali CORSO EDA Informatica di base Sicurezza, protezione, aspetti legali Rischi informatici Le principali fonti di rischio di perdita/danneggiamento dati informatici sono: - rischi legati all ambiente: rappresentano

Dettagli

Informatica di Base - 6 c.f.u.

Informatica di Base - 6 c.f.u. Università degli Studi di Palermo Dipartimento di Ingegneria Informatica Informatica di Base - 6 c.f.u. Anno Accademico 2007/2008 Docente: ing. Salvatore Sorce Il Sistema Operativo Gerarchia del software

Dettagli

Corso di Sistemi Operativi DEE - Politecnico di Bari. Windows vs LINUX. G. Piscitelli - M. Ruta. 1 di 20 Windows vs LINUX

Corso di Sistemi Operativi DEE - Politecnico di Bari. Windows vs LINUX. G. Piscitelli - M. Ruta. 1 di 20 Windows vs LINUX Windows vs LINUX 1 di 20 Windows vs LINUX In che termini ha senso un confronto? Un O.S. è condizionato dall architettura su cui gira Un O.S. è condizionato dalle applicazioni Difficile effettuare un rapporto

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

Installazione di IBM SPSS Modeler 14.2 Client (utente singolo)

Installazione di IBM SPSS Modeler 14.2 Client (utente singolo) Installazione di IBM SPSS Modeler 14.2 Client (utente singolo) Le seguenti istruzioni sono relative all installazione di IBM SPSS Modeler Client versione 14.2 con licenza per utente singolo. Una licenza

Dettagli

Database e reti. Piero Gallo Pasquale Sirsi

Database e reti. Piero Gallo Pasquale Sirsi Database e reti Piero Gallo Pasquale Sirsi Approcci per l interfacciamento Il nostro obiettivo è, ora, quello di individuare i possibili approcci per integrare una base di dati gestita da un in un ambiente

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

Manuale di Desktop Sharing. Brad Hards Traduzione: Luciano Montanaro Traduzione: Daniele Micci

Manuale di Desktop Sharing. Brad Hards Traduzione: Luciano Montanaro Traduzione: Daniele Micci Brad Hards Traduzione: Luciano Montanaro Traduzione: Daniele Micci 2 Indice 1 Introduzione 5 2 Il protocollo Remote Frame Buffer 6 3 Uso di Desktop Sharing 7 3.1 Gestione degli inviti di Desktop Sharing.........................

Dettagli

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Compito fondamentale di un S.O. è infatti la gestione dell

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

Scritto da Administrator Martedì 02 Settembre 2008 06:30 - Ultimo aggiornamento Martedì 10 Maggio 2011 17:15

Scritto da Administrator Martedì 02 Settembre 2008 06:30 - Ultimo aggiornamento Martedì 10 Maggio 2011 17:15 Entrare in un pc è una espressione un po generica...può infatti significare più cose: - Disporre di risorse, quali files o stampanti, condivise, rese fruibili liberamente o tramite password con i ripettivi

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

Corso App modulo Android. Antonio Gallo info@laboratoriolibero.com

Corso App modulo Android. Antonio Gallo info@laboratoriolibero.com Corso App modulo Android Antonio Gallo info@laboratoriolibero.com Strumentazione: PC + smartphone Android + cavo micro USB per connessione Framework Phonegap SDK di Android JDK (Java) Eclipse (opzionale)

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

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

Navigare verso il cambiamento. La St r a d a. p i ù semplice verso il ca m b i a m e n t o

Navigare verso il cambiamento. La St r a d a. p i ù semplice verso il ca m b i a m e n t o Navigare verso il cambiamento La St r a d a p i ù semplice verso il ca m b i a m e n t o Le caratteristiche tecniche del software La Tecnologia utilizzata EASY è una applicazione Open Source basata sul

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

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

Architettura di un sistema di calcolo

Architettura di un sistema di calcolo Richiami sulla struttura dei sistemi di calcolo Gestione delle Interruzioni Gestione della comunicazione fra processore e dispositivi periferici Gerarchia di memoria Protezione. 2.1 Architettura di un

Dettagli

FORSETI BLOG. Readcast. Aprile 2014 Speciale Heartbleed. http://blog.forseti.it/

FORSETI BLOG. Readcast. Aprile 2014 Speciale Heartbleed. http://blog.forseti.it/ FORSETI BLOG Readcast Aprile 2014 Speciale Heartbleed http://blog.forseti.it/ Indice di 3 Forseti Blog - Aprile 2014 3 di Dottore in Sicurezza dei Sistemi e delle Reti Informatiche, Dottore Magistrale

Dettagli

La Sicurezza in TITAN

La Sicurezza in TITAN La Sicurezza in TITAN Innovazione per Smartcard e Terminali PoI Emiliano Sparaco - Alberto Ferro Trento 08/03/2013 Agenda 2 Innovazione per Smartcard JavaCard e GlobalPlatform Multi-applicazione: L unione

Dettagli

SMS-GPS MANAGER. Software per la gestione remota ed automatizzata dei telecontrolli gsm con e senza gps

SMS-GPS MANAGER. Software per la gestione remota ed automatizzata dei telecontrolli gsm con e senza gps SOFTWARE PER LA GESTIONE DEI TELECONTROLLI SMS-GPS MANAGER Software per la gestione remota ed automatizzata dei telecontrolli gsm con e senza gps Rev.0911 Pag.1 di 8 www.carrideo.it INDICE 1. DESCRIZIONE

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

SICUREZZA. Sistemi Operativi. Sicurezza

SICUREZZA. Sistemi Operativi. Sicurezza SICUREZZA 14.1 Sicurezza Il Problema della Sicurezza Convalida Pericoli per i Programmi Pericoli per il Sistema Difendere i Sistemi Scoperta di Intrusioni Cifratura Esempio: Windows NT 14.2 Il Problema

Dettagli

Sistemi Operativi SICUREZZA. Sistemi Operativi. D. Talia - UNICAL 14.1

Sistemi Operativi SICUREZZA. Sistemi Operativi. D. Talia - UNICAL 14.1 SICUREZZA 14.1 Sicurezza Il Problema della Sicurezza Convalida Pericoli per i Programmi Pericoli per il Sistema Difendere i Sistemi Scoperta di Intrusioni Cifratura Esempio: Windows NT 14.2 Il Problema

Dettagli

Analisi dei Requisiti

Analisi dei Requisiti Analisi dei Requisiti Pagina 1 di 16 Analisi dei Requisiti Indice 1 - INTRODUZIONE... 4 1.1 - OBIETTIVO DEL DOCUMENTO...4 1.2 - STRUTTURA DEL DOCUMENTO...4 1.3 - RIFERIMENTI...4 1.4 - STORIA DEL DOCUMENTO...4

Dettagli

Quaderni di formazione Nuova Informatica

Quaderni di formazione Nuova Informatica Quaderni di formazione Nuova Informatica Airone versione 6 - Funzioni di Utilità e di Impostazione Copyright 1995,2001 Nuova Informatica S.r.l. - Corso del Popolo 411 - Rovigo Introduzione Airone Versione

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

Corso di Web programming Modulo T3 A2 - Web server

Corso di Web programming Modulo T3 A2 - Web server Corso di Web programming Modulo T3 A2 - Web server 1 Prerequisiti Pagine statiche e dinamiche Pagine HTML Server e client Cenni ai database e all SQL 2 1 Introduzione In questa Unità si illustra il concetto

Dettagli

LABORATORIO di INFORMATICA

LABORATORIO di INFORMATICA Università degli Studi di Cagliari Corso di Laurea Magistrale in Ingegneria per l Ambiente ed il Territorio LABORATORIO di INFORMATICA A.A. 2010/2011 Prof. Giorgio Giacinto INTRODUZIONE AI SISTEMI DI BASI

Dettagli

Introduzione alla Progettazione per Componenti

Introduzione alla Progettazione per Componenti Introduzione alla Progettazione per Componenti Alessandro Martinelli 6 ottobre 2014 Obiettivo del Corso Il Progetto Software Reale Il Componente Software La Programmazione Ad Oggetti Fondamenti di Informatica

Dettagli

Registro unico Antiriciclaggio

Registro unico Antiriciclaggio Registro unico Antiriciclaggio VERSIONE PROFESSIONISTI E CED VERSIONE 4.0.0 Sommario Introduzione... 4 Requisiti di sistema... 5 Installazione del software... 6 Verifica automatica dei requisiti di installazione...

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

File System Distribuiti

File System Distribuiti File System Distribuiti Introduzione Nominazione e Trasparenza Accesso ai File Remoti Servizio Con/Senza Informazione di Stato Replica dei File Un esempio di sistema 20.1 Introduzione File System Distribuito

Dettagli

Introduzione. File System Distribuiti. Nominazione e Trasparenza. Struttura dei DFS. Strutture di Nominazione

Introduzione. File System Distribuiti. Nominazione e Trasparenza. Struttura dei DFS. Strutture di Nominazione File System Distribuiti Introduzione Nominazione e Trasparenza Accesso ai File Remoti Servizio Con/Senza Informazione di Stato Replica dei File Un esempio di sistema Introduzione File System Distribuito

Dettagli

Sistemi operativi basati sul web

Sistemi operativi basati sul web Sistemi operativi basati sul web Anno Accademico 2009-2010 Relatore: Ch.mo prof. Porfirio Tramontana Candidato: Mirolla Salvatore Matricola:576/260 Introduzione ai sistemi operativi basati sul Web A differenza

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