Razvijači projekta postmarketOS, koji razvija Linux distribuirani sustav za mobilne uređaje, najavili su stvaranje atomarno ažurirane verzije distribucije. Nova verzija razvija se pod imenom Duranium i karakteristična je po isporuci sustava kao jedinstvene cjeline, bez podjele na posebne pakete. Naglašava se da nova verzija odgovara ideji da uređaj jednostavno treba raditi, bez potrebe da korisnik zna za postojanje terminala i razumije karakteristike sustava.
Sustavno okruženje u direktoriju /usr montira se u režimu samo za čitanje koristeći EROFS datotečni sustav i verificira se pri svakoj ponovnoj uspostavi putem digitalnog potpisa. Direktorij /usr ima veličinu od 5 GB. Za kontrolu cjelovitosti podataka u direktoriju /usr koristi se dm-verity, a prilikom otkrivanja modifikacije sadržaja — učitavanje se blokira. Provjeravajući hash se ugrađuje u jedinstveni UKI (Unified Kernel Image), koji kombinira upravitelja za učitavanje jezgre iz UEFI (UEFI boot stub), sliku jezgre Linuxa i učitano u memoriju sustavno okruženje initrd, koje se koristi za inicijalno postavljanje u fazi prije montiranja korijenske datotečne sustave. UKI slika se oblikuje kao jedan izvršni datoteka u PE formatu i poziva je UEFI učitavač.
Ostali direktoriji, osim /usr, ulaze u sastav korijenskog dijela, koji je dostupan za pisanje i čuva se između ponovnih pokretanja i ažuriranja. Sadržaj korijenskog dijela se obavezno šifrira korištenjem LUKS2, što povećava zahtjeve za opremom. Šifrirana korijenska datotečna sustava kreira se tijekom prvog pokretanja ili nakon izvršavanja vraćanja na tvorničke postavke. Po zadanim postavkama stvara se prazan ključ, što omogućava automatsko otključavanje šifriranog dijela. U čarobnjaku za početne postavke i u konfiguratoru korisniku se nudi mogućnost postavljanja lozinke za dešifriranje.
Zadane postavke pohranjuju se u sastavu sustavne slike u direktoriju /usr/share/factory/etc. Tijekom prvog pokretanja u direktoriju /etc stvaraju se simboličke veze na sve datoteke u /usr/share/factory/etc, osim datoteka passwd, group, shadow, fstab, machine-id i hostname. Ukoliko je potrebno promijeniti postavke tijekom rada, simbolička veza se zamjenjuje kopijom datoteke.
Ažuriranja se instaliraju zamjenom cijele sistemske slike. Na uređaju se stvaraju dva identična korijenska dijela — aktivni i pasivni. Novo ažuriranje se instalira u pasivni dio, bez utjecaja na rad aktivnog. Nakon provjere ispravnosti instaliranog ažuriranja i uspješnog ponovnog pokretanja, dijelovi se zamjenjuju — dio s ažuriranjem postaje aktivan, dok se prethodni aktivni dio prebacuje u pasivni način i čeka na instalaciju sljedećeg ažuriranja. Ako nakon ažuriranja dođe do problema s pokretanjem, automatski se vraća na prijašnju verziju sustava.
Ovakav pristup znatno pojednostavljuje otklanjanje pogrešaka i dijagnosticiranje problema, jer programeri mogu točno reproducirati stanje u kojem je došlo do kvara, bez potrebe za reprodukcijom sastava sustava korisnika na razini pojedinačnih paketa i uzimajući u obzir postojeće kombinacije verzija paketa. Nedostatak su veći zahtjevi za hardverom, što onemogućava korištenje Duranium-a na svim uređajima podržanim u postmarketOS-u.
Osnova sistemske slike Duranium formira se iz jedinstvene paketne baze postmarketOS-a, koja se temelji na Alpine Linuxu, standardnoj C biblioteci Musl i setu alata BusyBox. Izdavanja postmarketOS-a i Duranium-a gotovo su identična po sastavu, ali se razlikuju u različitim metodama isporuke sustava. Za formiranje, instalaciju i ažuriranje sistemskih slika koriste se komponente systemd-sysupdate, systemd-repart i systemd-verity-setup.
Dodatne aplikacije instaliraju se u Flatpak formatu ili korištenjem upravitelja paketa Coldbrew. Coldbrew omogućava instalaciju paketa iz repozitorija Alpine Linux u korisnički home direktorij. Pri pokretanju, takvi paketi se izoliraju pomoću alata bubblewrap.
Izvor: opennet.ru
