Yocto Progetto: il sistema di sviluppo per Linux embedded.

Pubblicato: dicembre 16, 2014 in Linux, Programmazione
Tag:, ,

yoctoNel corso degli ultimi 10 anni abbiamo visto crescere continuamente  le funzionalità e le prestazioni  delle apparecchiature elettroniche immesse sul mercato.
Quello che una volta poteva sembrare un sogno come ad esempio un telefono che risponde ai propri comandi vocali o una TV che si collega autonomamente ad internet e cerca il filmato da visualizzare, oggi è realtà e probabilmente è solo una minima parte di quello che i “guru” della tecnologia e della tecnica stanno progettando per il nostro futuro.

La crescita di funzionalità e prestazioni di questi dispositivi è sicuramente dovuta sia alla presenza sul mercato di CPU sempre più potenti e performanti ( oggi la maggior parte dei dispositivi sono equipaggiati con cpu ARM multi-core ad oltre un GHz di clock ) sia alla possibilità di includere nei propri device, sistemi operativi liberi e facilmente integrabili ed utilizzabili. Ne sono un esempio lampante tutte le apparecchiature basate sui sistemi Android.

Ma quali sono le complicazioni e le difficoltà che si incontrano quando si decide di realizzare un nuovo apparato che utilizza una simile tecnologia e quali sono gli strumenti necessari per gestire e realizzare un sistema di sviluppo fruibile e funzionale?

Trascurando tutte le problematiche legate all’hardware e alla sua realizzazione ( che francamente non sono poche ), l’avvio di un dispositivo complesso di questo tipo,  richiede  tutta una serie applicativi software che, anche se messi a disposizione gratuitamente dal mondo open source, debbono essere compilati, uniti tra loro e organizzati in modo organico e coerente;
operazioni che francamente possono richiedere giorni e giorni di lavoro.

Se oltre a tutto questo si aggiunge il fatto che il più delle volte viene richiesta la possibilità di ricompilare l’intero sistema per differenti piattaforme o la possibilità di mantenere aggiornati i vari componenti software nel tempo ( gestione di pacchetti, gestione degli aggiornamenti ) , ci si rende subito conto che le difficoltà diventano immediatamente molteplici.

Quindi se da un lato, il software libero ha semplificando il processo di sviluppo e ha migliorando l’efficienza delle apparecchiature,  la sua frammentazione e la sua vastità,  ne hanno reso sino ad oggi difficile la sua fruizione sopratutto ai produttori che erano principalmente abituati ad utilizzare sistemi operativi proprietari o custom.

 

130815_linux_2

Per cercare di unificare e rendere il più organico possibile i sistemi di sviluppo e la gestione delle piattaforme embedded , è stato lanciato da qualche anno lo  “Yocto-Project”.
Si tratta di un progetto di collaborazione open source che fornisce modelli, strumenti e metodi per la creazione di sistemi Linux  personalizzabili ed indipendenti dall’architettura hardware utilizzata.
Detta in questo modo sembrerebbe l’uovo di Colombo e probabilmente lo è, anche se, non vi nascondo, che il suo utilizzo e la sua gestione non è proprio del tutto intuitiva!

Con questo sistema potrete comunque astrarre il vostro hardware, creare un filesystem di root ed eseguirlo sul targhet, creare la tua toolchain di sviluppo e di cross compilazione,  gestire la distribuzione e tenerla aggiornata con le ultime release dei pacchetti  e delle utility rilasciate.
In altre parole non si tratta di una particolare distribuzione linux ma di uno strumento che ne crea una apposta per voi in base alle vostre esigenze, ne gestisce l’aggiornamento, la creazione dei tool e di sistemi di sviluppo e produzione.

 

poky

Il sistema di build dello Yocto Project è chimato Poky ed è costituito da una combinazione di BitBake e Metadata.
In particolare:

  • Poky è il sistema di build
  • BitBake è lo scheduler dei task
  • I Meta data definiscono i task da svolgere.

Al loro interno troviamo:

  • Le configurazioni – (.conf)
  • Le class ( .bbclass) che inglobano ed incapsulano la logica di build, il packaging etc.. Ad esempio ci sono classi che descivono come compilare il kernel, o come compilare un particolare sofware basato su auto tools, come creare un pacchetto RPM, come creare una root filesystem, etc..
  • Le Ricette ( .bb) che rappresentano le unità logiche di compilazione del software e delle immagini coma ad esempio la compilazione delle librerie gtk, delle Qt etcc…

E’ chiaro che questo sistema è indirizzato ad un’utenza professionale e che non si rivolge agli appassionati e agli smanettoni.
Generalmente viene utilizzato all’interno delle aziende che sviluppano e producono sistemi embedded basati sulle attuali e moderne tecnologie.

Per chi ne volesse sapere di più o per chi fosse interessato,  il mio indirizzo E-Mail è sempre lo stesso…..

 

 

 

 

 

 

 

 

 

 

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...