Kompania Igalia, e njohur për pjesëmarrjen e saj në zhvillimin e projekteve të lira si GNOME, GTK, WebKitGTK, Epiphany, Maemo, GStreamer, Wine, Mesa dhe freedesktop.org, prezantoi projektin Moonforge, i cili thjeshton krijimin dhe mbështetjes së distribucioneve të veta Linux për pajisje të ndryshme dhe sisteme të integruara. Strukturat e distribucionit formohen mbi bazën e mjeteve të ndërtimit dhe metadatat e pakove nga projektet OpenEmbedded dhe Yocto. Punimet specifike për projektin shpërndahen nën licencën MIT.
Moonforge ofron zhvilluesve dhe integratorëve të sistemeve një kornizë, një grup skedarësh konfigurimi dhe një koleksion komponentësh për formimin e imazheve sistemore që përditësohen në mënyrë atomike, të bazuara në përdorimin e teknologjive tashmë të provuara dhe të zakonshme në industri, si yocto, bitbake dhe kas. Për imazhet e formuara mbahet një proces i thjeshtuar për instalimin e përditësimeve dhe sigurohet një cikël i gjatë mbështetjeje. Qëllimi kryesor i projektit është t'u ofrojë zhvilluesve të sistemeve të integruara mjete të dobishme që u japin mundësinë të përqendrohen në zhvillimin e funksionaliteteve specifike për produktin e tyre dhe të mos humbasin kohë me detyra që lidhen me krijimin dhe mbajtjen e distribucionit.
Imazhi sistemor ishte i ndĂ«rtuar nga njĂ« grup modulash tĂ« gatshĂ«m Yocto. Ădo modul Ă«shtĂ« pĂ«rgjegjĂ«s pĂ«r njĂ« mundĂ«si tĂ« caktuar ose pĂ«r mbĂ«shtetje tĂ« njĂ« platforme specifike harduerike. PĂ«r shembull, ofrohen module pĂ«r mbĂ«shtetje Docker, QEMU ose Podman, menaxhimin e pĂ«rditĂ«simeve pĂ«rmes RAUC, krijimin e njĂ« ndĂ«rfaqe grafike mbi bazĂ«n e kompozitit Weston, duke nisur ndĂ«rfaqen e shfletuesit mbi bazĂ«n e Webkit pĂ«r kioske interneti dhe ndĂ«rtimin pĂ«r platformat Raspberri Pi 4 dhe 5. server MbĂ«shteten tre kanale shpĂ«rndarjeje tĂ« lĂ«shimeve: stable (dega e qĂ«ndrueshme LTS), next (dega nĂ« tĂ« cilĂ«n zhvillohet lĂ«shimi i ardhshĂ«m LTS) dhe main (dega eksperimentale nĂ« tĂ« cilĂ«n zhvillohet zhvillimi). Ădo degĂ« Ă«shtĂ« e lidhur me versionin e saj tĂ« grupit tĂ« komponentĂ«ve Yocto. Dega e qĂ«ndrueshme pĂ«rditĂ«sohet çdo muaj dhe korrespondon me lĂ«shimet LTS tĂ« Yocto.
Përditësimet dërgohen në mënyrë OTA (Over-The-Air) duke përdorur mjete Mender dhe instalohen në mënyrë atomike nëpërmjet zëvendësimit të tërë sistemit. Në ruajtës krijohen dy ndarje identike rrënjësore - një aktive dhe një pasive. Një përditësim i ri instalohet në ndarjen pasive, pa ndikuar në funksionimin e ndarjes aktive. Pas rilindjes, ndarjet ndërrrohen vendet - ndarja me përditësimin e ri bëhet aktive, ndërsa ndarja e kaluar aktive kalon në modin pasiv dhe pret instalimin e përditësimit të ardhshëm. Nëse pas përditësimit diçka shkon gabim, bëhet rikthimi në variantin e mëparshëm të sistemit.
Për krijimin e imazheve sistemore përdoret mjeti BitBake, dhe për formimin e konfiguracionit dhe për sigurimin e ndërtimeve të ripërtypshme - kas. Ndërtimet, përditësimet, raportet mbi dobësitë dhe metadatat SBOM (Software Bill of Materials) mblidhen dhe publikohen automatikisht duke përdorur sisteme të integrimit dhe zhvillimit të vazhdueshëm (CI/CD). Infrastruktura e ndërtimit mbi bazën e Moonforge mund të vendoset si në mjedise lokale, ashtu edhe në mjedise publike ose private në re.
Për transparencën dhe parashikueshmërinë e proceseve të krijimit të produkteve të deriva në distribucion, aplikohet një ndarje rigoroze midis komponentëve upstream dhe downstream, duke lejuar zhvilluesit që, nëse është e nevojshme, të shtojnë funksionalitete të tjera sipër strukturës themelore. Konfiguracioni përcaktohet në një paraqitje deklarative, duke përdorur formatin YAML dhe mbulon fusha të tilla si lidhja e reposive të jashtme, aktivizimi i moduleve Yocto, menaxhimi i varësive midis komponentëve të distribucionit, aplikimi i patch-eve shtesë dhe ndryshimi i cilësimeve standarde të sistemit. serverë, ashtu si në mjedise publike ose private të reve.
Për transparencën dhe parashikueshmërinë e proceseve të krijimit të produkteve të derivatëve, ndarja e rreptë midis komponenteve upstream dhe downstream aplikohet, që u lejon zhvilluesve të shtojnë funksionalitete shtesë mbi bazën e standardeve themelore nëse është e nevojshme. Konfigurimi përcaktohet në një paraqitje deklarative, duke përdorur formatin YAML, dhe përfshin fusha të tilla si lidhja e repozitoreve të jashtme, aktivizimi i moduleve Yocto, menaxhimi i varësive midis komponenteve të distribucionit, aplikimi i patch-eve shtesë dhe ndryshimi i cilësimeve sistemike që zbatohen si parazgjedhje.
Burimi: opennet.ru
