„Igalia“, žinoma dėl savo indėlio į atvirojo kodo projektus, tokius kaip GNOME, GTK, WebKitGTK, Epiphany, Maemo, GStreamer, Wine, Mesa ir freedesktop.org, pristatė „Moonforge“ projektą, kuris supaprastina pasirinktinių „Linux“ distribucijų, skirtų įvairiems įrenginiams ir įterptosioms sistemoms, kūrimą ir priežiūrą. Pagrindiniai distribucijos komponentai yra pagrįsti kūrimo įrankiais ir paketų metaduomenimis iš „OpenEmbedded“ ir „Yocto“ projektų. Projektams būdingi kūriniai platinami pagal MIT licenciją.
„Moonforge“ kūrėjams ir sistemų integratoriams suteikia sistemą, konfigūracijos failų rinkinį ir komponentų rinkinį, skirtą atomiškai atnaujinamiems sistemos atvaizdams kurti, remiantis patikrintomis ir plačiai naudojamomis pramonės technologijomis, tokiomis kaip „yocto“, „bitbake“ ir „kas“. Gauti atvaizdai palaiko supaprastintą atnaujinimo procesą ir ilgalaikį priežiūros ciklą. Pagrindinis projekto tikslas – suteikti įterptųjų sistemų kūrėjams patogų naudoti įrankių rinkinį, leidžiantį jiems sutelkti dėmesį į konkrečiam produktui būdingų funkcijų kūrimą ir išvengti laiko, susijusio su platinimo kūrimu ir priežiūra.
Sistemos atvaizdas sukurtas iš paruoštų „Yocto“ modulių rinkinio. Kiekvienas modulis yra atsakingas už konkrečią funkciją arba palaikymą konkrečioje tikslinėje aparatinės įrangos platformoje. Pavyzdžiui, yra modulių, skirtų „Docker“, „QEMU“ arba „Podman“ palaikymui, atnaujinimų valdymui per RAUC ir grafinės sąsajos, pagrįstos sudėtiniu kodu, kūrimui. serveris „Weston“ pristato „Webkit“ pagrindu sukurtą naršyklės sąsają interneto kioskams ir kuria „Raspberry Pi 4“ bei „5“ plokštes.
Palaikomi trys leidimų platinimo kanalai: stable (stabili LTS šaka), next (šaka, kurioje kuriamas kitas LTS leidimas) ir main (eksperimentinė šaka, kurioje vyksta kūrimas). Kiekviena šaka yra susieta su savo „Yocto“ komponentų rinkinio versija. Stabili šaka atnaujinama kas mėnesį ir atitinka „Yocto“ LTS leidimus.
Atnaujinimai teikiami belaidžiu būdu (OTA) naudojant „Mender“ įrankius ir įdiegiami atomiškai, pakeičiant visą sistemą. Diske sukuriami du identiški šakniniai skaidiniai – aktyvusis ir pasyvusis. Naujas atnaujinimas įdiegiamas pasyviame skaidinyje, nepaveikiant aktyvaus. Po perkrovimo skaidiniai apsikeičia vietomis – skaidinys su nauju atnaujinimu tampa aktyvus, o anksčiau aktyvus skaidinys perjungiamas į pasyvųjį režimą ir laukia kito atnaujinimo. Jei po atnaujinimo kas nors nepavyksta, sistema grąžinama į ankstesnę versiją.
„BitBake“ naudojama sistemos atvaizdams kurti, o „kas“ – konfigūracijoms generuoti ir atkuriamoms kompiliavimo versijoms užtikrinti. Kompiliavimo versijos, atnaujinimai, pažeidžiamumų ataskaitos ir SBOM (programinės įrangos medžiagų sąrašo) metaduomenys automatiškai renkami ir skelbiami naudojant nuolatinės integracijos ir nuolatinio diegimo (CI/CD) sistemas. „Moonforge“ pagrindu sukurtą kompiliavimo infrastruktūrą galima diegti tiek vietiniuose, tiek nuotoliniuose serveriuose. serveriai, tiek viešojo, tiek privačiojo debesies aplinkoje.
Siekiant užtikrinti išvestinių produktų kūrimo skaidrumą ir nuspėjamumą, platinamajame pakete griežtai atskirti tiek pirminiai, tiek vėlesni komponentai, todėl kūrėjai gali pridėti papildomų funkcijų prie bazinio paketo pagal poreikį. Konfigūracija apibrėžiama deklaratyviai naudojant YAML formatą ir apima tokias sritis kaip išorinių saugyklų prijungimas, „Yocto“ modulių aktyvinimas, priklausomybių tarp platinimo komponentų valdymas, papildomų pataisų taikymas ir numatytųjų sistemos nustatymų keitimas.
Šaltinis: opennet.ru
