Igalia ettevĂ”te, mis on tuntud oma panuse poolest avatud projektidesse nagu GNOME, GTK, WebKitGTK, Epiphany, Maemo, GStreamer, Wine, Mesa ja freedesktop.org, tutvustas projekti Moonforge, mis lihtsustab oma Linuxi jaotuste loomist ja hooldamist erinevates seadmetes ja embedded sĂŒsteemides. Jaotuse sisu moodustatakse OpenEmbedded ja Yocto projektide ehitusriistade ja paketimetade pĂ”hjal. Projekti spetsiifilised arendused jaotatakse MIT-litsentsi alusel.
Moonforge pakub arendajatele ja sĂŒsteemi integratoritele raamistikku, konfiguratsioonifailide kogumit ja komponente, et luua atomaarse uuendamisega sĂŒsteemipilte, mis pĂ”hinevad tööstuses tĂ”estatud ja laialdaselt kasutatavatele tehnoloogiatele nagu yocto, bitbake ja kas. Koostatud piltide jaoks on toetatud lihtsustatud uuendamisprotsess ja tagatud pikaajaline hooldustsĂŒkkel. Projekti peamine eesmĂ€rk on anda embedded sĂŒsteemide arendajatele mugavad tööriistad, mis vĂ”imaldavad keskenduda nende toote spetsiifiliste funktsionaalsuste arendamisele, mitte jaotuse loomise ja hooldamisega seotud ĂŒlesannetele.
SĂŒsteemipilt koosneb valmis Yocto moodulite kogumist. Iga moodul vastutab teatud funktsionaalsuse vĂ”i konkreetse sihtaadressi riistvaraplatvormi toe eest. NĂ€iteks pakutakse mooduleid Docker, QEMU vĂ”i Podmani toe, uuenduste haldamise RAUC kaudu, samuti graafilise kasutajaliidese loomise vĂ”imalusi komposiitide pĂ”hjal. serverilt Weston, veebipĂ”hise liidese kĂ€ivitamine Webkitil, et pakkuda interneti kioskidele ja Raspberri Pi 4 ja 5 plaatide jaoks koostamine.
Toetatakse kolme vÀljaande kanalit: stable (stabiilne LTS haru), next (haru, kus arendatakse jÀrgmist LTS vÀljaannet) ja main (katseharu, kus toimub arendus). Iga haru on seotud oma Yocto komponendi versiooniga. Stabiilne haru uuendatakse kord kuus ja vastab Yocto LTS vÀljaannetele.
Uuendused saadetakse OTA (Over-The-Air) reĆŸiimis, kasutades Menderi tööriistu, ja installitakse atomarise tegemise kaudu, asendades kogu sĂŒsteemi. Kettale luuakse kaks identselt juurdumise osa - aktiivne ja passiivne. Uus uuendus installitakse passiivsesse ossa, mĂ”jutamata aktiivse osa tööd. PĂ€rast taaskĂ€ivitamist vahetavad osad kohti - uus uuendus muutub aktiivseks, samas kui eelmine aktiivne osa lĂ€heb passiivsesse reĆŸiimi ja ootab jĂ€rgmise uuenduse installimist. Kui pĂ€rast uuendamist lĂ€heb miski valesti, toimub tagasipöördumine eelmise sĂŒsteemiversiooni juurde.
SĂŒsteemite kavandeid luuakse BitBake'i tööriistade abil ning konfigureerimise ja reproduktiivsete kogude tagamiseks kasutatakse kas. Kogud, uuendused, haavatavuse aruanded ja SBOM (Software Bill of Materials) metaandmed koostatakse ja avaldatakse automaatselt pideva integreerimise ja pideva juurutamise (CI/CD) sĂŒsteemide abil. Moonforge'i pĂ”hine kogumisstruktuur vĂ”ib olla juurutatud nii kohalikesse serverites, kui ka avalikesse vĂ”i privaatsetesse pilvekeskkondadesse.
Toodete loomise protsesside lĂ€bipaistvuse ja ennustatavuse tagamiseks on jaotises rakendatud range eristus upstream- ja downstream-komponentide vahel, mis vĂ”imaldab arendajatel vajadusel lisada tĂ€iendavat funktsionaalsust algse sisu peale. Konfiguratsioon mÀÀratakse deklaratiivses vormis, kasutades YAML-formaati, ja katab sellised valdkonnad nagu vĂ€listesse hoidlatest, Yocto moodulite aktiveerimine, jaotise komponentide vaheliste sĂ”ltuvuste haldamine, tĂ€iendavate patchide rakendamine ja vaikimisi sĂŒsteemi seadete muutmine.
Allikas: opennet.ru
