Un recente
studio sui sistemi operativi utilizzati nel mercato dei
sistemi embedded ha dimostrato come la percentuale di utenti che ha scelto di non utilizzare
GNU/Linux Embedded, a causa di lacune nelle caratteristiche di tipo real time, sia scesa dal 25% al 18% negli ultimi tre anni. Da questi dati si può dedurre come il sistema operativo GNU/Linux, sebbene nato non nell’ottica di un utilizzo specifico per i sistemi
embedded, stia sviluppando quelle capacità tali da renderlo adatto anche al mondo real time, in cui la velocità di risposta, ma soprattutto il
determinismo (sia degli eventi, sia delle tempistiche), giocano un ruolo fondamentale.
Robert Berger,
embedded software specialist presso la
Reliable Embedded Systems e project manager del
Linux Driver Project ha colto l’occasione di questo studio per un interessante
articolo in cui descrive come sia possibile dotare GNU/Linux delle funzionalità necessarie in ambito
embedded, evidenziando sia le attuali limitazioni sia le prospettive di sviluppo future.
L’autore, in particolare, propone
due differenti strategie per ottenere un sistema operativo GNU/Linux di tipo real time: modificare il
vanilla kernel di GNU/Linux — il cosiddetto approccio
PREEMPT_RT patched kernel — oppure utilizzare un altro sistema operativo real time “puro”, sul quale GNU/Linux viene fatto girare come un task separato: il cosiddetto approccio
dual kernel.
L’approccio
PREEEMPT_RT, il cui sviluppo è guidato da community in cui l’aspetto del determinismo real time sta acquisendo maggiore importanza rispetto alla velocità di risposta, è maggiormente adatto ad applicazioni in cui è difficile separare la parte di tipo real time da quella di tipo non real time. Al momento, questo approccio è parte integrante all’80% della
mainline di sviluppo del kernel di GNU/Linux e quindi è prevedibile che nei prossimi anni possa diventare parte della soluzione standard GNU/Linux real time.
L’approccio
dual kernel si indirizza invece maggiormente a quelle applicazioni che devono conciliare aspetti di sicurezza e affidabilità da un lato con caratteristiche real time dall’altro. Diverse sono le community che rendono disponibili varie implementazioni di
dual kernel, quali
RTAI e
Xenomai. Sebbene non esista quindi un’unica soluzione GNU/Linux che vada bene
as-is per tutte le applicazioni real time, le possibilità di configurazione di questo sistema operativo lo rendono comunque un’interessante alternativa nel mercato dei sistemi operativi real time
embedded.