Sistema di sviluppo Yocto hardware/software con driver e kernel custom

HOME | BLOG | Yocto, lo strumento per creare OS custom per sistemi embedded

Yocto: il progetto su base Linux per la creazione di OS custom per sistemi embedded, con tutto il supporto di Idem-tech

Personalizzabile, in grado di operare praticamente su ogni tipo di macchina e sicuro: i vantaggi di un sistema operativo sviluppato con Yocto sono numerosi e, affidandoti a Idem-tech, hai la sicurezza di una progettazione puntuale e completa sotto ogni punto di vista.

Yocto: cos’è e quali sono i vantaggi di un sistema operativo con Yocto

Yocto è un insieme di strumenti open source che consente di ottenere OS custom per sistemi embedded basati su Linux: con Yocto è possibile progettare un sistema operativo flessibile e adattabile, che risponda prontamente e puntualmente alle necessità che ogni singola azienda può avere. Il sistema operativo così progettato è infatti perfettamente rispondente alle esigenze dell’hardware o della macchina su cui è prevista l’installazione, anche quando le risorse, ad esempio in termini di spazio di archiviazione disponibile, sono limitate. Con la costruzione di OS custom per sistemi embedded è infatti possibile eliminare ogni funzione superflua, conservando e ottimizzando solo quelle necessarie nel caso specifico, senza causare inutili rallentamenti alla parte hardware. Ad esempio, nel caso di macchine senza schermo possono essere eliminate tutte le funzioni legate allo sviluppo di un’interfaccia grafica, che risulterebbero superflue e andrebbero ad occupare inutilmente spazio di memoria.

La progettazione di OS custom per sistemi embedded che prevedano esclusivamente le funzioni selezionate ad hoc garantisce anche una maggiore sicurezza informatica.

Yocto, poi, non solo consente la creazione di OS custom per sistemi embedded, ma anche di una serie di strumenti quali i Software Development Kit (SDK), che possono essere forniti a coloro che in futuro contribuiranno allo sviluppo del sistema operativo progettato.

Il supporto dei grandi nomi dell’IT e una struttura open source: un connubio di successo

L’idea di Yocto è stata concepita nel 2010 dalla Linux Foundation ed è stata portata avanti anche grazie alla sinergia di numerose aziende operanti nel settore, tra cui grandi nomi quali Intel, Microsoft, ARM, Cisco, MontaVista, Dell, LG e Texas Instruments. L’idea di uno strumento che consentisse la progettazione di OS custom per sistemi embedded nasce quindi proprio dai grandi produttori di schede, microprocessori e sistemi operativi. Il supporto diretto di questi colossi assicura non solo i finanziamenti necessari, ma anche che i software sviluppati con Yocto siano assolutamente compatibili con le schede di questi brand e che, in generale, ci sia una buona stabilità del sistema su cui il software andrà ad essere installato. Questo, per chi sviluppa OS custom per sistemi embedded, significa potersi focalizzare effettivamente sulle funzioni necessarie, potendo fare affidamento sul buon funzionamento del sistema generale.
Da subito, inoltre, Yocto è stato concepito con alcuni punti cardine che ancora oggi rappresentano i suoi punti di forza: oltre ad una serie di grandi aziende che, come visto, sostengono finanziariamente il progetto, Yocto ha alle spalle una community di esperti e utilizzatori. Il connubio tra questi due aspetti fa sì che tutti possano dare il proprio contributo ma che, allo stesso tempo, questi siano controllati e validati in maniera puntuale.
Attenzione però: se la logica open source rappresenta un punto di forza alla base del progetto, questo non significa che i sistemi operativi basati su Yocto siano disponibili a chiunque. Quando un’azienda crea il proprio OS custom per sistemi embedded, infatti, questo rimane di sua proprietà. In questo modo Yocto permette di coniugare tutti i plus di un sistema che alla base è open source, con la riservatezza e i diritti di proprietà dei singoli sistemi operativi che con esso vengono poi sviluppati.

Idem-tech: il tuo fornitore per sistemi operativi progettati con Yocto

In qualità di strumento per sviluppare software, Yocto trova applicazione in tantissimi settori diversi. In Idem-tech ne sfruttiamo le potenzialità per creare sistemi operativi che verranno installati su macchine molto diverse tra loro. Ad esempio, sfruttando Yocto abbiamo sviluppato OS custom per sistemi embedded destinati sia a macchine prive di schermo, sia a macchine con schermo. Con lo stesso strumento di progettazione abbiamo quindi ottenuto sistemi operativi completamente diversi, dotati o meno anche di una parte dedicata all’interfaccia grafica. Scegliere di affidarsi a chi è in grado di progettare su base Yocto assicura numerosi vantaggi. Ad esempio, nei sistemi operativi così creati, abbiamo potuto inserire software sviluppati interamente dal team di Idem-tech in base alle esigenze del cliente. Lo sviluppo software con Yocto, inoltre, ci consente di integrare il lavoro anche di terze parti: oltre all’accesso al sistema operativo, infatti, possiamo fornire gli strumenti per sviluppare software all’interno del medesimo sistema, assicurando al cliente la libertà di lavorare con fornitori e sviluppatori diversi.

Diagramma del processo di sviluppo software Yocto

ll flusso di lavoro di Yocto

Lo sviluppo tramite Yocto di OS custom per sistemi embedded è quindi la soluzione ideale per chiunque abbia la necessità di sviluppare un sistema operativo per una macchina intelligente che sia interamente personalizzato e tarato sulle proprie esigenze, sicuro e protetto da eventuali attacchi esterni. I sistemi operativi così creati sono ideali, per quelle macchine che per motivi tecnici o di costo non possono contare su hardware particolarmente performanti e che non consentono quindi di utilizzare un sistema operativo Linux standard. Infatti, i sistemi operativi sviluppati con Yocto possono essere adatti anche per macchine con memorie di pochi GB, se non addirittura di pochi MB.
Oltre al tailoring del sistema operativo, Idem-tech fornisce ai propri clienti lo sviluppo dei driver di periferica e di applicativi dedicati.

Sostanzialmente non esistono hardware su cui non possano funzionare OS custom per sistemi embedded sviluppati ad hoc con Yocto.  A titolo di esempio alcune piattaforme su cui abbiamo già integrato Yocto sono Intel, ARM, MIPS, AMD, PPC.

La costante di questa tipo di progetto è quella di poter dedicare le risorse e lo sviluppo solo alle funzionalità necessarie, contenendone i costi.
È infine importante sottolineare che la scelta di OS custom per sistemi embedded sviluppati con Yocto può risultare ottimale da un punto di vista di sicurezza informatica. Yocto, infatti, per come è strutturato e per il fatto di avere alle spalle un’ampia community, aggiorna costantemente i moduli di cui è composto. L’aggiornamento costante di tutte le componenti non riguarda solo la risoluzione di bug e di errori di programmazione in senso stretto, ma anche costanti aggiornamenti di sicurezza informatica che sono in grado di rispondere alle sempre nuove minacce presenti in quest’ambito. Lo sviluppatore ha a disposizione dei tool dedicati, che consentono di mettere in luce tutte le vulnerabilità di cui potrebbe soffrire il sistema operativo che si sta costruendo: anche in questo caso, la valutazione avviene tramite il confronto con dei database di minacce note che vengono costantemente aggiornati con una frequenza molto elevata. Così, chi sviluppa il sistema operativo può agire in anticipo, a tutto vantaggio della sicurezza del sistema che il cliente andrà ad installare sulle proprie macchine.

Con Yocto, la sicurezza del sistema operativo è garantita.

I vantaggi degli OS custom per sistemi embedded sono numerosi e Yocto rappresenta lo strumento ottimale per progettare un sistema operativo di questo tipo, che sia completamente su misura e in grado di rispondere alle esigenze specifiche di qualunque realtà. In Idem-tech sviluppiamo diversi progetti basandoci proprio su Yocto e, quando il progetto ben si adatta a questo tipo di lavorazione, siamo noi stessi a proporre ai nostri clienti di sviluppare un sistema operativo con questa modalità. Utilizzare Yocto ci consente non solo di progettare sistemi operativi partendo da richieste e specifiche precise, ma anche di progettare da zero una soluzione in grado di rispondere alle necessità che il cliente sperimenta e che emergono man mano.

Pensi che una soluzione di questo tipo possa fare al caso tuo?
Raccontaci le tue esigenze e saremo noi a trovare e a proporti la soluzione più adatta!

Il consiglio dell’esperto

In Yocto, per personalizzare il Kernel della propria immagine si parte dal modificare la configurazione del Kernel stesso tramite il comando

bitbake linux-yocto -c menuconfig

Questo comando consente di aprire un’interfaccia utente basata su menù, da cui scegliere quali funzionalità del Kernel Linux compilare. Una volta apportate le modifiche necessarie, si possono intraprendere due strade.
La prima è quella di utilizzare semplicemente il file .config generato dal comando precedente. Questa soluzione però preclude la possibilità di generare Kernel diversi a seconda delle immagini che si vogliono costruire, in quanto le modifiche fatte diventano valide per ogni immagine generata all’interno del framework Yocto che stiamo utilizzando.
La seconda strada, invece, prevede l’utilizzo dei Fragment, che altro non sono che il prodotto del comando

bitbake linux-yocto -c diffconfig

Questo comando genera un file fragment.cfg che rappresenta le differenze tra il file .config prima e dopo le modifiche.
I file fragment.cfg possono essere inseriti tramite una ricetta nel proprio layer e permettono di applicare le modifiche fatte al Kernel solo all’interno del layer stesso, e quindi anche dell’immagine del sistema operativo che abbiamo creato per i nostri scopi. Tramite il comando diffconfig, Yocto inserisce i cambiamenti generati con il primo comando (menuconfig) dentro il Fragment e riporta il file .config allo stato originale.