Vývojári projektu postmarketOS, ktorý vyvíja distribúciu Linux pre mobilné zariadenia, oznámili vytvorenie atomicky aktualizovanej verzie distribúcie. Nová edícia sa vyvíja pod názvom Duranium a je pozoruhodná tým, že systém je dodávaný ako celok, bez rozdeľovania na samostatné balíčky. Uvádza sa, že nová verzia zodpovedá myšlienke, že zariadenie by malo jednoducho fungovať, bez toho, aby sa používateľ musel zapodievať existenciou terminálu a rozumieť špecifikám systému.
Systémové prostredie v priečinku /usr je namontované v režime iba na čítanie s použitím súborového systému EROFS a verifikuje sa pri každom načítaní na základe digitálneho podpisu. Priečinok /usr má veľkosť 5 GB. Na kontrolu integrity údajov v priečinku /usr sa používa dm-verity a pri zistení modifikácie obsahu je načítanie zablokované. Overovací hash je zakomponovaný do unifikovaného obrazu UKI (Unified Kernel Image), ktorý spája obslužný program na načítanie jadra z UEFI (UEFI boot stub), obraz jadra Linux a načítavané do pamäte systémové prostredie initrd, ktoré sa používa na počiatočnú inicializáciu pred montovaním koreňového súborového systému. UKI-obraz je formátovaný ako jeden spustiteľný súbor vo formáte PE a vyvoláva ho UEFI bootloader.
Ostatné priečinky, okrem /usr, sú súčasťou koreňového rozdelenia, ktoré je prístupné na zápis a uchováva sa medzi reštartmi a aktualizáciami. Obsah koreňového rozdelenia je povinne šifrovaný pomocou LUKS2, čo zvyšuje požiadavky na hardvér. Šifrovaný koreňový súborový systém sa vytvára počas prvého načítania alebo po vykonaní resetu na továrenské nastavenia. Predvolene sa vytvára prázdny kľúč, ktorý umožňuje automatické odomknutie šifrovaného rozdelenia. V sprievodcovi počiatočným nastavením a v konfigurátore je používateľovi ponúknuté, aby si nastavil heslo na dešifrovanie.
Predvoľby sú uložené v rámci systémového obrazu v priečinku /usr/share/factory/etc. Pri prvom načítaní sú v priečinku /etc vytvorené symbolické odkazy na všetky súbory v /usr/share/factory/etc, s výnimkou súborov passwd, group, shadow, fstab, machine-id a hostname. Ak je potrebné zmeniť nastavenia počas prevádzky, symbolický odkaz sa nahrádza kópiou súboru.
Aktualizácie sa inštalujú prostredníctvom výmeny celého systémového obrazu. Na úložisku sa vytvoria dve identické koreňové partície — aktívna a pasívna. Nová aktualizácia sa inštaluje do pasívnej partície, čím sa nijako neovplyvňuje prevádzka aktívnej. Po overení správnosti nainštalovanej aktualizácie a úspešnom reštarte sa partície vymenia — partícia s aktualizáciou sa stáva aktívnou, zatiaľ čo predchádzajúca aktívna partícia prechádza do pasívneho režimu a čaká na inštaláciu ďalšej aktualizácie. Ak po aktualizácii vzniknú problémy so zavedením, automaticky sa vykoná návrat k predchádzajúcej verzii systému.
Takýto prístup významne uľahčuje ladenie a diagnostiku problémov, pretože vývojári môžu presne reprodukovať stav, v ktorom došlo k zlyhaniu, bez potreby reprodukovať zloženie systému používateľa na úrovni jednotlivých balíkov a zohľadňovať existujúce kombinácie verzií balíkov. Nevýhodou sú vyššie požiadavky na hardvér, čo neumožní používanie Duranium na všetkých zariadeniach podporovaných v postmarketOS.
Obsah systémového obrazu Duranium je vytvorený z jednotnej balíkovej databázy postmarketOS, založenej na Alpine Linux, štandardnej C knižnici Musl a súbore utilít BusyBox. Vydania postmarketOS a Duranium sú takmer identické zložením, ale líšia sa rôznymi metódami dodania systému. Na vytváranie, inštaláciu a aktualizáciu systémových obrazov sú zapojené komponenty systemd-sysupdate, systemd-repart a systemd-verity-setup.
Dodatočné aplikácie sa inštalujú vo formáte Flatpak alebo s použitím balíkového manažéra Coldbrew. Coldbrew umožňuje inštaláciu balíkov z repozitárov Alpine Linux do domovského adresára používateľa. Pri spustení sú takéto balíky izolované pomocou nástroja bubblewrap.
Zdroj: opennet.ru
