Společnost Igalia, známá svým zapojením do vývoje bezplatných projektů jako GNOME, GTK, WebKitGTK, Epiphany, Maemo, GStreamer, Wine, Mesa a freedesktop.org, představila projekt Moonforge, který zjednodušuje vytváření a údržbu vlastních... Linux-distribuce pro různá zařízení a vestavěné systémy. Základní komponenty distribuce jsou založeny na nástrojích pro sestavení a metadatech balíčků z projektů OpenEmbedded a Yocto. Vývoj specifických projektů je distribuován pod licencí MIT.
Moonforge poskytuje vývojářům a systémovým integrátorům framework, sadu konfiguračních souborů a kolekci komponent pro vytváření atomicky aktualizovatelných obrazů systému založených na osvědčených a široce používaných technologiích v oboru, jako jsou yocto, bitbake a kas. Výsledné obrazy podporují zjednodušený proces aktualizace a dlouhodobý cyklus údržby. Hlavním cílem projektu je poskytnout vývojářům vestavěných systémů uživatelsky přívětivou sadu nástrojů, která jim umožní soustředit se na vývoj funkcí specifických pro daný produkt a ušetřit čas spojený s vytvářením a údržbou distribucí.
Systémový obraz je sestaven ze sady hotových modulů Yocto. Každý modul je zodpovědný za specifickou funkci nebo podporu pro konkrétní cílovou hardwarovou platformu. K dispozici jsou například moduly pro podporu Dockeru, QEMU nebo Podmanu, správu aktualizací prostřednictvím RAUC a vytváření grafického rozhraní založeného na kompozitním prostředí. server Weston, spuštění prohlížečového rozhraní založeného na Webkitu pro internetové kiosky a sestavení pro desky Raspberry Pi 4 a 5.
Jsou podporovány tři distribuční kanály verzí: stable (stable LTS větev), next (větev, kde se vyvíjí další LTS verze) a main (experimentální větev, kde probíhá vývoj). Každá větev je vázána na svou vlastní verzi sady komponent Yocto. Stable větev je aktualizována měsíčně a odpovídá verzím Yocto LTS.
Aktualizace jsou doručovány bezdrátově (OTA) pomocí nástrojů Mender a instalují se atomicky, čímž nahrazují celý systém. Na disku se vytvoří dva identické kořenové oddíly – aktivní a pasivní. Nová aktualizace se nainstaluje na pasivní oddíl, aniž by ovlivnila aktivní oddíl. Po restartu se oddíly prohodí – oddíl s novou aktualizací se stane aktivním a dříve aktivní oddíl se přepne do pasivního režimu a čeká na další aktualizaci. Pokud se po aktualizaci něco pokazí, systém se vrátí k předchozí verzi.
BitBake se používá k vytváření obrazů systému, zatímco kas ke generování konfigurací a zajištění reprodukovatelných sestavení. Sestavení, aktualizace, zprávy o zranitelnostech a metadata SBOM (softwarový seznam materiálů) jsou automaticky shromažďovány a publikovány pomocí systémů kontinuální integrace a kontinuálního nasazení (CI/CD). Infrastrukturu sestavení založenou na Moonforge lze nasadit na lokální i vzdálené servery. servery, a to jak ve veřejném, tak i v soukromém cloudovém prostředí.
Aby byla zajištěna transparentnost a předvídatelnost při vývoji odvozených produktů, distribuce udržuje striktní oddělení mezi upstreamovými a downstreamovými komponentami, což vývojářům umožňuje přidávat další funkce nad rámec základního balíčku dle potřeby. Konfigurace je definována deklarativně pomocí formátu YAML a zahrnuje oblasti, jako je připojení externích repozitářů, aktivace modulů Yocto, správa závislostí mezi komponentami distribuce, aplikace dalších oprav a změna výchozího nastavení systému.
Zdroj: opennet.ru
