I RTOS (Real-Time Operating System) sono sistemi operativi progettati per gestire applicazioni in tempo reale, per tutte quelle esigenze che prevedono una risposta del sistema entro limiti di tempo ben definiti. Si pensi a tutti quei campi applicativi che richiedono precisione e affidabilità: dispositivi medici, controllori di volo e altri sistemi embedded di tipo mission critical. ThreadX è una piattaforma sviluppata da Microsoft che supporta il multithreading, la gestione delle priorità e degli eventi, che assicura una bassa latenza, che è caratterizzata da un basso consumo di risorse e da massima leggerezza. La presenza di servizi di sincronizzazione permette di orchestrare i thread in esecuzione ottimizzandone il comportamento.
Microsoft decide di donare ThreadX alla Eclipse Foundation sotto forma di prodotto open source
Microsoft ha acquisito il sistema ThreadX nel 2019 dallo sviluppatore originale Express Logic. A distanza di quattro anni e mezzo, l’azienda di Redmond ha deciso di rendere il prodotto open source, distribuirlo sotto licenza MIT e consegnarlo ad Eclipse Foundation.
Potreste non aver mai sentito parlare di ThreadX prima di oggi, ma ci sono buone probabilità che ne facciate inconsapevolmente uso. Microsoft stessa afferma che ThreadX è attivamente utilizzato su qualcosa come 12 miliardi di dispositivi su scala globale. Impossibile, quindi, ignorare uno strumento così diffuso.
L’azienda guidata da Satya Nadella, tra l’altro, aveva cambiato nome a ThreadX proprio nel 2019: diventò Azure RTOS, cosa che probabilmente non ha contribuito alla fama di questo importante componente software.
Dove è utilizzato il RTOS di Microsoft
ThreadX è ampiamente utilizzato in un ampio ventaglio di dispositivi embedded. Alcuni dei dispositivi noti su cui ThreadX è impiegato:
- Raspberry Pi: utilizzato come firmware che controlla l’avvio e il funzionamento della scheda Raspberry Pi. È presente nei modelli Pi 1, 2, 3 e 4.
- Dispositivi IoT (Internet delle Cose): comunemente impiegato nei dispositivi IoT per le prestazioni “in tempo reale” e per via del “peso” contenutissimo. Può essere utilizzato in sensori, attuatori e altri componenti IoT.
- Dispositivi di rete e telecomunicazioni: incorporato in dispositivi di rete come router, switch e apparecchiature di telecomunicazioni, per gestire in modo efficiente le operazioni in tempo reale.
- Dispositivi di archiviazione: anche hard disk, unità flash e dispositivi di archiviazione di rete per fornire funzionalità in tempo reale e affidabilità.
- Elettronica automobilistica: ThreadX è presente in sistemi embedded all’interno di veicoli, inclusi sistemi di infotainment, controlli del motore e altri componenti critici.
- Apparecchiature mediche: ThreadX è impiegato in dispositivi medici come monitor cardiaci, pompe di infusione e altri strumenti medicali che richiedono operazioni in tempo reale e affidabilità.
- Apparecchiature industriali: il sistema è spesso usato nei dispositivi industriali quali controller di processo, robot industriali e altri sistemi di automazione.
- Dispositivi di elettronica di consumo: è presente in un’ampia varietà di dispositivi di elettronica di consumo, come fotocamere digitali, stampanti e dispositivi audio.
- Sistemi di controllo elettronico: trova impiego in sistemi di controllo di apparecchiature elettroniche, ad esempio nei controlli di accesso, sistemi di sicurezza e dispositivi di automazione domestica.
Per un certo periodo di tempo, Intel ha utilizzato ThreadX come motore dei gestione dei suoi chip. Sulle schede Raspberry Pi 1, 2 e 3, corrisponde al file chiamato bootcode.bin
; nei modelli Pi 4 e 400 il sistema è contenuto nell’oggetto start*.elf
. Anche se è pubblicato su GitHub ed è incluso in Debian, ThreadX si presenta come un file “blob” (Binary Large OBject) proprietario.
Perché Microsoft rilascia ThreadX come software open source
Microsoft ha rilasciato ThreadX come prodotto open source per diversi motivi strategici e pratici. L’acquisto di ThreadX da parte di Microsoft avvenne subito dopo che AWS prese in carico la gestione di FreeRTOS, un altro popolare kernel utilizzato nei dispositivi embedded. Molti sostengono che l’accordo tra l’autore di ThreadX, William Lamie, e Microsoft sia stata una risposta alla mossa di Amazon. Dopo l’acquisizione, Lamie se ne andò avviando una nuova società che vende un RTOS di “quinta generazione”.
Consegnando ThreadX a Eclipse Foundation, Microsoft prova a stimolare la comunità con la promozione di standard aperti. La piattaforma Azure svolge un ruolo sempre più centrale per governare il funzionamento dei dispositivi IoT e l’azienda di Redmond cerca di confermare il ruolo centrale di ThreadX.
Rendendo il codice open source, Microsoft può inoltre consentire una maggiore trasparenza e flessibilità nell’utilizzo di ThreadX, specialmente in ambienti in cui la sicurezza e l’affidabilità sono cruciali.