Blog

Il OS giusto per il tuo progetto integrato

Wednesday, 13 Nov 2024

Quando si inizia un nuovo progetto di prodotto integrato, una delle decisioni più importanti da prendere, oltre a scegliere il System on Module giusto, è trovare il sistema operativo più adatto. Proprio come le fondamenta di un edificio ne determinano la resilienza e la longevità, la scelta del sistema operativo può influenzare profondamente le prestazioni, la scalabilità e la facilità d’uso del prodotto finale. Con così tante opzioni disponibili, può essere defatigante valutare i pro e i contro di ciascuna.

 

In questo articolo riassumeremo le caratteristiche principali, i vantaggi e gli svantaggi di Yocto, Boot to Qt, Debian e Android come piattaforme software integrate nei progetti di «prodotti intelligenti». Il nostro obiettivo è dare indicazioni che possano guidare e aiutare a prendere una decisione informata nella scelta del sistema operativo giusto per un progetto integrato.

 

Nota: in genere emergono considerazioni aggiuntive rispetto a quelle elencate di seguito e anche gli sviluppatori avranno opinioni diverse. Quello che segue è un riepilogo di massima dei pro e dei contro di ciascuna opzione.

 

Yocto Project

Lo Yocto Project è un progetto di collaborazione open source che aiuta gli sviluppatori a creare sistemi personalizzati basati su Linux indipendentemente dall’architettura hardware.

 

Ecco alcuni punti di forza chiave di Yocto:

 

  • Il principale vantaggio di Yocto è la sua capacità di creare pacchetti dal codice sorgente utilizzando un «manifest». Con questo manifest è possibile ricreare facilmente un’immagine, anche se risalente a cinque anni fa, garantendo una replica fedele di versioni software specifiche.
  • La configurazione del software su tutti i dispositivi distribuiti è nota e riproducibile dal codice sorgente.
  • Poiché tutti i pacchetti sono compilati dalla sorgente, è possibile applicare tutte le patch necessarie per l’applicazione.
  • Le versioni dei pacchetti sono allineate su tutti i dispositivi distribuiti.
  • Gli aggiornamenti sono insulari e protetti dalla perdita di alimentazione quando si utilizzano framework come SWUpdate o Mender.
  • L’immagine finale può essere facilmente personalizzata con i soli pacchetti necessari per l’applicazione, consentendo un uso più efficiente di RAM, spazio d’archiviazione e CPU.

 

Tuttavia, Yocto presenta anche una serie di problemi.

 

  • Per chi è nuovo a Yocto, la curva di apprendimento potrebbe apparire ripida.
  • La creazione di un’immagine può richiedere molto tempo e risorse, poiché la maggior parte dei pacchetti viene compilata dalla sorgente.
  • È possibile creare e installare nuovi pacchetti su un dispositivo in esecuzione. Tuttavia, se il nuovo pacchetto richiede dipendenze aggiuntive, potrebbe essere necessario ricostruire e reinstallare l’intera immagine sul dispositivo di destinazione.

 

Nota: le immagini Yocto in genere non includono un sistema di gestione dei pacchetti come apt-get. Per installare nuovi pacchetti, è necessario aggiungerli alla ricetta dell’immagine e all’immagine ricostruita. Ciò garantisce che l’immagine del sistema operativo sia costantemente riproducibile da un file manifest, una scelta progettuale voluta mirata a stabilità e prevedibilità.

 

Ecco un esempio di release Yocto per DART-MX8M-PLUS basata sull’NXP i.MX 8M Plus processore.

 

 

DART-MX8M-PLUS System on Module (SoM)
DART-MX8M-PLUS System on Module

 

 

Boot to Qt

Boot to Qt (“Qt” pronunciato come “cute”, “carino” in inglese) è una soluzione offerta da The Qt Company. Radicato nel Yocto Project, è uno strato semplificato sopra Yocto stesso, ottimizzato per l’implementazione di applicazioni basate su Qt su dispositivi integrati.

 

  • Boot to Qt è basato su Yocto, quindi ripresenta la maggior parte dei pro e dei contro di Yocto (come accennato in precedenza).
  • Boot to Qt è fornito da Qt, quindi offre la migliore integrazione con le applicazioni basate su Qt.
  • Boot to Qt offre una versione di Qt più recente rispetto alla stessa versione di Yocto (ad esempio, paragonando Boot to Qt Hardknott con Yocto Hardknott).
  • Qt fornisce una documentazione chiara per la creazione di toolchain per lo sviluppo di applicazioni su computer Linux e Windows. Questo semplifica il lavoro agli sviluppatori abituati agli ambienti di sviluppo Windows.
    Nota: Boot to Qt supporta anche lo sviluppo di applicazioni su macOS utilizzando le toolchain basate su Docker di Qt. Per ulteriori informazioni, si veda: https://doc.qt.io/Boot2Qt/b2qt-requirements-mac.html

 

Nota: quando si sviluppa un prodotto commerciale con Boot to Qt come sistema operativo integrato è necessaria una licenza commerciale; prestare quindi attenzione ai termini di licenza di Qt.

 

Ecco un esempio di release Boot to Qt per DART-MX8M-PLUS basata su e NXP i.MX8M Plus processore.

 

Debian GNU/Linux

Debian GNU/Linux è una famosa distribuzione Linux nota per robustezza e gestione semplificata del software tramite l’Advanced Package Tool (APT). La sua reputazione di vecchia data la rende una scelta affidabile per molti sviluppatori su varie applicazioni.

 

  • L’Advanced Package Tool (APT) di Debian facilita la prototipazione rapida, permettendo agli sviluppatori di installare senza fatica una vasta gamma di pacchetti precompilati e le relative dipendenze. Come dimostrato dall’immagine Debian di Variscite, questo significa che i pacchetti possono essere installati sul dispositivo di destinazione proprio come si farebbe su un computer tradizionale.
  • Essendo una delle distribuzioni Linux più vecchie e popolari, Debian ha una comunità numerosa e attiva e un’ampia documentazione, il che può tornare utile per la risoluzione di problemi e l’acquisizione di informazioni qualificate.
  • È facile distribuire aggiornamenti minori tramite nuovi pacchetti Debian e la disponibilità di repository Debian assicura che i pacchetti software possano essere aggiornati senza fatica, mantenendo i sistemi sicuri e aggiornati.

 

Tuttavia, l’utilizzo di Debian GNU/Linux su dispositivi integrati presenta alcuni problemi.

 

  • A seconda del momento in cui vengono eseguiti gli aggiornamenti, le versioni dei pacchetti possono non corrispondere sui diversi dispositivi. Questo può complicare la riproduzione dei problemi sui sistemi sul campo.
  • Gli aggiornamenti non sono insulari. Pertanto, l’interruzione dell’alimentazione durante un aggiornamento può causare una configurazione errata.
  • La stabilità di Debian può essere un problema in determinati contesti o casi d’uso, soprattutto in quanto lo sviluppatore non compila i pacchetti dal codice sorgente. Ciò può rendere difficile la riproduzione di un’immagine in futuro.

 

Ecco un esempio di release Debian per DART-MX8M-PLUS.

 

Sistema operativo Android

Originariamente progettato per dispositivi mobili, Android ha esteso il suo raggio d’azione a varie piattaforme e dispositivi. Il suo uso diffuso e la familiarità degli sviluppatori lo rendono una scelta frequente per molti progetti oltre ai semplici telefoni e tablet.

 

  • Molti clienti sceglieranno Android perché i loro sviluppatori lo conoscono bene e hanno già un ecosistema basato su Android.
  • Il sistema operativo Android supporta nativamente Widevine, consentendo la decodifica di contenuti protetti da DRM come i video.
  • Il predominio di Android nel mercato dei telefoni e dei tablet ha creato un vasto bacino di risorse per sviluppatori e soluzioni trovate dalla community.

 

Tuttavia, il sistema operativo Android, così come gli altri, presenta alcuni problemi.

 

  • In termini di risorse di sistema come RAM, CPU e spazio di archiviazione, Android in genere ha requisiti più elevati rispetto agli altri sistemi operativi citati.
  • L’aggiornamento da una versione di Android a un’altra può essere complesso; a volte richiede il ripartizionamento dei dispositivi di archiviazione.

 

Ecco un esempio di release Android per DART-MX8M-PLUS.

 

Conclusioni

La scelta del sistema operativo giusto per un progetto integrato è fondamentale. Ogni opzione — Yocto, Boot to Qt, Debian o Android — presenta propri punti di forza e di debolezza. È essenziale allineare la scelta del sistema operativo alle esigenze specifiche e agli obiettivi a lungo termine del progetto. Sebbene nessuna soluzione sia adatta a tutti gli scenari, una decisione informata è il primo passo verso un prodotto di successo.

Ultimi post
Software releases
software updates Jun25
Rimani aggiornato con gli aggiornamenti software: mantieni i tuoi SoM Variscite sempre al massimo delle loro prestazioni con le nostre ultime versioni software.
 
24.06.2025
Sala Stampa
Variscite and Memfault
Variscite ha stretto una partnership strategica con Memfault per rafforzare le funzionalità di gestione dei dispositivi in tutto il suo catalogo di System on Module (SoM), compresi i moduli basati su DART-MX95, VAR-SOM-MX93, DART-MX8M-PLUSe VAR-SOM-AM62P. Questa collaborazione fornirà agli ingegneri strumenti avanzati per il monitoraggio remoto, la risoluzione dei problemi e l’aggiornamento sicuro del software.
Monitoraggio avanzato e aggiornamenti over-the-air (OTA) per dispositivi embedded
L’integrazione con la piattaforma Memfault aggiunge funzionalità di diagnostica avanzata alle soluzioni Variscite. Gli sviluppatori avranno accesso a dati preziosi dei dispositivi finali, come metriche delle prestazioni, eventi di sistema e statistiche operative, senza bisogno di accesso fisico. Uno strumento di manutenzione proattiva che permetterà agli ingegneri di individuare e risolvere i problemi senza attendere il feedback dell’utente finale.
21.05.2025
Blog
software updates March25
Rimani aggiornato con gli aggiornamenti software: mantieni i tuoi SoM Variscite sempre al massimo delle loro prestazioni con le nostre ultime versioni software.
 
24.03.2025