Vývojáři projektu postmarketOS, kteří vyvíjejí distribuci Linux pro mobilní zařízení, oznámili vytvoření atomicky aktualizované verze distribuce. Nová edice se vyvíjí pod názvem Duranium a je zajímavá tím, že systém je dodáván jako jednotný celek, bez rozdělení na jednotlivé balíčky. Je zdůrazněno, že nová varianta odpovídá myšlence, že zařízení by mělo jednoduše fungovat, aniž by uživatel musel vědět o existenci terminálu a rozumět specifikům systému.
Systémové prostředí v rámci "/usr" je montováno v režimu pouze pro čtení pomocí FS EROFS a je ověřováno při každém spuštění podle digitálního podpisu. Oddíl "/usr" má velikost 5GB. Pro kontrolu integrity dat na oddílu "/usr" se používá dm-verity, a pokud je zjištěna modifikace obsahu, spuštění je zablokováno. Kontrolní hash je vložen do unifikovaného obrazu UKI (Unified Kernel Image), který kombinuje zpracovatele pro načítání jádra z UEFI (UEFI boot stub), obraz jádra Linuxu a načítané do paměti systémové prostředí initrd, které se používá pro počáteční inicializaci ve fázi před montováním kořenového FS. UKI obraz je formátován jako jeden spustitelný soubor ve formátu PE a je volán UEFI bootloaderem.
Ostatní adresáře, kromě "/usr", jsou součástí kořenového oddílu, který je přístupný pro zápis a uchovává se mezi restartováními a aktualizacemi. Obsah kořenového oddílu musí být šifrován pomocí LUKS2, což zvyšuje nároky na hardware. Šifrovaný kořenový FS se vytváří během prvního spuštění nebo po provedení resetování do továrního nastavení. Ve výchozím nastavení se vytváří prázdný klíč, který umožňuje automatické odemčení šifrovaného oddílu. V průvodci počátečním nastavením a v konfigurátoru je uživateli nabídnuta možnost nastavit heslo pro dešifrování.
Nastavení ve výchozím stavu jsou uložena v systémovém obrazu v adresáři "/usr/share/factory/etc". Při prvním spuštění se v adresáři "/etc" vytvářejí symbolické odkazy na všechny soubory v "/usr/share/factory/etc", s výjimkou souborů passwd, group, shadow, fstab, machine-id a hostname. Pokud je během provozu potřeba změnit nastavení, symbolický odkaz je nahrazen kopií souboru.
Aktualizace se instalují výměnou celého systémového obrazu. Na úložném zařízení se vytvářejí dvě identické kořenové oddíly – aktivní a pasivní. Nová aktualizace se instaluje do pasivního oddílu, aniž by to ovlivnilo fungování aktivního oddílu. Po ověření správnosti nainstalované aktualizace a úspěšném restartu se oddíly vymění – oddíl s aktualizací se stane aktivním a předchozí aktivní oddíl přejde do pasivního režimu a čeká na instalaci další aktualizace. Pokud po aktualizaci nastaly problémy se spouštěním, provede se automatický návrat k předchozí verzi systému.
Takový přístup značně usnadňuje ladění a diagnostiku problémů, protože vývojáři mohou přesně reprodukovat stav, ve kterém došlo k selhání, aniž by museli reprodukovat složení systému uživatele na úrovni jednotlivých balíčků a brát v úvahu existující kombinace verzí balíčků. Nevýhodou jsou vyšší požadavky na hardware, což neumožní používat Duranium na všech zařízeních podporovaných v postmarketOS.
Obsah systémového obrazu Duranium je tvořen z jednotné balíčkové základny postmarketOS, založené na Alpine Linux, standardní C knihovně Musl a sadě utilit BusyBox. Verze postmarketOS a Duranium jsou téměř identické co do obsahu, liší se však různými metodami dodání systému. Pro vytváření, instalaci a aktualizaci systémových obrazů jsou zapojeny komponenty systemd-sysupdate, systemd-repart a systemd-verity-setup.
Další aplikace se instalují ve formátu Flatpak nebo pomocí balíčkového manažera Coldbrew. Coldbrew umožňuje instalaci balíčků z repozitářů Alpine Linux do domovského adresáře uživatele. Při spuštění jsou takové balíčky izolovány pomocí nástroje bubblewrap.
Zdroj: opennet.ru
