L'azienda Collabora ha presentato la distribuzione Linux Apertis 2024.3, inizialmente sviluppata per l'equipaggiamento di dispositivi automobilistici, ma successivamente riorientata verso un più ampio spettro di dispositivi elettronici, attrezzature incorporate e attrezzature industriali. Tra i dispositivi che utilizzano Apertis ci sono la console di gioco Atari VCS e il rilevatore di oggetti nelle pareti Bosch D-tect 200.
Le immagini di sistema di base sono distribuite per architetture x86_64, arm64 e armhf. La distribuzione è modulare, permettendo ai produttori di dispositivi di formare autonomamente il necessario contenuto dell'ambiente di sistema. È supportata sia la creazione di build basate su pacchetti deb tradizionali, sia di immagini monolitiche aggiornabili in modo atomico basate su OSTree.
Come base per la costruzione della distribuzione è stata utilizzata la base dei pacchetti Debian GNU/Linux 12, ma il contenuto è stato formato tenendo conto dei rischi che i produttori di hardware possono incontrare nell'uso di alcune licenze open source, come la GPLv3, che vieta la tivoizzazione, cioè il legame del software all'hardware, ad esempio, consentendo solo il caricamento di firmware firmati digitalmente dal produttore.
Nello sviluppo e nella formazione del contenuto della distribuzione, il progetto Apertis segue le regole di Debian e include solo applicazioni distribuite sotto licenze aperte o che almeno consentono una libera diffusione. Le aziende che creano i propri prodotti sulla base di Apertis possono avere la certezza della purezza legale delle opere derivate: per ogni build viene redatto un rapporto SBOM (Software Bill of Materials) che indica le informazioni sulle licenze di tutti i file con codice utilizzati, nonché i dati sulle versioni dei programmi, facilitando la verifica delle versioni vulnerabili.
Una caratteristica importante di Apertis è la possibilità di creare una build che non includa codice sotto licenza GPLv3. Invece di utilizzare versioni obsolete degli strumenti GNU, rilasciate prima del passaggio alla licenza GPLv3, Apertis utilizza alternative più moderne sotto licenze permissive. Ad esempio, invece dei pacchetti GNU coreutils e findutils, in Apertis sono offerti equivalenti del progetto uutils, scritti in linguaggio Rust e distribuiti sotto licenza MIT, mentre GnuPG è sostituito da Sequoia-PGP sotto licenze GPL-2+ e LGPL-2+. Inoltre, per coloro che non sono preoccupati per le questioni legali legate alla GPLv3, è rimasta la possibilità di utilizzare set tradizionali di strumenti.
Tutti i componenti di Apertis vengono regolarmente sottoposti a test automatizzati e manuali estesi su piattaforme hardware di riferimento, come le schede Raspberry Pi 4 e i SoC automobilistici R-car, e i risultati di questi test vengono pubblicati in accesso aperto. I test automatizzati delle build di sistema su hardware di riferimento sono organizzati sulla base del sistema LAVA (Linaro Automated Validation Architecture).
Il pacchetto proposto nel distributore con il kernel si basa sull'ultima versione LTS del kernel Linux. Ad esempio, nella versione Apertis 2024.3 è utilizzato il kernel 6.6, non il kernel 6.1 dei pacchetti Debian 12. Il periodo di supporto per ciascuna versione di Apertis è di 1 anno e 9 mesi, con un rilascio correttivo ogni tre mesi contenente correzioni di bug.
Il distributore include oltre 5000 pacchetti. Tutti i pacchetti, le immagini, gli strumenti e le configurazioni sono sviluppati in un repository git pubblico. Per la collaborazione viene utilizzato GitLab e per i test con integrazione continua — GitLab CI. Per la creazione di pacchetti binari a partire dal codice sorgente è utilizzato un toolkit OBS (Open Build Service). I pacchetti compilati vengono distribuiti attraverso i repository APT, gestiti tramite il toolkit aptly.

Tra le nuove funzionalità di Apertis 2024, oltre al passaggio alla base di pacchetti Debian 12 e al nuovo kernel Linux, si segnala:
- Supporto per la gestione dei container nel formato OCI tramite il toolkit Podman.
- Possibilità di utilizzare ONNX Runtime per accelerare i compiti di apprendimento automatico.
- Supporto per i pacchetti optee-os (OP-TEE Trusted OS), optee-client (API Client OP-TEE) e optee-test (suite di test OP-TEE) sviluppati dal progetto OP-TEE per formare ambienti protetti (TEE, Trusted Execution Environment), isolati dal sistema principale.
- Supporto iniziale per la scheda TI SK-AM62 e creazione di immagini di sistema separate per essa.
- Per impostazione predefinita, durante la compilazione dei pacchetti è abilitata la visualizzazione di avvisi aggiuntivi del compilatore.
- Migliorato il sistema di build. Aggiunto uno strumento per generare un rapporto sulle differenze nelle immagini di sistema specificate. Migliorati i rapporti SBOM per l'analisi delle licenze e la valutazione delle dipendenze di build.
- Ampliati gli strumenti di test. Aggiunta la supporto al test dei pacchetti dopo ogni merge request. Migliorati i rapporti per il controllo qualità.
Fonte: opennet.ru
