460 likes | 555 Views
Universita degli studi di Napoli FedericoII. Facoltà di Scienze MM FF NN Corso di laurea in informatica Studenti: Bonaiuto Bruna 566/316 Capano Fabrizio 566/1334. Seminario. Sistemi operativi embedded. Sistemi Operativi embedded.
E N D
Universita degli studi di Napoli FedericoII Facoltà di Scienze MM FF NN Corso di laurea in informatica Studenti: Bonaiuto Bruna 566/316 Capano Fabrizio 566/1334
Seminario Sistemi operativi embedded
Sistemi Operativi embedded I sistemi operativi per sistemi di elaborazione incorporati seguono i principi classici dei SO ma devono tener conto di particolari aspetti: • Memoria limitata • Velocità della cpu • Schermi di piccole dimensioni
Sistemi Operativi embedded Memoria limitata La quantità di memoria di questi dispositivi varia da qualche mega a qualche decina di mega per questo motivo i sistemi operativi devono gestire la memoria in modo efficiente, assicurandosi che questa venga rilasciata al gestore della memoria ogni volta che non è più usata, oppure implementando tecniche di memoria virtuali. Inoltre è possibile realizzare un kernel estremamente contenuto che implementi solo i servizi strettamente necessari.
Sistemi Operativi embedded Velocità della cpu Le cpu integrate in questo tipo di sistemi sono più lente sia a causa della dimensione ridotta dei dispositivi sia perché cpu più veloci consumano più energia. Il sistema operativo deve essere progettato in modo da non gravare eccessivamente sulle cpu.
Sistemi Operativi embedded Schermi ridotti A causa delle dimensioni dello schermo, per consentire le diverse operazioni che ormai sono svolte da questi dispositivi (come la navigazione in rete, giochi e molto altro), i sistemi operativi devono gestire il layout delle immagini in modo efficiente.
Sistemi Operativi embedded Palm OS Symbian OS Windows CE Embedded Linux Java Card
Sistemi Operativi : Palm OS • Sistema operativo per palmari PDA(Personal Digital Assistant). • Implementato su CPU Motorola a 16 bit • Versione corrente : 5.2 con supporto Bluetooth e 65K colori per PDA/cellulari multimediali.
Sistemi Operativi : Palm OS User Interface riguarda la gestione dell’I/O grafico, e del menu. Memory Management DB, runtime space, system space, variabili globali.
Sistemi Operativi : Palm OS System Management: eventi, alarms, time, … Communication Layer I/O seriale, TCP/IP, Infrared Data Association (IrDA).
Sistemi Operativi : Palm OS • User management: SO single user. • Dimensione: v 3.5 richiede circa 1.4 MBytes. • Task Management: una applicazione per volta con chiamate ad alte applicazioni. Palm OS è un sistema a single task guidato dagli eventi. • Power Management: tre stati (sleep, doze, running)
Sistemi Operativi : Palm OS Memory Management: • Le applicazioni non sono separate (una applicazione può causare il crash del sistema). • Il file system tradizionale è sostituito da un insieme di database gestiti da un Database Manager
Sistemi Operativi : Palm OS La memoria è separata in: • Dynamic heap: dimensione tra 64Kb e 256Kb e serve a contenere le variabili globali, lo stack, e la memoria allocata dinamicamente durante l’uso. • Storage: contiene dati permanenti (DB, files) che non vanno cancellati allo spegnimento.
Sistemi Operativi: Palm OS – Sviluppo SW • Sviluppo del Software in C e C++. • Esiste un Palm Emulator per sviluppare e fare il test delle applicazioni prima di eseguirle su Palm OS.
Sistemi Operativi: Symbian OS • Creato come SO per telefonia mobile. • Attualmente sviluppato da Symbian. • Usato in cellulari NOKIA e Sony Ericsson e su diversi processori (anche in emulazione). • Caratteristiche: multi-tasking, real-time pre-emptive.
Sistemi Operativi : Symbian OS • User management: SO single user. • Task Management: microkernel real-time, multitasking con scheduling pre-emptive e con priorità.
Sistemi Operativi : Symbian OS • Memory User interface: con interfaccia standard: grafica, suoni e tastiera. • Management: MMU con spazi di indirizzi separati per applicazioni.
Sistemi Operativi : Symbian OS • Sviluppo del Software in C++, Java e OPL (Basic-like). • Esiste un Simulatore per sviluppare e fare il test delleapplicazioni prima di eseguirle su Symbian OS
Sistemi Operativi: Windows CE • Windows CE è una versione di Windows sviluppata per sistemi mobili. • Il sistema va configurato per la specifica piattaforma (PDA, cellulare, altro) su cui deve essere usato. Basato su memoria ROM. • Ha l’interfaccia tipica di Windows adattata per i display dei sistemi mobili.
Sistemi Operativi: Windows CE • User management: SO single user. • Task Management: Fino a 32 processi e un numero elevato di thread (limitato dalla memoria disponibile)
Sistemi Operativi: Windows CE • User Interface: icone, dialog boxes, menu, suoni (approccio alla Windows) • Memory Management: memoria protetta con 32 MB per processo, heap per file system, registry e object store (fino a 256 MB).
Sistemi Operativi: Windows CE • Dimensione: da 400 Kb (kernel) a 3 MB (sistema completo) fino a 8 MB. • Security: Crittografia con una libreria per gestire i dati memorizzati in sicurezza. Memorizzazione sicura con smart card. • Ambienti Software: Visual C++, Visual Basic.
Sistemi Operativi: Embedded Linux • Versione di Linux per sistemi di elaborazione incorporati. • Architettura a microkernel. Funzioni e servizi compilabili nel kernel o generabili come moduli separati da caricare dinamicamente. • Ampia gamma di protocolli e servizi per il networking. • Configurabile e scalabile da un orologio ad un multiprocessore.
Sistemi Operativi: Embedded Linux • User management: SO multi user. • Task Management: Multitasking con scheduler preemptive e real-time (opzionale). Supporto per multiprocessori.
Sistemi Operativi: Embedded Linux • User Interface: basata su X-Window. • Memory Management: gestione alla Linux con MMU e memoria virtuale. • Dimensione: da 200 Kb (kernel) a circa 10 MB.
Sistemi Operativi: Embedded Linux • Linguaggi: C, C++, Java • Driver, utility, protocolli e programmi client e server disponibili per connessioni Internet.
Sistemi Operativi: Embedded Linuxsviluppo • I primi sistemi embedded venivano scritti diretamente in linguaggio macchina al fine di sfruttare al massimo le prestazioni dell’hardware sottostante . • Il passaggio a linguaggi a più alto livello di astrazione ma pur sempre dotati di costrutti vicini allo strato hardware, come il C, ha permesso di incrementare notevolmente la portabilità del software delegandone le difficoltà al compilatore. Questo tipo di approccio ha consentito ai produttori di sviluppare moduli di crescente complessità per l’implementazione di funzionalità di file-system, di connettività in rete e di interfacciamento grafico.
Sistemi Operativi: Embedded Linux & Real Time • Un sistema operativo in tempo reale può essere descritto come un insieme di servizi di sistema messi a disposizione dello sviluppatore congiuntamente ad uno schedulatore di task che sia flessibile e non richieda troppe risorse sia in termini di occupazione di memoria che di velocità di esecuzione.
Sistemi Operativi: Embedded Linux & Real Time Aspetti che caratterizzano un RTOS: • Deve essere multithread, ossia deve consentire l’esecuzione di più attività concorrenti e deve disporre di un meccanismo che permetta di assegnare una priorità ereditaria ad ogni thread. • Inoltre deve essere possibile arrestare e riprendere ciascun thread in qualunque istante, compatibilmente con la risoluzione temporale del sistema. Questa caratteristica, detta preempibilità, permette di rispondere ‘in tempo reale’ agli eventi critici sospendendo immediatamente i compiti meno importanti a vantaggio di quelli essenziali alla missione del sistema.
Java Card • Java Card è un ambiente per lo sviluppo di applicazioni su smart card (es., la SIM di un cellulare) in Java. • Permette lo sviluppo di servizi e codice indipendenti dalla piattaforma e permette card multi-applicazione.
Java Card Attualmente sono disponibili molti modelli di SmartCard per le applicazioni più disparate. La maggior parte di questi però sono incompatibili fra loro a causa delle diversità degli ambienti d’esecuzione di cui sono dotati. L’ambiente JavaCard permette di standardizzare l’ambiente d’esecuzione, e quindi permette la realizzazione d’applicazioni per SmartCard portabili.
Java Card Attualmente la tecnologia delle SmartCard ha ormai raggiunto un alto livello d’affidabilità, ma sono molteplici le metodologie di progetto e d’implementazioni attualmente disponibili. Questo dipende principalmente dalla mancanza di uno standard per l’ambiente d’esecuzione della SmartCard. In pratica, un’applicazione sviluppata per una certa SmartCard non può quasi mai essere utilizzata per un’altra SmartCard.
Java Card La miglior soluzione disponibile per la standardizzazione dell’ambiente d’esecuzione è l’ambiente JavaCard, proposto da SUN Microsystems. L’implementazione di quest’ambiente prevede l’inserimento di un interprete Java standardizzato sulla carta e la creazione di una serie di API Java per l’accesso alle risorse della carta. In questo modo, è possibile sviluppare servizi in grado di funzionare indifferentemente su qualsiasi carta. Questa soluzione ha anche un altro grande vantaggio: l’utilizzo del linguaggio Java, un linguaggio di alto livello ben conosciuto da una moltitudine di sviluppatori.
Java Card - Tecnologia Le JavaCard (così sono chiamate le Smartcard che integrano l’ambiente JavaCard) presentano una serie di caratteristiche peculiari che le rendono estremamente competitive rispetto alle SmartCard. Queste caratteristiche sono le seguenti: • Indipendenza dalla piattaforma: un’applicazione per JavaCard, scritta rispettando le regole imposte dall’API JavaCard, può essere utilizzata senza modifiche su JavaCard fornite da costruttori diversi.
Java Card - Tecnologia • Supporto a più applicazioni: su una stessa JavaCard possono coesistere diverse applicazioni (JavaCard Applet) indipendenti fra loro e selezionabili singolarmente in fase di esecuzione; • Caricamento di nuove applicazioni dopo la consegna: dopo che una JavaCard è stata consegnata all’utente finale è ancora possibile procedere al caricamento di nuove applicazioni attraverso gli stessi terminali addetti all’espletamento dei servizi, questo per soddisfare le nuove necessità espresse dall’utente;
Java Card - Tecnologia • Flessibilità: il linguaggio utilizzato per programmare le JavaCard è un subset del linguaggio Java, quindi la programmazione può sfruttare il paradigma della programmazione ad oggetti; • Compatibilità con gli standard delle SmartCard: le JavaCard sono compatibili con lo standard ISO 7816, lo standard più diffuso nel campo delle SmartCard.
Java Card - Tecnologia L’ambiente JavaCard è costituito generalmente da tre tipi diversi di memoria: memoria ROM, memoria EEPROM e memoria RAM. Di seguito sono forniti i dettagli relativi ad ognuno:
Java Card - Memoria • Memoria ROM: questo tipo di memoria, a sola lettura, è utilizzato per contenere tutto il codice che non richiede modifiche, cioè il sistema operativo della JavaCard. La dimensione di questo tipo di memoria è di circa 32 KByte per buona parte delle JavaCard attualmente in commercio, mentre la dimensione minima richiesta è di 24 KByte;
Java Card - Memoria • Memoria EEPROM: questo tipo di memoria, riscrivibile elettronicamente, è utilizzato per contenere le estensioni del JCRE (Java Card Runtime Environment, l’infrastruttura che permette il funzionamento della JavaCard) e le JavaCard Applet (applicazioni sviluppate esternamente e caricabili sulla JavaCard). La dimensione di questo tipo di memoria è di minimo circa 16 KByte.
Java Card - Memoria • Memoria RAM: questo tipo di memoria, denominato anche volatile, è utilizzato per contenere l’heap e lo stack necessari per l’esecuzione, quindi le variabili e gli oggetti temporanei creati durante l’esecuzione delle JavaCard Applet. La dimensione di questo tipo di memoria è di circa un KByte per buona parte delle JavaCard attualmente in commercio, mentre la dimensione minima richiesta è di 500 Byte.
Java Card - Conclusioni E’ importante notare che le configurazioni hardware descritte precedentemente sono compatibili con la maggior parte delle SmartCard utilizzate attualmente. Questo implica che l’ambiente JavaCard potrebbe essere adottato sulla maggioranza degli hardware attualmente disponibili.
Conclusioni • Palm OS è semplice, compatto, ma non implementa il multitasking e meccanismi di security. • Symbian OS è più complesso, ma più generale e multitasking. • Windows CE supporta configurazioni flessibili e usa crittografia per la security.
Conclusioni • Embedded Linux offre l’interfaccia di programmazione avanzata di Linux è consente la portabilità del codice. • Java fornisce un ambiente per la standardizzazione delle applicazioni sulle smart card