PostmarketOS arendajad, kes töötavad välja Linuxi distributsiooni mobiilseadmete jaoks, kuulutasid välja atomaarse uuendamise variandi loomise. Uus väljaanne areneb nime all Duranium ja on märkimisväärne oma süsteemi pakkumise tõttu kui ühtne tervik, ilma eraldi paketide eraldamiseta. Toodud variant vastab ideele, et seade peab lihtsalt töötama, ilma et kasutaja peaks teadma terminali olemasolust või süsteemi spetsiifilisusest.
Süsteemikeskkond kaustas /usr monteeritakse ainult lugemise režiimis EROFS-failisüsteemi abil ja valideeritakse iga kord käivitamisel digitaalallkirja kaudu. Kausta /usr suurus on 5GB. Andmete terviklikkuse kontrollimiseks kaustas /usr rakendatakse dm-verity, ja kui tuvastatakse sisu muutmine, blokeeritakse käivitamine. Kontrollimisriba sisestatakse ühtsesse UKI (Unified Kernel Image) kujundusse, mis ühendab laadimise töötlejat UEFI-st (UEFI boot stub), Linuxi tuuma pildi ja laaditava muutuva süsteemikeskkonna initrd, mida kasutatakse alginisialiseerimiseks enne juurefailisüsteemi monteerimist. UKI-pilt kujundatakse ühe täidetava faili vormingus PE ja käivitab UEFI laadija.
Ülejäänud kataloogid, välja arvatud /usr, kuuluvad juurepartitsiooni koosseisu, mis on kirjutatav ja salvestatakse taaskäivituste ja uuenduste vahel. Juurepartitsiooni sisu on kohustuslikult krüpteeritud LUKS2 abil, mis tõstab seadme riistvaranõudeid. Krüpteeritud juurefailisüsteem luuakse esimesel käivitamisel või pärast tehase seadete lähtestamist. Vaikimisi luuakse tühi võti, mis lubab automaatset krüpteeritud partitsiooni avamist. Esialgse seadistamise meistris ja konfigureerimisseades pakutakse kasutajale võimalust seada parool dekrüpteerimiseks.
Vaikeseaded salvestatakse süsteemipildis kaustas /usr/share/factory/etc. Esimese käivitamise ajal luuakse kaustas /etc sümboolsed lingid kõigile failidele kaustas /usr/share/factory/etc, välja arvatud failidele passwd, group, shadow, fstab, machine-id ja hostname. Kui seadeid on vaja töö käigus muuta, asendatakse sümboolne link faili koopiaga.
Uuendused installitakse, asendades kogu süsteemipildi. Andmekandjal luuakse kaks identses juurkatalooge - aktiivne ja passiivne. Uus uuendus installitakse passiivsesse katalooge, mõjutamata aktiivset. Pärast installitud uuenduse õigsuse kinnitamist ja eduka taaskäivitamise korral vahetatakse kataloogide kohad — uuendatud kataloogist saab aktiivne, samas kui eelmine aktiivne kataloog läheb passiivsesse režiimi ja ootab järgmise uuenduse installimist. Kui uuendamise järel ilmnevad käivitamisprobleemid, toimub automaatne taastamine eelnevale süsteemiversioonile.
Sarnane lähenemine lihtsustab oluliselt tõrkeotsingut ja probleemide diagnoosimist, kuna arendajad saavad täpselt uuendada seisundit, mille korral tõrge ilmnes, ilma et oleks vaja taastada kasutaja süsteemi koostist eraldi pakettide tasemel ja arvesse võtta olemasolevaid paketiversioonide kombinatsioone. Puuduseks on kõrgemad riistvaranõuded, mis ei võimalda Duraniumi kasutada kõigil seadmetel, mida postmarketOS toetab.
Duraniumi süsteemipildi sisu moodustab ainulaadne postmarketOS pakettide baasi, mis põhineb Alpine Linuxil, standardse C-korraldusega Musl'i ja BusyBox'i utiliitide kogumil. postmarketOS ja Duraniumi väljaanded on koostiselt peaaegu identsed, kuid erinevad süsteemi tarnimise meetodite poolest. Süsteemipiltide koostamiseks, installimiseks ja uuendamiseks on kaasatud komponendid systemd-sysupdate, systemd-repart ja systemd-verity-setup.
Täpse rakendusi installitakse Flatpak formaadis või kasutades paketihaldurit Coldbrew. Coldbrew võimaldab installida pakette Alpine Linuxi hoidlatest kasutaja kodukatalooge. Käivitamisel isoleeritakse sellised paketid bubblewrap'i tööriista abil.
Allikas: opennet.ru
