I sistemi operativi real-time dovranno diventare progressivamente più sofisticati; dovranno infatti rispondere ad elevati requisiti in termini di prestazioni, offrire risposte hard real-time e fare fronte ai limiti di memoria, pur continuando ad aumentare la loro adattabilità a un contesto, sempre più connesso, attento alla security e controllato da remoto: il mondo delle reti M2M (Machine to Machine), e dell'Internet delle Cose o Internet of Things. La maggior parte di queste "cose", che creano un mondo interconnesso, sono sistemi embedded, molti dei quali dotati di un Rtos. È cruciale che tali sistemi embedded siano connessi e sicuri, sia dal punto di vista dei danni alle persone o cose, sia da quello della tutela delle informazioni. Devono inoltre essere scalabili e affidabili.
La scalabilità
La scalabilità è una qualità che presenta molte sfaccettature. La si può intendere come scalare da un dispositivo di piccole dimensioni a uno di grandi dimensioni, o da sistemi singoli a sistemi complessi, o ancora da dispositivi con singole applicazioni software a dispositivi multi-application. Un moderno Rtos deve supportare tutti questi aspetti di scalabilità per fornire il massimo valore all'interno della IoT.
• Da piccoli a grandi dispositivi: La gamma di dispositivi embedded spazia da oggetti di dimensioni ridotte, con alta efficienza energetica e alimentati a batteria, fino a grandi sistemi multi-core e multi-scheda.
Un Rtos deve poter soddisfare anche le esigenze del piccolo dispositivo - piccolo footprint, buona gestione dei consumi e funzionalità configurabili.
Una tendenza crescente nel mondo dei dispositivi embedded è il consolidamento, un modo per ottenere di più con meno risorse ospitando più sistemi in un singolo dispositivo hardware; le nuove piattaforme hardware multi-core hanno reso il consolidamento una realtà. Un Rtos deve avere un eccellente supporto per la gestione di core multipli, di dispositivi di rete complessi e di più sistemi operativi.
• Sistemi da singoli a complessi: In passato i dispositivi embedded erano singoli e non connessi, ma lo scenario è oggi profondamente diverso. Persino i piccoli sensori wireless a bassa potenza sono ormai collegati tra loro. I sistemi di controllo industriale sono interconnessi e controllati da remoto. I dispositivi medicali sono usati nelle case e inviano i dati diagnostici all'ospedale in wireless, senza bisogno di essere collegati fisicamente. Un Rtos deve poter supportare le diverse tecnologie di trasmissione come il Bluetooth, le Wpan (Wireless personal area network), le connessioni WiFi e quelle basate su Ethernet. Inoltre, a un sistema operativo real-time sono richieste comunicazioni sicure e un altrettanto sicuro immagazzinamento dei dati. L'Internet delle Cose dipende da dispositivi connessi a una rete che deve essere sicura, e tale sicurezza deve essere supportata anche dal sistema operativo.
• Dispositivi simple e multi application: Alcuni dispositivi gestiscono applicazioni semplici, come un controllore in un sistema Scada (Supervisory Control And Data Acquisition), mentre altri possono supportarne molteplici, come un processore di rete. Un Rtos deve essere in grado di supportare entrambi i contesti. Ugualmente importante è l'abilità di scalare le applicazioni dopo che il dispositivo è stato rilasciato. Sono superati i tempi delle funzioni dedicate con spazio ridotto, se non nullo, per espansioni o aggiornamenti. I dispositivi intelligenti si devono adattare ai cambiamenti imposti dalla rete. Occorre che l'Rtos supporti aggiornamenti, download e autenticazione delle applicazioni, sempre in sicurezza. Inoltre deve fornire una core API stabile cosicché le applicazioni possano rimanere compatibili per molte delle versioni successive del sistema operativo. Anche il supporto per applicazioni di terze parti è cruciale.
La sicurezza delle informazioni
Un aspetto critico dell'IoT è la security e i sistemi embedded di prossima generazione devono essere progettati con questo concetto ben in mente. Nel frattempo i dispositivi tradizionali, inizialmente isolati, sono sempre più frequentemente connessi alle reti aziendali o direttamente a Internet per permettere l'accesso a una grande varietà di applicazioni, formando così l'Internet delle Cose. Questo aumento della connettività crea una esposizione ai rischi informatici decisamente maggiore. Un moderno Rtos deve supportare funzioni per la protezione delle informazioni contro malware e applicazioni malevole o indesiderate, per l'archiviazione sicura dei dati e per trasmissioni protette dalle manomissioni. Il supporto dei sistemi operativi per tali funzioni è fondamentale perché prevederle semplicemente a livello utente o di applicazione sarebbe inutile, costoso e rischioso. Le minacce alla security e le relative vulnerabilità sono in continua evoluzione. I dispositivi connessi devono avere la possibilità di essere gestiti e aggiornati da remoto così da installare, in modo accurato ed efficiente, gli aggiornamenti software e firmware. Il supporto degli Rtos per la gestione e l'installazione remota è indispensabile per mantenere i dispositivi sicuri.
La sicurezza di cose e persone
La safety è vitale in molti sistemi embedded che controllano macchine potenzialmente in grado di causare lesioni o persino di mettere in pericolo la vita degli operatori/utilizzatori. Le autorità di regolamentazione stanno spingendo per l'estensione dell'applicabilità di norme di safety ben consolidate nel settore aerospaziale, dei sistemi medicali e nei vari ambiti industriali, anche in nuovi mercati, o quantomeno per trovare una migliore applicazione degli standard esistenti. Esempi di nuove categorie di prodotti interessate sono i dispositivi medicali domestici o gli apparati di misura e tariffazione delle utenze domestiche.
Una delle maggiori preoccupazioni è proprio l'effetto sulla safety di minacce sempre nuove e di una connettività crescente. Con l'emergere degli standard di safety, i produttori di dispositivi si rivolgono sempre più ai fornitori degli Rtos per avere le caratteristiche e le certificazioni di safety appropriate.
Reinventare gli Rtos per l'Internet delle Cose
È importante che un Rtos possa supportare tutti questi requisiti nel mondo IoT. Tuttavia il passato ci ha insegnato che le richieste del mercato cambiano. In effetti gli scenari dell'IoT e dell'M2M si stanno evolvendo più rapidamente del ciclo tipico di immissione sul mercato di un Rtos, il che significa che l'architettura e il modello di rilascio dell'Rtos devono adattarsi. Tradizionalmente monolitico per natura, l'Rtos è fornito in un'unica tranche come un grosso insieme di software, pacchetti di supporto di schede (BSP, board support package), middleware, sistema operativo e tools. Gli aggiornamenti a ciò che è installato sono in genere soluzioni di bug e di falle di sicurezza. Gli aggiornamenti di funzionalità sono invece rari, data la natura dello sviluppo con gli Rtos. La ridefinizione dell'Rtos del futuro deve prevedere un core stabile, in modo che i componenti aggiuntivi possano fondarsi su questa stabilità. Gli altri componenti del Rtos, al di sopra del kernel di base, possono essere resi disponibili tramite il modello di distribuzione degli Applications Store, in cui gli utenti dell'Rtos possono scegliere i componenti da aggiungere alla loro piattaforma software embedded. Differenti sottosistemi possono usare diversi insiemi di componenti. Altrettanto importante è la possibilità, da parte dei produttori di software di terze parti di avvantaggiarsi di questo core stabile per fornire componenti a valore aggiunto. Il fornitore di Rtos e le aziende partner possono sfruttare così lo stesso meccanismo di distribuzione dei componenti.