L’evoluzione dei sistemi operativi embedded

EMBEDDED –

I requisiti di sicurezza sempre più stringenti, i processori multicore e le tecniche di virtualizzazione pongono nuove sfide ai sistemi operativi utilizzati nelle soluzioni embedded. Le risposte di Wind River.

La crescente complessità delle società industrializzate si riflette anche sugli apparati elettronici embedded che governano le loro infrastrutture e i loro servizi: produzione industriale, trasporti, distribuzione dell’energia, assistenza sanitaria. Cambiano, quindi, i requisiti dei sistemi operativi utilizzati nelle applicazioni embedded, oggi chiamati a garantire maggiore sicurezza e anche a facilitare lo sfruttamento ottimale dei processori multicore. È questo lo scenario in cui si colloca Wind River con la sua offerta di sistemi operativi, in particolare VxWorks (in tempo reale) e Wind River Linux. “Selezione di Elettronica” ha parlato di questi temi con Jens Wiegand, responsabile della società per il settore industriale e medicale.

Sicurezza e certificazioni
Una delle tendenze in atto riguarda la maggiore importanza degli aspetti legati alla sicurezza, intesa sia come assenza di rischi dovuti a malfunzionamenti (safety) sia come invulnerabilità agli attacchi da parte di malintenzionati (security). Nelle applicazioni che riguardano le infrastrutture (ad esempio le ferrovie) o i prodotti utilizzati per fornire servizi di interesse pubblico (come gli apparati medicali), i requisiti di sicurezza sono fissati dalle autorità e quindi divengono un vincolo di progetto ineludibile per i sistemi operativi embedded. Fondamentale, quindi, è la conformità a standard quali IEC 61508, CENELEC 50128, ISO 26262 e IEC 60880/62138. L’aspetto della sicurezza è più complesso di quanto possa apparire e a volte viene sottovalutato; a questo proposito Wiegand ha citato casi in cui l’autorizzazione concessa a un prodotto medicale è stata automaticamente estesa anche ad altri prodotti da esso derivati, alcuni dei quali hanno poi dato luogo a malfunzionamenti. Al maggior peso dei requisiti di sicurezza si affiancano inoltre le altre sfide tipiche delle società complesse, come la necessità di realizzare prodotti sempre più ricchi di funzionalità e di contrastare il continuo aumento dei costi.

Processori multicore e virtualizzazione
Sul piano tecnologico le principali tendenze oggi osservabili consistono nella diffusione dei processori multicore e delle tecniche di virtualizzazione, due concetti diversi e indipendenti tra loro che però spingono nella stessa direzione. Com’è noto, l’integrazione di più core in uno stesso processore è attualmente l’unico modo per continuare ad aumentare la potenza di elaborazione del singolo dispositivo; la soluzione adottata fino a ieri, cioè l’aumento della frequenza di clock, ha ormai raggiunto il proprio limite fisico e non è più utilizzabile. La virtualizzazione, invece, consiste nella creazione di diversi computer virtuali che sfruttano un unico processore fisico e si comportano in modo indipendente tra loro, potendo ad esempio ospitare sistemi operativi diversi. La suddivisione delle risorse hardware è gestita da un apposito software detto hypervisor. Questa tecnica, resa possibile dall’aumento della potenza di elaborazione dei processori, consente di riunire in un’unica macchina le funzioni che in precedenza erano svolte da più macchine fisicamente separate, con conseguenti vantaggi in termini di costi, consumi energetici ecc. Un ulteriore vantaggio è rappresentato dalla possibilità di far convivere nella stessa scatola sistemi operativi “proprietari” e commerciali, facilitando la transizione dai primi verso questi ultimi. La virtualizzazione può essere utilizzata anche con processori a core singolo, ma spesso è applicata a dispositivi contenenti più core; ciò apre la strada a molte diverse combinazioni, ad esempio un singolo core può essere assegnato a una singola macchina virtuale e quindi svolgere una sola funzione.

Separazione delle funzioni
Come si è detto, uno dei principali vantaggi dei processori multicore e della virtualizzazione consiste nella possibilità di riunire un unico pezzo di hardware le funzioni che in precedenza erano svolte da più macchine fisicamente separate. Questa soluzione, però, potrebbe potenzialmente comportare un notevole aumento dei costi nel corso della vita del prodotto, se i requisiti più stringenti riguardanti una singola funzione finissero per pesare sull’intera macchina. In occasione di modifiche periodiche riguardanti solo le funzioni secondarie, ad esempio, potrebbe essere necessario ripetere la certificazione di sicurezza del sistema nel suo complesso. In realtà le tecnologie dei processori multicore e della virtualizzazione contengono in sé la risposta a questi potenziali problemi, poiché – se opportunamente utilizzate – consentono di separare le diverse funzioni anche dal punto di vista degli eventi che ne scandiscono i rispettivi cicli di vita. Per quanto riguarda l’aspetto della sicurezza, in particolare, è possibile assegnare le funzioni mission-critical e le funzioni di minore importanza a due diversi core e/o a due diverse macchine virtuali, così che in caso di aggiornamenti apportati (per esempio) alla sola interfaccia utente non sia necessario ripetere la certificazione di sicurezza dell’intero sistema. Analogamente, anche in assenza di certificazioni, funzioni caratterizzate da cicli di vita diversi possono essere assegnate a core diversi e/o a macchine virtuali diverse, affinché sia possibile apportare modifiche frequenti ad alcune parti del sistema senza toccare le altre. Wiegand ha citato a questo proposito l’esempio dei contatori per le utenze elettriche, dove l’applicazione di fatturazione rimane invariata per lungo tempo mentre l’applicazione che gestisce la singola utenza può cambiare frequentemente.

Le risposte di Wind River
In questo scenario, il lavoro dei progettisti del software rivolto ai sistemi embedded si complica notevolmente. Innanzitutto, scrivere codice per i processori multicore è un compito piuttosto complesso: “Rispetto ai processori a singolo core cambia tutto; non si tratta solo di un aumento delle prestazioni”, ha sottolineato Wiegand a questo proposito. Inoltre, per quanto riguarda la virtualizzazione, l’effettiva possibilità di circoscrivere le certificazioni di sicurezza a una sola macchina virtuale presuppone una perfetta separazione spaziale e temporale tra i diversi sistemi operativi, separazione che deve essere a sua volta certificata. Il fornitore dei sistemi operativi, pertanto, deve oggi offrire anche strumenti di sviluppo adatti ai processori multicore e soluzioni di virtualizzazione certificabili. Secondo Wiegand, Wind River è oggi in grado di assistere al meglio gli sviluppatori embedded alle prese con questi problemi. Alla propria gamma di sistemi operativi e hypervisor, la società ha aggiunto anche uno strumento per lo sviluppo rapido di interfacce utente grafiche, denominato Tilcon. Wiegand ha inoltre aggiunto che – nonostante la recente acquisizione da parte di Intel – Wind River continuerà a offrire prodotti rivolti a una vasta gamma di microprocessori fabbricati da produttori diversi.

Pubblica i tuoi commenti