Ubuntu core è la versione di Ubuntu re-ingegnerizzato per IoT, sistemi di digital signage (anche su schermi 4K) e per sistemi embedded, ottimizzato per aggiornamenti snap-based e Security-first e a prova di manomissione e alterazioni. Semplice da installare e mantenere, si caratterizza per le caratteristiche Security First (a partire dalla crittografia full disk, integrità dei data e key validation per far girare solo ciò che è necessario).
Cos’è Ubuntu core?
Ubuntu Core è una versione transazionale di Ubuntu Linux OS, il sistema operativo Free software dedicato ai dispositivi Internet of things (IoT) e implementazioni ulteriori. Questo OS gira su robot, gateways e condivide gli stessi kernel, librerie e sistemi software con Ubuntu standard, ma su scala più piccola.
Le apps girano in isolamento l’una dall’altra e l’accesso alle risorse di sistema è solo garantito con permessi espliciti. Gli update sono transazionale, e cioè autonomi e atomici, resistenti a imprevedibili condizione di hardware e rete, grazie a pacchetti immutabili e a una digital signature persistente. I pacchetti snap sono confinati in una security sandbox ristretta senza accesso alle risorse di sistema fuori dallo snap stesso.
Ubuntu Core è installato mediante un’immagine non alterabile, che può essere installata o realizzata appositamente per la piattaforma e l’applicazione.
Quali sono le caratteristiche di Ubuntu core 18?
Ubuntu Core 18 è Ubuntu 18.04 LTS per dispositivi embedded ad elevata sicurezza (come Raspberry Pi).
Nel 2019 Canonical ha rilasciato Ubuntu Core 18, frutto della collaborazione con Dell EMC. Una versione di sistema operativo dedicato ai dispositivi IoT, dotato di ecosistema IoT app store, in cui ciascuna componente può essere verificata in ogni momento e dove gli snaps sono confinati in una sandbox per limitare danni derivanti da alterazioni.
Ecco le caratteristiche di Ubuntu core 18:
- Ubuntu Core 18 riceve 10 anni di mantenimento low-cost sul fronte sicurezza, per consentire implementazioni industriali mission-critical a lungo termine;
- gli aggiornamenti sono distribuiti con SLA device-specific, per assicurare che ogni modifica sia frutto della gestione del produttore o dell’azienda e per fornire una risposta rapida a ogni vulnerabilità rilevata durante il ciclo di vita del dispositivo;
- tutti i pacchetti snap sono distribuiti ai device scansionati regolarmente per debolezze note, permettendo a imprese e produttori di imparare velocemente a conoscere rischi potenziali nei loro ecosistemi;
- la superficie di Ubuntu Core è stata ridotta al minimo con pochi pacchetti installati, per minimizzare di conseguenza le dimensioni e la frequenza degli aggiornamenti di sicurezza e garantire più storage per applicazioni e dati;
- tutti gli snaps distribuiti ai dispositivi subiscono una regolare scansione a caccia di debolezze e devices, mettendo aziende e produttori nelle condizioni di imparare rapidamente a riconoscere potenziali rischi nei loro ecosistemi;
- Ubuntu Core abilita una nuova classe di soluzioni app-centriche, riferite ad apps che arrivano dagli ecosistemi di Ubuntu e Snapcraft oppure per realizzare applicazioni uniche ed esclusive specifiche per un brand o un modello (i produttori hanno il pieno controllo sulle versioni e sugli aggiornamenti rilevanti per i loro device);
- grazie allo stesso meccanismo di distribuzione delle applicazioni, un utente business può sapere precisamente quali device abbiano ricevuto rulevanti update (anche di sicurezza) CVE, e controllare il rollout nel network;
- l’utilizzo di Ubuntu standard significa che i publisher di app possono supportare molteplici dispositivi, semplicemente ricompilando;
- riduce la complessità del debugging
- semplifica la ricerca di competenze: è più facile assumere esperti di Ubuntu standard in grado di sviluppare usando strumenti e processi familiari;
- one platform, one format and one process: la formula aumenta il livello di sicurezza generale, se gli snap per Ubuntu Core girano anche su Ubuntu Server, Desktop e cloud images.
Pacchetti snap su Ubuntu: cosa sono?
Gli snap sono pacchetti Linux universali. Snappy è un gestore di pacchetti ideato da Canonical, ma è anche un formato di pacchetti software inizialmente appositamente per Ubuntu, ma è adottato anche da altre distribuzioni. Fa parte di Ubuntu Core, quando è ancora l’utility che ha un meccanismo per applicare aggiornamenti software.
Gli Snap sono usati da Ubuntu Core sia per comporre l’immagine che gira su device, sia per distribuire aggiornamenti software coerenti e affidabili, spesso destinati a sistemi embedded a basso consumo energetico, inaccessibili e amministrati da remoto e sistemi IoT.
Si contano 4.600 snap pubblicati da 1700 publisher independenti.
Su quali piattaforme può essere eseguito Ubuntu core?
Ubuntu core può essere eseguito sulle seguenti piattaforme:
- Raspberry Pi 2, 3, 4 o CM3;
- Compute Module 3;
- Qualcomm DragonBoard 410c;
- Intel NUC;
- Intel Joule;
- Samsung Artik;
- KVM;
- Amazon Web Services (AWS)
Qual è la differenza tra Raspbian e Ubuntu Core?
Raspbian è un sistema operativo basato su Debian, mentre Ubuntu Core è la versione di Ubuntu Linux OS di Canonical. Sono entrambi free software, open source, ma hanno differenze.
Raspbian è ottimizzato per l’hardware Raspberry Pi. Il sistema operativo contiene 35.000 pacchetti, in bundle con software pre-compilato in un format facile da installare su Raspberry Pi.
Invece Ubuntu Core (One platform, one format and one process) è una versione di sistema operativo ridotta al minimo con pochi pacchetti installati, per minimizzare di conseguenza le dimensioni e la frequenza degli aggiornamenti di sicurezza e garantire più storage per applicazioni e dati.
Secondo la community StackShare, Ubuntu gode di una più vasta approvazione: menzionato in 2563 company stacks e 9695 developers stacks, contro i 3 company stacks e le 10 developer stacks di Raspbian.
Come usare Ubuntu core per dispositivi IoT?
Dalla smart home ai droni, dai robot ai sistemi industriali, Ubuntu rappresenta il nuovo standard per Linux embedded.
Si utilizza così:
- si installa Ubuntu Core sulla piattaforma scelta (per esempio, Raspberry Pi, in seguito alla verifica dei requisiti minimi supportati), dopo aver creato un account Ubuntu SSO e dopo aver generato una rsa key per importare l’account; la chiave viene rinominata e protetta con passphrare; la public key sarà usata per effettuare SSH da remoto su Raspberry Pi una volta completata l’installazione di Ubuntu Core);
- si esegue il boot e si imposta il board (per legare le chiavi generate al board, è necessario importare le chiavi pubbliche – con un semplice copia e incolla – sull’account Ubuntu SSO);
- si scarica Ubuntu Core per la piattaforma selezionata;
- si crea una bootable image di Ubuntu Core sulla propria SD card;
- si collegano in maniera appropriata i cavi al Pc e alla piattaforma (nel nostro esempio, Raspberry Pi);
- dopo la configurazione (a iniziare dal setup del WiFi), si installa il pacchetto snap e si lanciano le applicazioni (per esempio, il video streaming su Raspberry Pi);
- si installa il dispositivo connesso, collegandolo all’interfaccia CSI;
- si effettua il reboot della piattaforma.
Canonical offre un servizio “chiavi in mano” per sviluppare, personalizzare e portare sul mercato un dispositivo IoT dotato di Ubuntu core e con ecosistema IoT App Store (con aggiornamenti affidabili over-the-air, OTA), con integrazione CI/CD, autenticazione sicura, management dashboard, analytics, multi-tenancy.
Supporta chip X86 o ARM e un app store dedicato per IoT.
Smart Start è la toolbox tutto compreso (embedded engineering, sviluppo app, backend hosting, infrastruttura di software update, mantenimento e supporto clienti dopo-vendita) che, attraverso un processo di smart-things-as-a-service, consente alle aziende il bootstrap commerciale dei prodotti IoT, rendendo il servizio scalabile e riducendo i rischi e le incertezze nel lancio e nel time-to-market.