Igalia, coneguda per les seves contribucions a projectes de codi obert com ara GNOME, GTK, WebKitGTK, Epiphany, Maemo, GStreamer, Wine, Mesa i freedesktop.org, ha presentat el projecte Moonforge, que simplifica la creació i el manteniment de distribucions de Linux personalitzades per a diversos dispositius i sistemes integrats. Els components principals de la distribució es basen en eines de compilació i metadades de paquets dels projectes OpenEmbedded i Yocto. Els desenvolupaments específics del projecte es distribueixen sota la llicència MIT.
Moonforge proporciona als desenvolupadors i integradors de sistemes un marc de treball, un conjunt de fitxers de configuració i una col·lecció de components per crear imatges de sistema actualitzables atòmicament basades en tecnologies industrials provades i àmpliament utilitzades, com ara yocto, bitbake i kas. Les imatges resultants admeten un procés d'actualització simplificat i un cicle de manteniment a llarg termini. L'objectiu principal del projecte és proporcionar als desenvolupadors de sistemes integrats un conjunt d'eines fàcil d'utilitzar, que els permeti centrar-se en el desenvolupament de funcionalitats específiques del producte i evitar el temps associat a la creació i el manteniment de distribucions.
La imatge del sistema es construeix a partir d'un conjunt de mòduls Yocto prefabricats. Cada mòdul és responsable d'una funció específica o del suport per a una plataforma de maquinari de destinació específica. Per exemple, hi ha mòduls disponibles per al suport de Docker, QEMU o Podman, la gestió d'actualitzacions mitjançant RAUC i la creació d'una interfície gràfica basada en composite. servidor Weston, llançant una interfície de navegador basada en Webkit per a quioscos d'Internet i construint per a plaques Raspberry Pi 4 i 5.
S'admeten tres canals de distribució de llançaments: stable (la branca LTS estable), next (la branca on es desenvolupa el següent llançament LTS) i main (la branca experimental on es produeix el desenvolupament). Cada branca està vinculada a la seva pròpia versió del conjunt de components de Yocto. La branca estable s'actualitza mensualment i correspon a les versions LTS de Yocto.
Les actualitzacions es lliuren per aire (OTA) mitjançant les eines del Mender i s'instal·len atòmicament, substituint tot el sistema. Es creen dues particions arrel idèntiques al disc: activa i passiva. La nova actualització s'instal·la a la partició passiva, sense afectar l'activa. Després d'un reinici, les particions s'intercanvien: la partició amb la nova actualització esdevé activa i la partició anteriorment activa passa al mode passiu i espera la propera actualització. Si alguna cosa va malament després de l'actualització, el sistema torna a la versió anterior.
BitBake s'utilitza per crear imatges de sistema, mentre que kas s'utilitza per generar configuracions i garantir compilacions reproduïbles. Les compilacions, actualitzacions, informes de vulnerabilitats i metadades de SBOM (Software Bill of Materials) es recopilen i publiquen automàticament mitjançant sistemes d'integració contínua i desplegament continu (CI/CD). La infraestructura de compilació basada en Moonforge es pot desplegar tant en servidors locals com remots. servidors, tant en entorns de núvol públic com privat.
Per garantir la transparència i la predictibilitat en el desenvolupament de productes derivats, la distribució manté una separació estricta entre els components principals i secundaris, permetent als desenvolupadors afegir funcionalitats addicionals a sobre del paquet base segons calgui. La configuració es defineix de manera declarativa mitjançant el format YAML i cobreix àrees com ara la connexió de repositoris externs, l'activació de mòduls Yocto, la gestió de dependències entre components de la distribució, l'aplicació de pegats addicionals i el canvi de la configuració predeterminada del sistema.
Font: opennet.ru
