Docker per i microcontrollori? AkiraOS combina Zephyr e WASM

AkiraOS

Nel mondo dei sistemi embedded, aggiornare un dispositivo in campo significa quasi sempre intervenire sul firmware completo. Questo approccio, pur consolidato, comporta limiti evidenti: ogni modifica richiede una nuova compilazione, un nuovo caricamento e, in alcuni casi, l’interruzione del funzionamento del dispositivo. AkiraOS affronta il problema da una prospettiva differente. Il progetto open source combina Zephyr RTOS con applicazioni WebAssembly (WASM), introducendo un modello che ricorda quello dei container Docker nel mondo Linux. L’idea alla base è separare completamente il sistema operativo dalle applicazioni, consentendo di distribuire e aggiornare queste ultime in modo indipendente tramite OTA, senza dover reinstallare il firmware.

AkiraOS: un sistema operativo che separa OS e applicazioni

L’architettura di AkiraOS è costruita su Zephyr RTOS, che si occupa delle funzioni fondamentali del sistema: scheduler, driver hardware, stack di rete e file system LittleFS.

Al di sopra di questo livello opera Akiraz Runtime, un ambiente di esecuzione dedicato alle applicazioni WebAssembly. Le applicazioni vengono distribuite come file .wasm indipendenti e possono essere installate, aggiornate o sostituite senza intervenire sul sistema operativo sottostante.

Questo approccio introduce un vantaggio importante: il firmware rimane stabile mentre le applicazioni evolvono in modo autonomo. In pratica il dispositivo può ricevere nuove funzionalità sul campo senza passare attraverso il classico ciclo di aggiornamento completo del firmware.

WebAssembly sui microcontrollori

Uno degli aspetti più interessanti del progetto è l’utilizzo di WebAssembly come formato applicativo.

Le applicazioni vengono eseguite in un ambiente isolato e controllato. Secondo gli sviluppatori, ogni applicazione può accedere esclusivamente alle risorse hardware che ha esplicitamente richiesto, migliorando l’isolamento tra i diversi componenti software.

AkiraOS supporta fino a otto applicazioni installate contemporaneamente, con un massimo di due applicazioni in esecuzione nello stesso momento. Le dimensioni previste per ogni applicazione variano indicativamente tra 50 KB e 200 KB.

La portabilità rappresenta un altro elemento chiave. Lo stesso binario WASM può essere eseguito su diverse famiglie di microcontrollori supportate dal sistema senza necessità di ricompilazione. L’articolo evidenzia in particolare la compatibilità con piattaforme ESP32, Nordic nRF e STM32.

AkiraOS

Il runtime Akiraz

Il cuore dell’ambiente applicativo è Akiraz Runtime, che integra numerosi componenti necessari all’esecuzione delle applicazioni.

Tra questi troviamo un gestore delle applicazioni, una shell di sistema, un framework grafico con 32 widget e 18 moduli API disponibili per gli sviluppatori.

L’esecuzione del codice WebAssembly è affidata a WebAssembly Micro Runtime (WAMR), che può operare in due modalità differenti. La prima utilizza un interprete tradizionale, mentre la seconda sfrutta la compilazione Ahead-Of-Time (AOT), indicata come capace di offrire prestazioni da 10 a 50 volte superiori rispetto all’esecuzione interpretata.

Aggiornamenti OTA e maggiore robustezza

Uno dei vantaggi più evidenti di questa architettura riguarda gli aggiornamenti software.

AkiraOS utilizza il supporto HTTP dello stack di rete di Zephyr per distribuire aggiornamenti OTA delle applicazioni. L’aggiornamento di una singola app non richiede il reflashing completo del dispositivo e non coinvolge il sistema operativo.

L’isolamento delle applicazioni offre inoltre un beneficio sul piano dell’affidabilità. Se un’applicazione presenta problemi o va in crash, il sistema operativo continua a funzionare e il dispositivo rimane operativo. Si tratta di una caratteristica particolarmente interessante in ambito IoT e industriale, dove la continuità del servizio è spesso un requisito fondamentale.

Le piattaforme supportate

Il progetto distingue chiaramente tra piattaforme di primo e secondo livello.

Nel gruppo Tier 1 rientrano le schede della famiglia Espressif ESP32, comprese le soluzioni ESP32-S3 basate su core LX7 e i modelli ESP32-H2 ed ESP32-C6 basati su architettura RISC-V.

La piattaforma consigliata per iniziare è la ESP32-S3-DevKitM-1. Viene inoltre citata la futura AkiraConsole V3, una scheda hardware open source che dovrebbe essere lanciata tramite Crowd Supply. Al momento della pubblicazione della notizia non erano ancora disponibili informazioni ufficiali relative al prezzo o alla disponibilità commerciale.

Sempre nel livello Tier 1 è presente Native Sim, che permette di eseguire e testare il sistema su macchine x86-64 senza la necessità di hardware embedded reale, semplificando lo sviluppo e il debugging.

Tra le piattaforme Tier 2 troviamo invece il microcontrollore Nordic nRF54L15 con Bluetooth LE 5.4 e diverse soluzioni STM32, tra cui il kit B-U585I-IOT02A Discovery, lo STEVAL-STWINBX1 SensorTile Wireless Industrial Node Development Kit e le piattaforme STMH753/H723.

Strumenti di sviluppo e gestione

L’intero progetto è distribuito come software open source.

Il codice sorgente di AkiraOS è disponibile su GitHub all’indirizzo:

https://github.com/ArturR0k3r/AkiraOS

Per lo sviluppo delle applicazioni è disponibile un repository separato contenente l’SDK:

https://github.com/ArturR0k3r/AkiraSDK

La documentazione tecnica del progetto è consultabile sul sito ufficiale:

https://docs.akiraos.dev/architecture

Dalla documentazione emerge inoltre che è in sviluppo un’applicazione mobile destinata alla gestione dei dispositivi. Le funzionalità previste comprendono il monitoraggio dello stato del sistema, la gestione delle applicazioni installate, l’avvio degli aggiornamenti OTA, l’accesso alla shell e l’esplorazione dei file presenti sul dispositivo.

È inoltre prevista un’interfaccia web accessibile tramite WiFi o USB per semplificare le operazioni di amministrazione.

Considerazioni finali

AkiraOS propone un approccio interessante al software embedded, introducendo nel mondo dei microcontrollori concetti ormai consolidati nell’ambiente cloud e server. La separazione tra sistema operativo e applicazioni WebAssembly consente di aggiornare il software in modo più flessibile, mantenendo al tempo stesso isolamento e portabilità.

L’aspetto probabilmente più rilevante è proprio la possibilità di distribuire applicazioni indipendenti senza ricompilare il firmware per ogni piattaforma supportata. Se il progetto riuscirà a mantenere le promesse in termini di prestazioni e semplicità di gestione, potrebbe rappresentare una soluzione particolarmente interessante per dispositivi IoT e sistemi embedded che richiedono aggiornamenti frequenti sul campo.

Iscriviti ai nostri gruppi Telegram

Link utili

Seguici per non perdere le prossime novità!

Simone Candido è un ragazzo appassionato del mondo tech nella sua totalità. Simone ama immedesimarsi in nuove esperienze, la sua filosofia si basa sulla irrefrenabile voglia di ampliare a 360° le sue conoscenze abbracciando tutti i campi del sapere, in quanto ritiene che il sapere umano sia il connubio perfetto tra cultura umanistica e scientifica.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.