Embedded Linux. È lo stesso di Linux?
- Che cos’è Linux?
- Linux embedded | Che cos’è? Dove usarlo?
- Linx su sistemi embedded / Applicazioni comuni
- Come sviluppare Linux embedded su Windows
- Che cos’è il sottosistema Windows per Linux (WSL)?
- Embedded Linux e Android | Come funziona?
- Quali sono i vantaggi dell’utilizzo di Linux embedded?
- Codice open source.
- Prezzo basso.
- Più fornitori di software, sviluppo e supporto.
- Altamente personalizzabile.
- Maggiore flessibilità.
- Possibili svantaggi di Linux embedded
- Avere caratteristiche reacher può portare a una maggiore complessità.
- La modifica dell’hardware può influire sul software.
- Necessità di spazio di memoria più grande.
- Linux embedded: trova sviluppatori software embedded
Che cos’è Linux?
Nei post precedenti, abbiamo già fatto un’introduzione all’ingegneria dei sistemi embedded dando alcuni esempi che sono sul mercato e elencando tutte le possibili funzionalità. Oggi parleremo del sistema operativo per eccellenza utilizzato come strumento di sviluppo per questo tipo di device: Linux.
Linux è il nome dato al kernel e ad una serie di sistemi operativi Unix sotto GNU GPL. Sotto molti aspetti, Linux è simile ad altri sistemi operativi come Windows, macOS (precedentemente OS X) o iOS. Come loro, Linux può avere un’interfaccia grafica e gli stessi tipi di software desktop a cui sei abituato, come word processor, editor di foto, editor video, ecc.
Ma Linux differisce anche in molti modi importanti. Prima di tutto, e forse la sua caratteristica più importante, è il software open-source. Il codice utilizzato per creare Linux è gratuito e disponibile per il pubblico per visualizzare, modificare, e – per gli utenti con conoscenza – contribuire ad esso.
Un’altra differenza rilevante è che Linux, sebbene i pezzi fondamentali del sistema operativo Linux siano generalmente diffusi, molte distribuzioni Linux includono diverse opzioni software. Ciò significa che Linux è incredibilmente personalizzabile. Possiamo installare un sistema molto leggero e aggiungere tutto il necessario in seguito o come ne abbiamo bisogno. Gli utenti possono anche scegliere i componenti principali, come il sistema che visualizza la grafica e altri componenti dell’interfaccia utente.
Probabilmente stai già usando Linux, anche se non ne sei a conoscenza poiché è presente nel software di un gran numero di dispositivi che usiamo quotidianamente. Anche la maggior parte delle pagine web Internet che visitiamo sono stati probabilmente generati da server Linux. Allo stesso modo, la maggior parte delle aziende e degli individui sceglie Linux per i propri server perché è sicuro, flessibile e può ricevere un eccellente supporto da una vasta comunità di utenti.
Linux embedded | Che cos’è? Dove usarlo?
Un sistema embedded è un insieme di hardware e software basato su un microcontrollore o microprocessore, controllato da un sistema operativo in tempo reale o RTOS, memoria limitata, e che può variare sia in termini di dimensioni e complessità. Embedded Linux è un tipo di sistema operativo Linux/kernel che è stato progettato per essere installato e utilizzato in dispositivi o sistemi embedded.
Sebbene utilizzi lo stesso kernel, Linux embedded è molto diverso dal sistema operativo standard. Prima di tutto, viene adattato per i sistemi embedded e, quindi, è molto più piccolo in termini di dimensioni, richiede meno potenza di elaborazione, e ha caratteristiche minime. Il kernel Linux è modificato e ottimizzato come versione Linux embedded. Tale istanza Linux può eseguire solo applicazioni create appositamente per il dispositivo.
Linux embedded è flessibile, a basso costo, open-source e viene adattato a microprocessori specifici. Rispetto ai sistemi operativi embedded proprietari, Linux consente a più fornitori di software, sviluppo e supporto; ha un kernel stabile e fornisce la capacità di leggere, modificare e ridistribuire il codice sorgente. Consente inoltre un approccio altamente modulare alla costruzione di un sistema personalizzato, che porta a una maggiore flessibilità.
Il progetto Yocto si distingue: è un progetto collaborativo open-source che rende facile per gli sviluppatori creare i propri sistemi Linux personalizzati, indipendentemente dall’architettura hardware. Questo strumento viene ampiamente utilizzato per creare distribuzioni Linux embedded personalizzate.
Linx su sistemi embedded / Applicazioni comuni
Per questi motivi, e grazie alla sua versatilità, embedded Linux è diventato molto popolare tra gli ingegneri di sistemi embedded. Molti dispositivi di elettronica di consumo come telefoni, tablet intelligenti, dispositivi di archiviazione digitale, videoregistratori personali, fotocamere, indossabili e molti altri in genere sono sviluppati con Linux. Viene utilizzato nel software auto, e molti altri esempi come apparecchiature di rete, controllo della macchina, automazione industriale, apparecchiature di navigazione, software di volo veicoli spaziali, e strumenti medici in generale.
Anche Microsoft Windows ha componenti Linux come parte del sottosistema Windows per Linux o WSL. Ma forse il miglior esempio di Linux embedded è Android, sviluppato da Google. Vedremo questi ultimi due esempi in modo più dettagliato in tutto il post.
Come sviluppare Linux embedded su Windows
L’introduzione di Linux embedded nella vostra organizzazione può significare molteplici sfide da superare. Le guide sono certamente utili per acquisire esperienza ad un buon ritmo, ma per quanto riguarda l’ambiente di sviluppo? Ha bisogno di essere completamente sostituito per supportare lo sviluppo di Linux?
In molti casi, lo sviluppo di prodotti Linux embedded viene eseguito utilizzando l’host Linux stesso. La versione PC offre più librerie e utilità preinstallate rispetto ai sistemi Linux embedded, rendendo gli host di sviluppo Linux ideali per lo sviluppo di codice Linux embedded. Ma per quanto riguarda gli ingegneri che sono nuovi a questo sistema operativo o che preferiscono utilizzare Windows come host di sviluppo?
La soluzione più diffusa finora è stata quella di utilizzare ambienti virtuali come VirtualBox o VMware Player. In questo modo, l’utente può continuare a lavorare con Windows come sistema operativo principale, e quindi continuare a navigare in un ambiente già familiare, e utilizzare la macchina virtuale con Ubuntu o altre distribuzioni Linux per lo sviluppo di prodotti basati su Linux embedded.
Inoltre, ci sono altre opzioni per lo sviluppo di codice Linux embedded. La tecnologia Container ha recentemente guadagnato un sacco di interesse, offrendo un’altra alternativa per l’esecuzione di una distribuzione Linux all’interno del sistema operativo Windows.
Che cos’è il sottosistema Windows per Linux (WSL)?
Fonte: Microsoft Docs
D’altra parte, Microsoft ha anche fatto un passo avanti nel supportare l’ambiente di sviluppo Linux all’interno del suo sistema operativo con l’introduzione del sottosistema Windows per Linux (WSL), che è stato incluso nella versione di Windows 10.
Il WSL fornisce un’interfaccia del kernel compatibile con Linux sviluppata da Microsoft, che può quindi eseguire uno spazio utente GNU su di esso. In questo modo, gli strumenti di sviluppo Linux possono essere facilmente installati nell’ambiente Linux nativo basato su WSL.
Cosa significa questo per gli sviluppatori? Ciò significa che coloro che preferiscono sviluppare sotto il sistema operativo Windows host può rimanere con l’ambiente di sviluppo familiare di Windows e semplicemente abilitare l’ambiente di sviluppo Linux sullo stesso host.
Grazie a questo, gli strumenti software integrati sono stati utilizzati in Windows stesso, come Timesys IDE TimeStorm. Questo programma basato su Eclipse fornisce agli utenti del sistema operativo Windows 10 un ambiente familiare, rendendo facile lo sviluppo di prodotti Linux embedded all’interno di un ambiente Windows. Questa caratteristica lo rende una soluzione ideale per i programmatori che vogliono migrare allo sviluppo di dispositivi Linux basati su microprocessore, poiché, oltre a supportare linguaggi come C/C++/Python, utilizza lo stesso Yocto SDK nei sistemi operativi Linux e Windows.
Embedded Linux e Android | Come funziona?
Il sistema operativo Android è un tipo di Linux embedded, personalizzato per essere utilizzato su smartphone. In sostanza, Android esegue lo stesso tipo di kernel Linux come sistemi embedded e condivide gli stessi driver, gestione della memoria, e funzionalità di rete. Ma include anche alcune modifiche del kernel che lo rendono ideale per i sistemi mobili. Inoltre, viene caricato con funzioni extra prese da altri progetti open-source.
Google ha costruito Android come un sistema operativo mobile che viene fornito con il suo ecosistema, separato dal classico Linux. La sua interfaccia utente viene ottimizzata per i dispositivi touch-screen. Inoltre, viene fornito con un set di API che consentono un ambiente di sviluppo di applicazioni più standardizzato. Allo stesso modo, i dispositivi Android possono inoltre usufruire di una serie di servizi Google come Google Maps, Fit, Cast o Awareness, tra gli altri.
Alcuni potrebbero pensare che Android diventa un sostituto praticabile per Linux embedded perché standardizza lo sviluppo di software per dispositivi come telefoni, tablet o televisori. Anche così, Android può essere guadagnando in popolarità, ma ha ancora una lunga strada da percorrere prima di abituarsi alla stessa misura di Linux embedded e – ancora meno probabile – per sostituirlo. Le varietà” classiche ” di Linux embedded dominano senza dubbio come il sistema operativo di scelta per gli sviluppatori di sistemi embedded.
Per la maggior parte dei dispositivi Linux embedded, che vengono integrati in macchinari industriali, per esempio, e che prosperano a basso consumo energetico, quelle caratteristiche mobile-friendly tendono ad essere un ingombro extra che uno sviluppatore potrebbe aver bisogno di eliminare. Ecco perché Android ha più senso in un dispositivo che sfrutta i suoi punti di forza in termini di interfaccia utente e media.
Quali sono i vantaggi dell’utilizzo di Linux embedded?
Come abbiamo già visto, embedded Linux è una versione compatta di Linux che offre funzionalità e servizi seguendo i requisiti operativi e applicativi del sistema embedded. Come Linux, i suoi principali vantaggi rispetto ad altri sistemi operativi integrati sono – tra gli altri – l’uso di open source e quindi a basso costo, l’esistenza di più software, fornitori di sviluppo e supporto, e l’apertura in termini di copyright o licenze e un kernel stabile e robusto. Inoltre, la capacità di leggere, modificare e ridistribuire il codice sorgente, accoppiato con un approccio building block altamente modulare per lo sviluppo di un sistema embedded personalizzato. Ciò fornisce una maggiore flessibilità nelle possibilità di progettazione.
-
Codice open source.
-
Prezzo basso.
-
Più fornitori di software, sviluppo e supporto.
-
Altamente personalizzabile.
-
Maggiore flessibilità.
Possibili svantaggi di Linux embedded
Tra i possibili svantaggi di Linux embedded, vale la pena notare la sua complessità. Grazie al suo essere open-source e avere molteplici sviluppi, Linux embedded è più ricco di funzionalità rispetto ad altri ambienti di sviluppo embedded. La vasta base di codice di Linux (sia all’interno del sistema che disponibile nella comunità) si traduce in una complessità quasi infinita.
Inoltre, dovremmo considerare che quando si sviluppano soluzioni adattate alla piattaforma per abituarsi, qualsiasi modifica all’hardware può influenzare direttamente il software, riflettendosi in situazioni di sostituzione del prodotto o anche in aggiornamenti del software stesso. D’altra parte, ricorda che l’uso di Linux embedded implica la necessità di avere uno spazio di memoria relativamente grande rispetto ad altri ambienti. Ciò interesserà principalmente i dispositivi con risorse limitate.
La somma di tutti questi aspetti può portare ad un aumento di denaro e tempo per lo sviluppo di nuove implementazioni. Per questo motivo, è estremamente importante affidarsi sempre a sviluppatori esperti in grado di ottimizzare il processo il più possibile.
-
Avere caratteristiche reacher può portare a una maggiore complessità.
-
La modifica dell’hardware può influire sul software.
-
Necessità di spazio di memoria più grande.
Linux embedded: trova sviluppatori software embedded
Quindi, con tutto ciò che viene detto, stai cercando sviluppatori esperti di C/C++ per lo sviluppo di software e sistemi embedded su Linux? Li hai appena trovati.
CONTROLLA LE NOSTRE SOLUZIONI SOFTWARE EMBEDDED