Igalia, znana po svojih prispevkih k odprtokodnim projektom, kot so GNOME, GTK, WebKitGTK, Epiphany, Maemo, GStreamer, Wine, Mesa in freedesktop.org, je predstavila projekt Moonforge, ki poenostavlja ustvarjanje in vzdrževanje prilagojenih distribucij Linuxa za različne naprave in vgrajene sisteme. Osrednje komponente distribucije temeljijo na orodjih za gradnjo in metapodatkih paketov iz projektov OpenEmbedded in Yocto. Razvoj, specifičen za posamezne projekte, se distribuira pod licenco MIT.
Moonforge razvijalcem in sistemskim integratorjem ponuja ogrodje, nabor konfiguracijskih datotek in zbirko komponent za ustvarjanje atomsko posodabljajočih se sistemskih slik, ki temeljijo na preizkušenih in široko uporabljenih industrijskih tehnologijah, kot so yocto, bitbake in kas. Nastale slike podpirajo poenostavljen postopek posodabljanja in dolgoročni cikel vzdrževanja. Glavni cilj projekta je razvijalcem vgrajenih sistemov zagotoviti uporabniku prijazen komplet orodij, ki jim omogoča, da se osredotočijo na razvoj funkcionalnosti, specifične za izdelek, in se izognejo času, povezanemu z ustvarjanjem in vzdrževanjem distribucij.
Sistemska slika je zgrajena iz nabora že pripravljenih modulov Yocto. Vsak modul je odgovoren za določeno funkcijo ali podporo za določeno ciljno strojno platformo. Na voljo so na primer moduli za podporo Docker, QEMU ali Podman, upravljanje posodobitev prek RAUC in ustvarjanje grafičnega vmesnika, ki temelji na kompozitnem okolju. strežnika Weston, ki je predstavil vmesnik brskalnika, ki temelji na Webkitu, za internetne kioske in zgradil plošči Raspberry Pi 4 in 5.
Podprti so trije kanali distribucije izdaj: stabilna (stabilna veja LTS), naslednja (veja, kjer se razvija naslednja izdaja LTS) in glavna (poskusna veja, kjer poteka razvoj). Vsaka veja je vezana na svojo različico nabora komponent Yocto. Stabilna veja se posodablja mesečno in ustreza izdajam Yocto LTS.
Posodobitve se dostavljajo po zraku (OTA) z orodji Mender in se namestijo atomsko, s čimer nadomestijo celoten sistem. Na disku se ustvarita dve enaki korenski particiji – aktivna in pasivna. Nova posodobitev se namesti na pasivno particijo, ne da bi vplivala na aktivno. Po ponovnem zagonu se particiji zamenjata – particija z novo posodobitvijo postane aktivna, prej aktivna particija pa se preklopi v pasivni način in čaka na naslednjo posodobitev. Če gre po posodobitvi kaj narobe, se sistem vrne na prejšnjo različico.
BitBake se uporablja za ustvarjanje sistemskih slik, kas pa za ustvarjanje konfiguracij in zagotavljanje ponovljivih gradenj. Gradnje, posodobitve, poročila o ranljivostih in metapodatki SBOM (programski seznam materialov) se samodejno zbirajo in objavljajo z uporabo sistemov za neprekinjeno integracijo in neprekinjeno uvajanje (CI/CD). Infrastrukturo gradnje, ki temelji na Moonforgeu, je mogoče namestiti tako na lokalne kot oddaljene strežnike. strežnikov, tako v javnem kot zasebnem oblačnem okolju.
Za zagotovitev preglednosti in predvidljivosti pri razvoju izpeljanih izdelkov distribucija vzdržuje strogo ločitev med zgornjimi in spodnjimi komponentami, kar razvijalcem omogoča, da po potrebi dodajo dodatne funkcionalnosti osnovnemu paketu. Konfiguracija je deklarativno definirana z uporabo formata YAML in zajema področja, kot so povezovanje zunanjih repozitorijev, aktiviranje modulov Yocto, upravljanje odvisnosti med komponentami distribucije, nameščanje dodatnih popravkov in spreminjanje privzetih sistemskih nastavitev.
Vir: opennet.ru
