De ontwikkelaars van het postmarketOS-project, dat een Linux-distributie voor mobiele apparaten ontwikkelt, hebben de creatie van een atomair updatebare versie van de distributie aangekondigd. De nieuwe editie ontwikkelt zich onder de naam Duranium en valt op door de levering van het systeem als een geheel, zonder opsplitsing in aparte pakketten. Er wordt opgemerkt dat de nieuwe variant aansluit bij het idee dat een apparaat eenvoudig moet werken, zonder dat de gebruiker kennis hoeft te hebben van het bestaan van een terminal of de nuances van het systeem moet begrijpen.
De systeembedekking in de sectie /usr wordt gemonteerd in een alleen-lezen modus met gebruik van het EROFS-bestandssysteem en wordt bij elke opstart geverifieerd op digitale handtekening. De sectie /usr heeft een grootte van 5GB. Voor de gegevensintegriteit in de sectie /usr wordt dm-verity toegepast en bij ontdekking van wijzigingen in de inhoud wordt de opstart geblokkeerd. De controle-hash is ingebed in het uniforme UKI (Unified Kernel Image), dat de handler voor het opstarten van de kernel uit UEFI (UEFI boot stub), het Linux-kernbeeld en de in het geheugen geladen systeembedekking initrd omvat, die wordt toegepast voor de initiƫle initialisatie in de fase voordat het hoofd-FS wordt gemonteerd. Het UKI-image wordt gepresenteerd als ƩƩn uitvoerbaar bestand in PE-formaat en wordt aangeroepen door de UEFI-opstarter.
De overige mappen, behalve /usr, maken deel uit van de hoofdsectie, die schrijfbaar is en behouden blijft tussen herstarts en updates. De inhoud van de hoofdsectie wordt verplicht versleuteld met LUKS2, wat hogere hardware-eisen met zich meebrengt. Het versleutelde hoofd-FS wordt aangemaakt tijdens de eerste opstart of na het uitvoeren van een fabrieksreset. Standaard wordt een lege sleutel aangemaakt die automatische ontgrendeling van de versleutelde sectie toestaat. In de wizard voor eerste configuratie en in de configurator wordt de gebruiker gevraagd een wachtwoord voor de decryptie in te stellen.
De standaardinstellingen worden bewaard in het systeembestand in de map /usr/share/factory/etc. Tijdens de eerste opstart worden in de map /etc symbolische links naar alle bestanden in /usr/share/factory/etc aangemaakt, met uitzondering van de bestanden passwd, group, shadow, fstab, machine-id en hostname. Indien nodig worden symbolische links in het werkproces vervangen door een kopie van het bestand.
Updates are installed by replacing the entire system image. Two identical root partitions are created on the drive ā active and passive. The new update is installed in the passive partition, without affecting the operation of the active one. After verifying the correctness of the installed update and a successful reboot, the partitions are swapped ā the partition with the update becomes active, while the previous active partition is switched to passive mode and awaits the next update installation. If issues arise during boot after the update, an automatic rollback to the previous system version is performed.
This approach significantly simplifies debugging and diagnosing problems, as developers can precisely reproduce the state in which the failure occurred, without needing to reproduce the userās system composition at the level of individual packages and considering the existing combinations of package versions. The downside is higher hardware requirements, which will prevent Duranium from being used on all devices supported by postmarketOS.
The system image of Duranium is formed from a unified package base with postmarketOS, based on Alpine Linux, the standard C library Musl, and a set of BusyBox utilities. The releases of postmarketOS and Duranium are nearly identical in composition, but differ in their methods of system delivery. Components of systemd-sysupdate, systemd-repart, and systemd-verity-setup are used for forming, installing, and updating system images.
Additional applications are installed in Flatpak format or using the Coldbrew package manager. Coldbrew allows the installation of packages from the Alpine Linux repositories into the user's home directory. When launched, such packages are isolated using the bubblewrap toolkit.
Bron: opennet.ru
