Software Open Source per sistemi embedded Alberto Ferrante OSLab ALaRI, Facoltà di Informatica Università della Svizzera italiana ferrante@alari.ch
Outline Introduzione Perché usare il software OS in ambito embedded? Alcuni esempi 10/02/2011 A. Ferrante - Software OS per sistemi embedded 2/23
Sistemi embedded Sistemi elettronici integrati in dispositivi dedicati a funzioni specifiche. In grado di controllare in tutto o in parte le funzionalità dei dispositivi stessi. 10/02/2011 A. Ferrante - Software OS per sistemi embedded 3/23
Cos'è il SW OS per ES? E' software aperto: specifico per per sistemi embedded (ES); generico e funzionante/adattato anche sugli ES. Può venir utilizzato anche su hardware non OS. 10/02/2011 A. Ferrante - Software OS per sistemi embedded 4/23
Licenze (1/2) Stesse licenze open disponibili per prodotti general purpose: GPL, LGPL,... In generale: Nessun costo di licenza né per utilizzo né per distribuzione. Possibilità di vedere/modificare il codice sorgente. 10/02/2011 A. Ferrante - Software OS per sistemi embedded 5/23
Licenze (2/2) Non sempre licenze virali : In genere nulla vieta di sviluppare un'applicazione chiusa da far girare su un sistema operativo open. Non sempre richiesto di pubblicare il codice anche di eventuali modifiche alla parte open. 10/02/2011 A. Ferrante - Software OS per sistemi embedded 6/23
Mercato Il sw open è molto diffuso nel mercato degli ES: molti prodotti per networking (per es. Linksys); molti NAS (per es. Netgear); cellulari/pda (per es. Android); dispositivi multimediali (per es. Google TV);... 10/02/2011 A. Ferrante - Software OS per sistemi embedded 7/23
Perché il SW OS? (1/3) Riuso di componenti/competenze legate ai sistemi tradizionali : possibilità di sviluppare alcuni componenti su sistemi tradizionali e di portarli successivamente su ES. Qualità del software molto alta. Possibilità di esaminare/modificare il codice. Scelta tra diverse alternative. 10/02/2011 A. Ferrante - Software OS per sistemi embedded 8/23
Perché il SW OS? (2/3) Nessun costo di licenza, né per sviluppo né per distribuzione. Molti tool di sviluppo diversi. Possibilità di customizzare completamente il software. Uso e compatibilità con standard aperti: maggior interoperabilità dei prodotti. 10/02/2011 A. Ferrante - Software OS per sistemi embedded 9/23
Perché il SW OS? (3/3) Interazione con la comunità di utilizzatori/sviluppatori. Possibilità di influenzare lo sviluppo di soluzioni anche per piccole aziende. Sicurezza riguardo agli investimenti fatti. 10/02/2011 A. Ferrante - Software OS per sistemi embedded 10/23
Svantaggi Upgrade frequenti: difficoltà di gestione dello sviluppo di prodotti. A volte ci sono troppe soluzioni diverse tra cui scegliere. A volte la documentazione, pur se abbondante, non è ben organizzata e facile da trovare. 10/02/2011 A. Ferrante - Software OS per sistemi embedded 11/23
Prodotti OS per ES Sistemi operativi. Applicativi. Toolchain. 10/02/2011 A. Ferrante - Software OS per sistemi embedded 12/23
Linux (1/3) Supporta molte architetture differenti. Minimo 2MB di RAM e 1MB di spazio di storage. Possibilità di utilizzare un ampio spettro di sw open. Android, per es, è basato su kernel Linux. 10/02/2011 A. Ferrante - Software OS per sistemi embedded 13/23
Linux (2/3) È modulare: posso attivare solo le funzionalità che effettivamente mi servono. Fornisce supporto ad applicazioni standard : Non necessario scrivere nuove applicazioni se ne esistono già per sistemi non embedded. 10/02/2011 A. Ferrante - Software OS per sistemi embedded 14/23
Linux (3/3) Svantaggi: Meno ottimizzato (per ES) di altri sistemi non general-purpose. Non adatto ad applicazioni hard real-time. 10/02/2011 A. Ferrante - Software OS per sistemi embedded 15/23
uclinux Linux per microcontrolori. Usato principalmente per sistemi low cost. Derivato da Linux. Molti sw open portabili. 10/02/2011 A. Ferrante - Software OS per sistemi embedded 16/23
ecos Dedicato ai sistemi real-time. Compatibile con molte applicazioni Unix/Linux. Adatto a sistemi poco potenti: processori a 16 bit, 300KB di RAM. Kernel+applicazioni stanno in 50KB. 10/02/2011 A. Ferrante - Software OS per sistemi embedded 17/23
OpenWRT Una distribuzione Linux per ES. Può essere installato su diversi dispositivi embedded (principalmente modem/router/acces point). Predisposto per funzioni legate al networking (access point, printer server, web server,...). 10/02/2011 A. Ferrante - Software OS per sistemi embedded 18/23
TinyOS Sistema operativo per dispositivi wireless e low-power. Adatto a microcontrollori con pochi KB di RAM. 10/02/2011 A. Ferrante - Software OS per sistemi embedded 19/23
Applicazioni Diverse applicazioni per sistemi tradizionali possono essere portate/adattate: Attenzione alla complessità. Possibile difficoltà di adattamento. Applicazioni sviluppate in modo specifico: Firefox per sistemi mobile.... 10/02/2011 A. Ferrante - Software OS per sistemi embedded 20/23
Toolchain GNU (1/2) Disponibile per un'infinità di sistemi diversi. Gli stessi tool (GCC, gdb,...) usati per sistemi tradizionali: Nessuna necessità di imparare ad usare nuovi tool. Lo sviluppo può venir fatto, almeno in parte, su dei PC. 10/02/2011 A. Ferrante - Software OS per sistemi embedded 21/23
Toolchain GNU (2/2) Diverse interfacce grafiche per la programmazione disponibili. Emulatori di sistemi embedded disponibili: per es. emulatore ARM di Qemu. 10/02/2011 A. Ferrante - Software OS per sistemi embedded 22/23
Conclusioni Il SW open source per ES: è conveniente. Non ha nulla da invidiare a quello commerciale. Necessario valutare bene che sw scegliere e le licenze. 10/02/2011 A. Ferrante - Software OS per sistemi embedded 23/23