Universita degli studi di Napoli FedericoII Facoltà di Scienze MM FF NN Corso di laurea in...

46
Universita degli studi di Universita degli studi di Napoli FedericoII Napoli FedericoII Facoltà di Scienze MM FF NN Facoltà di Scienze MM FF NN Corso di laurea in informatica Corso di laurea in informatica Studenti: Studenti: Bonaiuto Bruna 566/316 Bonaiuto Bruna 566/316 Capano Fabrizio 566/1334 Capano Fabrizio 566/1334

Transcript of Universita degli studi di Napoli FedericoII Facoltà di Scienze MM FF NN Corso di laurea in...

Page 1: Universita degli studi di Napoli FedericoII Facoltà di Scienze MM FF NN Corso di laurea in informatica Studenti: Bonaiuto Bruna 566/316 Capano Fabrizio.

Universita degli studi di Napoli Universita degli studi di Napoli FedericoII FedericoII

Facoltà di Scienze MM FF NNFacoltà di Scienze MM FF NN

Corso di laurea in informaticaCorso di laurea in informatica

Studenti:Studenti:

Bonaiuto Bruna 566/316Bonaiuto Bruna 566/316

Capano Fabrizio 566/1334Capano Fabrizio 566/1334

Page 2: Universita degli studi di Napoli FedericoII Facoltà di Scienze MM FF NN Corso di laurea in informatica Studenti: Bonaiuto Bruna 566/316 Capano Fabrizio.

SeminarioSeminario

Page 3: Universita degli studi di Napoli FedericoII Facoltà di Scienze MM FF NN Corso di laurea in informatica Studenti: Bonaiuto Bruna 566/316 Capano Fabrizio.

Sistemi Operativi embeddedSistemi Operativi embedded

I sistemi operativi per sistemi di I sistemi operativi per sistemi di elaborazione incorporati seguono i elaborazione incorporati seguono i principi classici dei SO ma devono principi classici dei SO ma devono tener conto di particolari aspetti:tener conto di particolari aspetti:Memoria limitataMemoria limitata

Velocità della cpuVelocità della cpu

Schermi di piccole dimensioniSchermi di piccole dimensioni

Page 4: Universita degli studi di Napoli FedericoII Facoltà di Scienze MM FF NN Corso di laurea in informatica Studenti: Bonaiuto Bruna 566/316 Capano Fabrizio.

Sistemi Operativi embeddedSistemi Operativi embedded

Memoria limitataMemoria limitata

La quantità di memoria di questi dispositivi La quantità di memoria di questi dispositivi varia da qualche mega a qualche decina di varia da qualche mega a qualche decina di mega per questo motivo i sistemi operativi mega per questo motivo i sistemi operativi devono gestire la memoria in modo devono gestire la memoria in modo efficiente, assicurandosi che questa venga efficiente, assicurandosi che questa venga rilasciata al gestore della memoria ogni volta rilasciata al gestore della memoria ogni volta che non è più usata, oppure implementando che non è più usata, oppure implementando tecniche di memoria virtuali. Inoltre è tecniche di memoria virtuali. Inoltre è possibile realizzare un kernel possibile realizzare un kernel estremamente contenuto che implementi estremamente contenuto che implementi solo i servizi strettamente necessari. solo i servizi strettamente necessari.

Page 5: Universita degli studi di Napoli FedericoII Facoltà di Scienze MM FF NN Corso di laurea in informatica Studenti: Bonaiuto Bruna 566/316 Capano Fabrizio.

Sistemi Operativi embeddedSistemi Operativi embedded

Velocità della cpuVelocità della cpu

Le cpu integrate in questo tipo di Le cpu integrate in questo tipo di sistemi sono più lente sia a causa sistemi sono più lente sia a causa della dimensione ridotta dei dispositivi della dimensione ridotta dei dispositivi sia perché cpu più veloci consumano sia perché cpu più veloci consumano più energia. Il sistema operativo deve più energia. Il sistema operativo deve essere progettato in modo da non essere progettato in modo da non gravare eccessivamente sulle cpu.gravare eccessivamente sulle cpu.

Page 6: Universita degli studi di Napoli FedericoII Facoltà di Scienze MM FF NN Corso di laurea in informatica Studenti: Bonaiuto Bruna 566/316 Capano Fabrizio.

Sistemi Operativi embeddedSistemi Operativi embedded

Schermi ridottiSchermi ridotti

A causa delle dimensioni dello A causa delle dimensioni dello schermo, per consentire le diverse schermo, per consentire le diverse operazioni che ormai sono svolte da operazioni che ormai sono svolte da questi dispositivi (come la questi dispositivi (come la navigazione in rete, giochi e molto navigazione in rete, giochi e molto altro), i sistemi operativi devono altro), i sistemi operativi devono gestire il layout delle immagini in gestire il layout delle immagini in modo efficiente.modo efficiente.

Page 7: Universita degli studi di Napoli FedericoII Facoltà di Scienze MM FF NN Corso di laurea in informatica Studenti: Bonaiuto Bruna 566/316 Capano Fabrizio.

Sistemi Operativi embeddedSistemi Operativi embedded

Palm OSPalm OS

Symbian OS Symbian OS

Windows CEWindows CE

Embedded LinuxEmbedded Linux

Java CardJava Card

Page 8: Universita degli studi di Napoli FedericoII Facoltà di Scienze MM FF NN Corso di laurea in informatica Studenti: Bonaiuto Bruna 566/316 Capano Fabrizio.

Sistemi Operativi : Palm OSSistemi Operativi : Palm OS

Sistema operativo per palmari Sistema operativo per palmari PDA(Personal Digital Assistant).PDA(Personal Digital Assistant).

Implementato su CPU Motorola a 16 bitImplementato su CPU Motorola a 16 bit

Versione corrente : 5.2 con supporto Versione corrente : 5.2 con supporto Bluetooth e 65K colori per PDA/cellulari Bluetooth e 65K colori per PDA/cellulari multimediali.multimediali.

Page 9: Universita degli studi di Napoli FedericoII Facoltà di Scienze MM FF NN Corso di laurea in informatica Studenti: Bonaiuto Bruna 566/316 Capano Fabrizio.

Sistemi Operativi : Palm OSSistemi Operativi : Palm OS

Page 10: Universita degli studi di Napoli FedericoII Facoltà di Scienze MM FF NN Corso di laurea in informatica Studenti: Bonaiuto Bruna 566/316 Capano Fabrizio.

Sistemi Operativi : Palm OSSistemi Operativi : Palm OS

User InterfaceUser Interface

riguarda la gestione dell’I/O grafico, e riguarda la gestione dell’I/O grafico, e del menu.del menu.

Memory ManagementMemory Management

DB, runtime space, system space, DB, runtime space, system space, variabili globali.variabili globali.

Page 11: Universita degli studi di Napoli FedericoII Facoltà di Scienze MM FF NN Corso di laurea in informatica Studenti: Bonaiuto Bruna 566/316 Capano Fabrizio.

Sistemi Operativi : Palm OSSistemi Operativi : Palm OS

System ManagementSystem Management::

eventi, alarms, time, …eventi, alarms, time, …

Communication LayerCommunication Layer

I/O seriale, TCP/IP, Infrared Data I/O seriale, TCP/IP, Infrared Data Association (IrDA).Association (IrDA).

Page 12: Universita degli studi di Napoli FedericoII Facoltà di Scienze MM FF NN Corso di laurea in informatica Studenti: Bonaiuto Bruna 566/316 Capano Fabrizio.

Sistemi Operativi : Palm OSSistemi Operativi : Palm OS

User managementUser management: : SO single userSO single user..DimensioneDimensione: : v 3.5 richiede circa 1.4 MBytes.v 3.5 richiede circa 1.4 MBytes.Task ManagementTask Management: : una applicazione per una applicazione per

volta con chiamate ad alte applicazioni. Palm volta con chiamate ad alte applicazioni. Palm OS è un sistema a single task guidato dagli OS è un sistema a single task guidato dagli eventi.eventi.

Power ManagementPower Management: : tre stati (sleep, doze, tre stati (sleep, doze, running)running)

Page 13: Universita degli studi di Napoli FedericoII Facoltà di Scienze MM FF NN Corso di laurea in informatica Studenti: Bonaiuto Bruna 566/316 Capano Fabrizio.

Sistemi Operativi : Palm OS Sistemi Operativi : Palm OS

Memory ManagementMemory Management::

Le applicazioni non sono separate Le applicazioni non sono separate (una applicazione può causare il crash (una applicazione può causare il crash del sistema). del sistema).

Il file system tradizionale è sostituito Il file system tradizionale è sostituito da un insieme di database gestiti da da un insieme di database gestiti da un Database Manager un Database Manager

Page 14: Universita degli studi di Napoli FedericoII Facoltà di Scienze MM FF NN Corso di laurea in informatica Studenti: Bonaiuto Bruna 566/316 Capano Fabrizio.

Sistemi Operativi : Palm OSSistemi Operativi : Palm OS

La memoria è separata in:La memoria è separata in:

• Dynamic heap:Dynamic heap: dimensione tra 64Kb e dimensione tra 64Kb e 256Kb e serve a contenere le variabili 256Kb e serve a contenere le variabili globali, lo stack, e la memoria allocata globali, lo stack, e la memoria allocata dinamicamente durante l’uso.dinamicamente durante l’uso.

• Storage:Storage: contiene dati permanenti (DB, contiene dati permanenti (DB, files)files)

che non vanno cancellati allo spegnimento.che non vanno cancellati allo spegnimento.

Page 15: Universita degli studi di Napoli FedericoII Facoltà di Scienze MM FF NN Corso di laurea in informatica Studenti: Bonaiuto Bruna 566/316 Capano Fabrizio.

Sistemi Operativi: Palm OS – Sistemi Operativi: Palm OS – Sviluppo SWSviluppo SW

Sviluppo del Software in C e C++.Sviluppo del Software in C e C++.

Esiste un Palm Emulator per Esiste un Palm Emulator per sviluppare e fare il test delle sviluppare e fare il test delle applicazioni prima di eseguirle su applicazioni prima di eseguirle su Palm OS.Palm OS.

Page 16: Universita degli studi di Napoli FedericoII Facoltà di Scienze MM FF NN Corso di laurea in informatica Studenti: Bonaiuto Bruna 566/316 Capano Fabrizio.

Sistemi Operativi: Symbian Sistemi Operativi: Symbian OSOS

• Creato come SO per telefonia mobile.Creato come SO per telefonia mobile.

• Attualmente sviluppato da Symbian.Attualmente sviluppato da Symbian.

• Usato in cellulari NOKIA e Sony Usato in cellulari NOKIA e Sony Ericsson e su diversi processori (anche Ericsson e su diversi processori (anche in emulazione).in emulazione).

• Caratteristiche: multi-tasking, real-Caratteristiche: multi-tasking, real-time pre-emptive.time pre-emptive.

Page 17: Universita degli studi di Napoli FedericoII Facoltà di Scienze MM FF NN Corso di laurea in informatica Studenti: Bonaiuto Bruna 566/316 Capano Fabrizio.

Sistemi Operativi : Symbian Sistemi Operativi : Symbian OSOS

Page 18: Universita degli studi di Napoli FedericoII Facoltà di Scienze MM FF NN Corso di laurea in informatica Studenti: Bonaiuto Bruna 566/316 Capano Fabrizio.

Sistemi Operativi : Symbian Sistemi Operativi : Symbian OSOS

• User managementUser management:: SO single user. SO single user.

• Task ManagementTask Management:: microkernel microkernel real-time, multitasking con real-time, multitasking con scheduling pre-emptive e con scheduling pre-emptive e con priorità. priorità.

Page 19: Universita degli studi di Napoli FedericoII Facoltà di Scienze MM FF NN Corso di laurea in informatica Studenti: Bonaiuto Bruna 566/316 Capano Fabrizio.

Sistemi Operativi : Symbian Sistemi Operativi : Symbian OSOS

• Memory User interface:Memory User interface: con con interfaccia standard: grafica, suoni interfaccia standard: grafica, suoni e tastiera.e tastiera.

• ManagementManagement:: MMU con spazi di MMU con spazi di indirizzi separati per applicazioni.indirizzi separati per applicazioni.

Page 20: Universita degli studi di Napoli FedericoII Facoltà di Scienze MM FF NN Corso di laurea in informatica Studenti: Bonaiuto Bruna 566/316 Capano Fabrizio.

Sistemi Operativi : Symbian Sistemi Operativi : Symbian OSOS

• Sviluppo del Software in C++, Java e Sviluppo del Software in C++, Java e OPL (Basic-like).OPL (Basic-like).

• Esiste un Simulatore per sviluppare Esiste un Simulatore per sviluppare e fare il test delleapplicazioni prima e fare il test delleapplicazioni prima di eseguirle su Symbian OSdi eseguirle su Symbian OS

Page 21: Universita degli studi di Napoli FedericoII Facoltà di Scienze MM FF NN Corso di laurea in informatica Studenti: Bonaiuto Bruna 566/316 Capano Fabrizio.

Sistemi Operativi: Windows Sistemi Operativi: Windows CE CE

• Windows CE è una versione di Windows Windows CE è una versione di Windows sviluppata per sistemi mobili.sviluppata per sistemi mobili.

• Il sistema va configurato per la Il sistema va configurato per la specifica piattaforma (PDA, cellulare, specifica piattaforma (PDA, cellulare, altro) su cui deve essere usato. Basato altro) su cui deve essere usato. Basato su memoria ROM.su memoria ROM.

• Ha l’interfaccia tipica di Windows Ha l’interfaccia tipica di Windows adattata per i display dei sistemi mobili.adattata per i display dei sistemi mobili.

Page 22: Universita degli studi di Napoli FedericoII Facoltà di Scienze MM FF NN Corso di laurea in informatica Studenti: Bonaiuto Bruna 566/316 Capano Fabrizio.

SistemiSistemi OperativiOperativi: : WindowsWindows CE – CE –

ConfigurazioneConfigurazione

Page 23: Universita degli studi di Napoli FedericoII Facoltà di Scienze MM FF NN Corso di laurea in informatica Studenti: Bonaiuto Bruna 566/316 Capano Fabrizio.

Sistemi Operativi: Windows Sistemi Operativi: Windows CE CE

• User managementUser management:: SO single user. SO single user.

• Task ManagementTask Management:: Fino a 32 Fino a 32 processi e un numero elevato di processi e un numero elevato di thread (limitato dalla memoria thread (limitato dalla memoria disponibile)disponibile)

Page 24: Universita degli studi di Napoli FedericoII Facoltà di Scienze MM FF NN Corso di laurea in informatica Studenti: Bonaiuto Bruna 566/316 Capano Fabrizio.

Sistemi Operativi: Windows Sistemi Operativi: Windows CECE

• User InterfaceUser Interface:: icone, dialog boxes, icone, dialog boxes, menu, suoni (approccio alla Windows)menu, suoni (approccio alla Windows)

• Memory ManagementMemory Management:: memoria memoria protetta con 32 protetta con 32 MB per processo, heap MB per processo, heap per file system, registry e object store per file system, registry e object store (fino a 256 MB).(fino a 256 MB).

Page 25: Universita degli studi di Napoli FedericoII Facoltà di Scienze MM FF NN Corso di laurea in informatica Studenti: Bonaiuto Bruna 566/316 Capano Fabrizio.

Sistemi Operativi: Windows Sistemi Operativi: Windows CECE

• DimensioneDimensione:: da 400 Kb (kernel) a 3 da 400 Kb (kernel) a 3 MB (sistema completo) fino a 8 MB.MB (sistema completo) fino a 8 MB.

• SecuritySecurity:: Crittografia con una Crittografia con una libreria per gestire i dati memorizzati libreria per gestire i dati memorizzati in sicurezza. Memorizzazione sicura in sicurezza. Memorizzazione sicura con smart card.con smart card.

• Ambienti SoftwareAmbienti Software:: Visual C++, Visual C++, Visual Basic.Visual Basic.

Page 26: Universita degli studi di Napoli FedericoII Facoltà di Scienze MM FF NN Corso di laurea in informatica Studenti: Bonaiuto Bruna 566/316 Capano Fabrizio.

Sistemi Operativi: Embedded Sistemi Operativi: Embedded LinuxLinux

• Versione di Linux per sistemi di elaborazione Versione di Linux per sistemi di elaborazione incorporati.incorporati.

• Architettura a microkernel. Funzioni e servizi Architettura a microkernel. Funzioni e servizi compilabili nel kernel o generabili come compilabili nel kernel o generabili come moduli separati da caricare dinamicamente.moduli separati da caricare dinamicamente.

• Ampia gamma di protocolli e servizi per il Ampia gamma di protocolli e servizi per il networking.networking.

• Configurabile e scalabile da un orologio ad Configurabile e scalabile da un orologio ad un multiprocessore.un multiprocessore.

Page 27: Universita degli studi di Napoli FedericoII Facoltà di Scienze MM FF NN Corso di laurea in informatica Studenti: Bonaiuto Bruna 566/316 Capano Fabrizio.

Sistemi Operativi: Embedded Sistemi Operativi: Embedded LinuxLinux

• User managementUser management:: SO multi user. SO multi user.

• Task ManagementTask Management:: Multitasking Multitasking con scheduler preemptive con scheduler preemptive e real-time e real-time (opzionale). Supporto per (opzionale). Supporto per multiprocessori.multiprocessori.

Page 28: Universita degli studi di Napoli FedericoII Facoltà di Scienze MM FF NN Corso di laurea in informatica Studenti: Bonaiuto Bruna 566/316 Capano Fabrizio.

Sistemi Operativi: Embedded Sistemi Operativi: Embedded LinuxLinux

• User InterfaceUser Interface:: basata su X-Window. basata su X-Window.

• Memory ManagementMemory Management:: gestione alla gestione alla Linux con MMU e memoria virtuale.Linux con MMU e memoria virtuale.

• Dimensione:Dimensione: da 200 Kb (kernel) a circa 10 da 200 Kb (kernel) a circa 10 MB.MB.

Page 29: Universita degli studi di Napoli FedericoII Facoltà di Scienze MM FF NN Corso di laurea in informatica Studenti: Bonaiuto Bruna 566/316 Capano Fabrizio.

Sistemi Operativi: Embedded Sistemi Operativi: Embedded LinuxLinux

• Linguaggi: C, C++, JavaLinguaggi: C, C++, Java

• Driver, utility, protocolli e programmi Driver, utility, protocolli e programmi client e server disponibili per client e server disponibili per connessioni Internet.connessioni Internet.

Page 30: Universita degli studi di Napoli FedericoII Facoltà di Scienze MM FF NN Corso di laurea in informatica Studenti: Bonaiuto Bruna 566/316 Capano Fabrizio.

Sistemi Operativi: Embedded Sistemi Operativi: Embedded LinuxLinux

svilupposviluppo• I primi sistemi embedded venivano scritti I primi sistemi embedded venivano scritti

diretamente in linguaggio macchina al fine di diretamente in linguaggio macchina al fine di sfruttare al massimo le prestazioni dell’hardware sfruttare al massimo le prestazioni dell’hardware sottostante . sottostante .

• Il passaggio a linguaggi a più alto livello di Il passaggio a linguaggi a più alto livello di astrazione ma pur sempre dotati di costrutti astrazione ma pur sempre dotati di costrutti vicini allo strato hardware, come il C, ha vicini allo strato hardware, come il C, ha permesso di incrementare notevolmente la permesso di incrementare notevolmente la portabilità del software delegandone le difficoltà portabilità del software delegandone le difficoltà al compilatore. Questo tipo di approccio ha al compilatore. Questo tipo di approccio ha consentito ai produttori di sviluppare moduli di consentito ai produttori di sviluppare moduli di crescente complessità per l’implementazione di crescente complessità per l’implementazione di funzionalità di file-system, di connettività in rete funzionalità di file-system, di connettività in rete e di interfacciamento grafico. e di interfacciamento grafico.

Page 31: Universita degli studi di Napoli FedericoII Facoltà di Scienze MM FF NN Corso di laurea in informatica Studenti: Bonaiuto Bruna 566/316 Capano Fabrizio.

Sistemi Operativi: Sistemi Operativi: Embedded Linux & Real TimeEmbedded Linux & Real Time

• Un sistema operativo in tempo reale Un sistema operativo in tempo reale può essere descritto come un insieme può essere descritto come un insieme di servizi di sistema messi a di servizi di sistema messi a disposizione dello sviluppatore disposizione dello sviluppatore congiuntamente ad uno schedulatore di congiuntamente ad uno schedulatore di task che sia flessibile e non richieda task che sia flessibile e non richieda troppe risorse sia in termini di troppe risorse sia in termini di occupazione di memoria che di velocità occupazione di memoria che di velocità di esecuzione. di esecuzione.

Page 32: Universita degli studi di Napoli FedericoII Facoltà di Scienze MM FF NN Corso di laurea in informatica Studenti: Bonaiuto Bruna 566/316 Capano Fabrizio.

Sistemi Operativi: Sistemi Operativi: Embedded Linux & Real TimeEmbedded Linux & Real Time

Aspetti che caratterizzano un RTOS:Aspetti che caratterizzano un RTOS:• Deve essere multithread, ossia deve consentire Deve essere multithread, ossia deve consentire

l’esecuzione di più attività concorrenti e deve l’esecuzione di più attività concorrenti e deve disporre di un meccanismo che permetta di disporre di un meccanismo che permetta di assegnare una priorità ereditaria ad ogni thread. assegnare una priorità ereditaria ad ogni thread.

• Inoltre deve essere possibile arrestare e Inoltre deve essere possibile arrestare e riprendere ciascun thread in qualunque istante, riprendere ciascun thread in qualunque istante, compatibilmente con la risoluzione temporale del compatibilmente con la risoluzione temporale del sistema. Questa caratteristica, detta preempibilità, sistema. Questa caratteristica, detta preempibilità, permette di rispondere ‘in tempo reale’ agli eventi permette di rispondere ‘in tempo reale’ agli eventi critici sospendendo immediatamente i compiti critici sospendendo immediatamente i compiti meno importanti a vantaggio di quelli essenziali meno importanti a vantaggio di quelli essenziali alla missione del sistema. alla missione del sistema. 

Page 33: Universita degli studi di Napoli FedericoII Facoltà di Scienze MM FF NN Corso di laurea in informatica Studenti: Bonaiuto Bruna 566/316 Capano Fabrizio.

Java CardJava Card

• Java Card è un ambiente per lo Java Card è un ambiente per lo sviluppo di applicazioni su smart card sviluppo di applicazioni su smart card (es., la SIM di un cellulare) in Java.(es., la SIM di un cellulare) in Java.

• Permette lo sviluppo di servizi e Permette lo sviluppo di servizi e codice indipendenti dalla piattaforma codice indipendenti dalla piattaforma e permette card multi-applicazione.e permette card multi-applicazione.

Page 34: Universita degli studi di Napoli FedericoII Facoltà di Scienze MM FF NN Corso di laurea in informatica Studenti: Bonaiuto Bruna 566/316 Capano Fabrizio.

Java CardJava Card

Attualmente sono disponibili molti modelli di Attualmente sono disponibili molti modelli di SmartCard per le applicazioni più disparate. SmartCard per le applicazioni più disparate. La maggior parte di questi però sono La maggior parte di questi però sono incompatibili fra loro a causa delle diversità incompatibili fra loro a causa delle diversità degli ambienti d’esecuzione di cui sono degli ambienti d’esecuzione di cui sono dotati. L’ambiente JavaCard permette di dotati. L’ambiente JavaCard permette di standardizzare l’ambiente d’esecuzione, e standardizzare l’ambiente d’esecuzione, e quindi permette la realizzazione quindi permette la realizzazione d’applicazioni per SmartCard portabili. d’applicazioni per SmartCard portabili.

Page 35: Universita degli studi di Napoli FedericoII Facoltà di Scienze MM FF NN Corso di laurea in informatica Studenti: Bonaiuto Bruna 566/316 Capano Fabrizio.

Java CardJava Card

Attualmente la tecnologia delle SmartCard Attualmente la tecnologia delle SmartCard ha ormai raggiunto un alto livello ha ormai raggiunto un alto livello d’affidabilità, ma sono molteplici le d’affidabilità, ma sono molteplici le metodologie di progetto e metodologie di progetto e d’implementazioni attualmente disponibili. d’implementazioni attualmente disponibili. Questo dipende principalmente dalla Questo dipende principalmente dalla mancanza di uno standard per l’ambiente mancanza di uno standard per l’ambiente d’esecuzione della SmartCard. In pratica, d’esecuzione della SmartCard. In pratica, un’applicazione sviluppata per una certa un’applicazione sviluppata per una certa SmartCard non può quasi mai essere SmartCard non può quasi mai essere utilizzata per un’altra SmartCard. utilizzata per un’altra SmartCard.

Page 36: Universita degli studi di Napoli FedericoII Facoltà di Scienze MM FF NN Corso di laurea in informatica Studenti: Bonaiuto Bruna 566/316 Capano Fabrizio.

Java CardJava Card La miglior soluzione disponibile per la La miglior soluzione disponibile per la

standardizzazione dell’ambiente d’esecuzione è standardizzazione dell’ambiente d’esecuzione è l’ambiente JavaCard, proposto da SUN l’ambiente JavaCard, proposto da SUN Microsystems. L’implementazione di Microsystems. L’implementazione di quest’ambiente prevede l’inserimento di un quest’ambiente prevede l’inserimento di un interprete Java standardizzato sulla carta e la interprete Java standardizzato sulla carta e la creazione di una serie di API Java per l’accesso creazione di una serie di API Java per l’accesso alle risorse della carta. In questo modo, è alle risorse della carta. In questo modo, è possibile sviluppare servizi in grado di possibile sviluppare servizi in grado di funzionare indifferentemente su qualsiasi carta. funzionare indifferentemente su qualsiasi carta. Questa soluzione ha anche un altro grande Questa soluzione ha anche un altro grande vantaggio: l’utilizzo del linguaggio Java, un vantaggio: l’utilizzo del linguaggio Java, un linguaggio di alto livello ben conosciuto da una linguaggio di alto livello ben conosciuto da una moltitudine di sviluppatori. moltitudine di sviluppatori.

Page 37: Universita degli studi di Napoli FedericoII Facoltà di Scienze MM FF NN Corso di laurea in informatica Studenti: Bonaiuto Bruna 566/316 Capano Fabrizio.

Java Card - TecnologiaJava Card - Tecnologia

Le JavaCard (così sono chiamate le Smartcard Le JavaCard (così sono chiamate le Smartcard che integrano l’ambiente JavaCard) presentano che integrano l’ambiente JavaCard) presentano una serie di caratteristiche peculiari che le una serie di caratteristiche peculiari che le rendono estremamente competitive rispetto rendono estremamente competitive rispetto alle SmartCard. Queste caratteristiche sono le alle SmartCard. Queste caratteristiche sono le seguenti: seguenti:    

• Indipendenza dalla piattaforma: Indipendenza dalla piattaforma: un’applicazione per JavaCard, scritta un’applicazione per JavaCard, scritta rispettando le regole imposte dall’API rispettando le regole imposte dall’API JavaCard, può essere utilizzata senza JavaCard, può essere utilizzata senza modifiche su JavaCard fornite da costruttori modifiche su JavaCard fornite da costruttori diversi.diversi.

Page 38: Universita degli studi di Napoli FedericoII Facoltà di Scienze MM FF NN Corso di laurea in informatica Studenti: Bonaiuto Bruna 566/316 Capano Fabrizio.

Java Card - TecnologiaJava Card - Tecnologia• Supporto a più applicazioni: su una stessa Supporto a più applicazioni: su una stessa

JavaCard possono coesistere diverse JavaCard possono coesistere diverse applicazioni (JavaCard Applet) indipendenti fra applicazioni (JavaCard Applet) indipendenti fra loro e selezionabili singolarmente in fase di loro e selezionabili singolarmente in fase di esecuzione;  esecuzione; 

• Caricamento di nuove applicazioni dopo la Caricamento di nuove applicazioni dopo la consegna: dopo che una JavaCard è stata consegna: dopo che una JavaCard è stata consegnata all’utente finale è ancora possibile consegnata all’utente finale è ancora possibile procedere al caricamento di nuove applicazioni procedere al caricamento di nuove applicazioni attraverso gli stessi terminali addetti attraverso gli stessi terminali addetti all’espletamento dei servizi, questo per all’espletamento dei servizi, questo per soddisfare le nuove necessità espresse soddisfare le nuove necessità espresse dall’utente; dall’utente;

Page 39: Universita degli studi di Napoli FedericoII Facoltà di Scienze MM FF NN Corso di laurea in informatica Studenti: Bonaiuto Bruna 566/316 Capano Fabrizio.

Java Card - TecnologiaJava Card - Tecnologia

• Flessibilità: il linguaggio utilizzato per Flessibilità: il linguaggio utilizzato per programmare le JavaCard è un subset del programmare le JavaCard è un subset del linguaggio Java, quindi la programmazione linguaggio Java, quindi la programmazione può sfruttare il paradigma della può sfruttare il paradigma della programmazione ad oggetti; programmazione ad oggetti;

• Compatibilità con gli standard delle Compatibilità con gli standard delle SmartCard: le JavaCard sono compatibili SmartCard: le JavaCard sono compatibili con lo standard ISO 7816, lo standard più con lo standard ISO 7816, lo standard più diffuso nel campo delle SmartCard. diffuso nel campo delle SmartCard.

Page 40: Universita degli studi di Napoli FedericoII Facoltà di Scienze MM FF NN Corso di laurea in informatica Studenti: Bonaiuto Bruna 566/316 Capano Fabrizio.

Java Card - TecnologiaJava Card - Tecnologia

L’ambiente JavaCard è costituito L’ambiente JavaCard è costituito generalmente da tre tipi diversi di generalmente da tre tipi diversi di memoria: memoria ROM, memoria memoria: memoria ROM, memoria EEPROM e memoria RAM. Di seguito EEPROM e memoria RAM. Di seguito sono forniti i dettagli relativi ad sono forniti i dettagli relativi ad ognuno: ognuno:    

Page 41: Universita degli studi di Napoli FedericoII Facoltà di Scienze MM FF NN Corso di laurea in informatica Studenti: Bonaiuto Bruna 566/316 Capano Fabrizio.

Java Card - MemoriaJava Card - Memoria

• Memoria ROM: questo tipo di memoria, Memoria ROM: questo tipo di memoria, a sola lettura, è utilizzato per contenere a sola lettura, è utilizzato per contenere tutto il codice che non richiede tutto il codice che non richiede modifiche, cioè il sistema operativo modifiche, cioè il sistema operativo della JavaCard. La dimensione di della JavaCard. La dimensione di questo tipo di memoria è di circa 32 questo tipo di memoria è di circa 32 KByte per buona parte delle JavaCard KByte per buona parte delle JavaCard attualmente in commercio, mentre la attualmente in commercio, mentre la dimensione minima richiesta è di 24 dimensione minima richiesta è di 24 KByte; KByte;

Page 42: Universita degli studi di Napoli FedericoII Facoltà di Scienze MM FF NN Corso di laurea in informatica Studenti: Bonaiuto Bruna 566/316 Capano Fabrizio.

Java Card - MemoriaJava Card - Memoria

• Memoria EEPROM: questo tipo di memoria, Memoria EEPROM: questo tipo di memoria, riscrivibile elettronicamente, è utilizzato riscrivibile elettronicamente, è utilizzato per contenere le estensioni del JCRE per contenere le estensioni del JCRE (Java Card Runtime Environment, (Java Card Runtime Environment, l’infrastruttura che permette il l’infrastruttura che permette il funzionamento della JavaCard) funzionamento della JavaCard) e le e le JavaCard Applet (applicazioni sviluppate JavaCard Applet (applicazioni sviluppate esternamente e caricabili sulla JavaCard). esternamente e caricabili sulla JavaCard). La dimensione di questo tipo di memoria è La dimensione di questo tipo di memoria è di minimo circa 16 KByte.di minimo circa 16 KByte.

Page 43: Universita degli studi di Napoli FedericoII Facoltà di Scienze MM FF NN Corso di laurea in informatica Studenti: Bonaiuto Bruna 566/316 Capano Fabrizio.

Java Card - MemoriaJava Card - Memoria

• Memoria RAM: questo tipo di memoria, Memoria RAM: questo tipo di memoria, denominato anche volatile, è utilizzato per denominato anche volatile, è utilizzato per contenere l’heap e lo stack necessari per contenere l’heap e lo stack necessari per l’esecuzione, quindi le variabili e gli oggetti l’esecuzione, quindi le variabili e gli oggetti temporanei creati durante l’esecuzione temporanei creati durante l’esecuzione delle JavaCard Applet. La dimensione di delle JavaCard Applet. La dimensione di questo tipo di memoria è di circa un KByte questo tipo di memoria è di circa un KByte per buona parte delle JavaCard attualmente per buona parte delle JavaCard attualmente in commercio, mentre la dimensione in commercio, mentre la dimensione minima richiesta è di 500 Byte. minima richiesta è di 500 Byte.

Page 44: Universita degli studi di Napoli FedericoII Facoltà di Scienze MM FF NN Corso di laurea in informatica Studenti: Bonaiuto Bruna 566/316 Capano Fabrizio.

Java Card - ConclusioniJava Card - Conclusioni

E’ importante notare che le E’ importante notare che le configurazioni hardware descritte configurazioni hardware descritte precedentemente sono compatibili con precedentemente sono compatibili con la maggior parte delle SmartCard la maggior parte delle SmartCard utilizzate attualmente. Questo implica utilizzate attualmente. Questo implica che l’ambiente JavaCard potrebbe che l’ambiente JavaCard potrebbe essere adottato sulla maggioranza essere adottato sulla maggioranza degli hardware attualmente disponibili.degli hardware attualmente disponibili.

Page 45: Universita degli studi di Napoli FedericoII Facoltà di Scienze MM FF NN Corso di laurea in informatica Studenti: Bonaiuto Bruna 566/316 Capano Fabrizio.

ConclusioniConclusioni

• Palm OS è semplice, compatto, ma Palm OS è semplice, compatto, ma non implementa il multitasking e non implementa il multitasking e meccanismi di security.meccanismi di security.

• Symbian OS è più complesso, ma più Symbian OS è più complesso, ma più generale e multitasking.generale e multitasking.

• Windows CE supporta configurazioni Windows CE supporta configurazioni flessibili e usa crittografia per la flessibili e usa crittografia per la security.security.

Page 46: Universita degli studi di Napoli FedericoII Facoltà di Scienze MM FF NN Corso di laurea in informatica Studenti: Bonaiuto Bruna 566/316 Capano Fabrizio.

ConclusioniConclusioni

• Embedded Linux offre l’interfaccia di Embedded Linux offre l’interfaccia di programmazione avanzata di Linux è programmazione avanzata di Linux è consente la portabilità del codice.consente la portabilità del codice.

• Java fornisce un ambiente per la Java fornisce un ambiente per la standardizzazione delle applicazioni standardizzazione delle applicazioni sulle smart cardsulle smart card