PostmarketOS projekti arendajad, kes töötavad Linuxi jaotuse kallal mobiilseadmete jaoks, on kuulutanud välja atomaarse uuendamise variandi jaotusele. Uus versioon arendab nime all Duranium ja on tähelepanuväärne selle poolest, et süsteem pakutakse kui ühtne tervik, ilma eraldi pakettide jagamiseta. Rõhutatakse, et uus variant vastab ideele, et seade peaks lihtsalt töötama, ilma et kasutaja peaks teadma terminali olemasolust või süvenema süsteemi nüanssidesse.
Süsteemikeskkond kaustas /usr monteeritakse ainult lugemisrežiimis EROFS-failisüsteemi abil ning kinnitatakse iga käivitamise ajal digitaalse allkirjaga. Kausta /usr suurus on 5GB. Andmete terviklikkuse kontrollimiseks kaustas /usr kasutatakse dm-verity't, ning sisu muutumise tuvastamisel keelatakse käivitamine. Kontrollimis-hash integreeritakse Ühtsesse Kernel'i Pildisse (UKI - Unified Kernel Image), mis ühendab UEFI laadimise kõrva töötleja (UEFI boot stub), Linuxi kernel'i pildi ja süsteemikeskkonna initrd, mida kasutatakse algse initsialiseerimise jaoks enne juurte failisüsteemi monteerimist. UKI-pilt vormindatakse üheks täidetavaks failiks PE-formaadis ja kutsub esile UEFI laadijat.
Teised kataloogid, välja arvatud /usr, kuuluvad juurkatalooge, mis on kirjutatav ja säilitatakse taaskäivituste ja värskenduste vahel. Juurkatalooge sisu peab olema krüpteeritud LUKS2 abil, mis tõstab riistvaranõudeid. Krüpteeritud juurkatalooge faile luuakse esimesel käivitamisel või pärast tehase lähtestamist. Vaikimisi luuakse tühi võti, mis lubab krüpteeritud partitsiooni automaatset avamist. Algkonfiguratsiooni juhtimisprogrammis ja konfiguratsioonis pakutakse kasutajale parooli seadmist krüpteerimise dekrüpteerimiseks.
Vaikeseaded salvestatakse süsteemi pildis kataloogis /usr/share/factory/etc. Esimese käivitamise ajal luuakse kataloogis /etc sümboolsed lingid kõigile failidele kataloogis /usr/share/factory/etc, välja arvatud failid passwd, group, shadow, fstab, machine-id ja hostname. Kui seadete muutmiseks on vajadus tööprotsessi käigus, asendatakse sümboolne link faili koopiaga.
Uuendused installitakse kogu süsteemipildi asendamise teel. Andmekandjal luuakse kaks identset juurtega jagu — aktiivne ja passiivne. Uus uuendus installitakse passiivsesse jagu, mõjutamata aktiivse töö. Pärast installitud uuenduse õiguse kontrollimist ja edukat taaskäivitamist vahetatakse jagude kohad — uuendusega jaotust saab aktiivseks, samas kui varasem aktiivne jagu muudetakse passiivseks ning ootab järgmist uuendust. Kui pärast uuendust tekib käivitamise probleeme, toimub automaatne tagasivõtmine varasema süsteemiversiooni juurde.
Selline lähenemine lihtsustab oluliselt tõrgete tõrkeotsingut ja diagnostikat, kuna arendajad saavad täpselt taastada oleku, milles tõrge ilmnes, ilma et peaksid taastama kasutaja süsteemi koosseisu eraldi pakettide tasandil ja arvesse võtma erinevaid pakettide versioonide kombinatsioone. Puuduseks on kõrgemad riistvaranõuded, mistõttu ei saa Duraniumit kasutada kõigil seadmetel, mida toetab postmarketOS.
Duraniumi süsteemipildi sisu koosneb postmarketOS-i pakettide baasist, mis põhineb Alpine Linuxil, standardse C-raamatukogu Musl-l ja BusyBoxi utiliitide kogumist. postmarketOS-i ja Duraniumi versioonid on koostiselt peaaegu identsed, kuid need erinevad süsteemi tarnimise meetodites. Süsteemipiltide loomise, installimise ja uuendamise protsessides kasutatakse komponente systemd-sysupdate, systemd-repart ja systemd-verity-setup.
Täiendavad rakendused installitakse Flatpak formaadis või Coldbrew pakettide halduri abil. Coldbrew võimaldab installida pakette Alpine Linuxi hoidlatest kasutaja kodukatalooge. Sellised paketid isoleeritakse käivitamisel bubblewrap tööriista abil.
Allikas: opennet.ru
