EMB_82

EMBEDDED 82 • NOVEMBRE • 2021 59 EMBEDDED LINUX | SOFTWARE da una ampia dotazione di funzionalità, da elevata stabi- lità, garantita da periodici (spesso annuali) rilasci di ag- giornamenti, da una ricca interfaccia grafica, nonché da una semplicità d’uso; caratteristiche presenti, ad esem- pio, nei sistemi basati sulle distribuzioni Linux Debian e Ubuntu. Gli sviluppatori di sistemi embedded posso- no facilmente aggiungere a questi OS dei package pre- compilati contenenti funzionalità oppure applicazioni, grazie alla presenza di appositi tool per la gestione dei package, già presenti sui dispositivi target. L’intero OS viene tipicamente fornito sotto forma di una immagine binaria precompilata di tipo “bootable”, ovvero conte- nente il codice necessario per gestire l’avvio del sistema; la realizzazione di una soluzione pienamente funzionan- te è quindi semplice e rapida. Tipicamente, lo sviluppo avviene direttamente sul dispositivo target, ovvero sulla stessa macchina che funge da host , grazie alla disponibi- lità di un’ampia collezione di risorse e di strumenti (quali ad esempio i compilatori) per l’aggiunta di software. Tuttavia, l’utilizzo un OS di classe enterprise può talvolta rappresentare una sfida impegnativa, come ad esempio quando si devono realizzare delle applicazioni per un processore ARM a 32 bit, che non possiede risorse suffi- cienti per poter ospitare strumenti di sviluppo sul siste- ma target. Spesso, inoltre, non sono neppure disponibi- li appositi strumenti per lo sviluppo cross-target, il che costringe i progettisti a implementare anche apposite modalità per lo sviluppo delle applicazioni sul dispositi- vo target. Un OS tradizionale di classe enterprise, infine, non è facile da customizzare per via delle sue dimensio- ni, sempre superiori al gigabyte. Il tempo di avvio può quindi essere pari a 30 secondi o più, ed è assai difficile ottimizzare il sistema per tentare di competere con la ve- locità di un OS embedded di tipo tradizionale. Il sistema Embedded Linux Con i tradizionali sistemi operativi Linux di tipo Embed- ded, gli sviluppatori operano invece tipicamente a livello del codice sorgente, configurando l’intero OS e ricompi- landolo da zero per realizzare quantomeno una prima implementazione custom della versione binaria. Ciò con- sente di ottenere una maggiore scalabilità dell’OS, grazie alla quale gli sviluppatori riescono tipicamente a compri- merne le dimensioni al di sotto del gigabyte. I progetti- sti sono inoltre in grado di realizzare il porting dell’OS Linux verso svariati dispositivi differenti, ottimizzandolo per ottenere tempi di avvio più rapidi di quelli possibili con un OS di classe enterprise. L’OS Linux, se necessa- rio, è in grado di offrire anche il supporto di funziona- lità real-time, garantendo buone prestazioni. Poiché lo sviluppo avviene a livello del codice sorgente, gli OS di tipo embedded sono ampiamente customizzabili, ma ciò ha ovviamente un prezzo. La curva di apprendimento, operando con un OS Embedded Linux di tipo tradizio- nale, è infatti notevolmente più ripida rispetto a quanto non avvenga con una soluzione di classe enterprise. Se, ad esempio, lo sviluppatore di codice embedded, men- tre implementa l’OS utilizzando Yocto Project, desidera aggiungere un’applicazione come Chromium a un di- spositivo, deve creare un apposito layer e scrivere delle recipes atte a garantire che tutti i prerequisiti necessari per Chromium siano stati inclusi e compilati all’interno dell’immagine target. Queste attività possono richiedere dei tempi significativi. Per contro, operando con un OS di classe enterprise come Debian, per ottenere lo stesso risultato gli sviluppa- tori devono semplicemente installare il package di Chro- mium, che include già l’elenco di tutte le dipendenze da altri package: un’operazione che richiede solo pochi minuti, quelli necessari per il download. Un altro poten- ziale svantaggio legato all’utilizzo di un OS basato su co- dice sorgente risiede nel fatto che, se gli sviluppatori non adottano particolari attenzioni, è molto facile generare molteplici varianti dell’OS prodotto, in quanto nulla im- pedisce a 10 sviluppatori di effettuare indipendentemen- te 10 distinte modifiche dello stesso file sorgente. In tal modo si verrebbero a creare 10 distinte versioni del corri- spondente file binario, utilizzate su 10 versioni differenti del prodotto. A tal proposito, un audit interno effettuato da un cliente di grandi dimensioni ha rilevato la presenza di centinaia di varianti di Linux prodotte internamente, costringendo alla fine l’azienda a optare per una differen- te tipologia di OS Linux (in questo caso, un’offerta di Em- bedded Linux di classe enterprise, in formato binario). Linux Debian Debian è una distribuzione dell’OS Linux, di classe en- terprise, diffusa da molti anni e tuttora ampiamente utilizzata in forma embedded all’interno di numerosi di- spositivi. La distribuzione Ubuntu, a sua volta basata su Debian, rappresenta la versione di Linux di classe enter- prise che vanta la più ampia base di utenza, ragione per cui è facile reperire sviluppatori che la conoscono bene. Debian è molto stabile, grazie a continue release rilascia- te con una cadenza circa biennale. È inoltre estremamen- te ricca di funzionalità, grazie alla disponibilità di oltre

RkJQdWJsaXNoZXIy Mzg4NjYz