Projekt Redox OS je predstavil upravitelja paketov pkgar, napisan v Rustu

Razvijalci operacijskih sistemov Redox, napisano z uporabo jezika Rust in koncepta mikrojedra, predstavljeno nov upravitelj paketov pkgar. Projekt razvija nov format paketa, knjižnico za upravljanje paketov in komplet orodij ukazne vrstice za ustvarjanje in pridobivanje kriptografsko preverjene zbirke datotek. Koda pkgar je napisana v Rust in distributer pod licenco MIT.

Format pkgar se ne pretvarja, da je univerzalen in je optimiziran ob upoštevanju posebnosti operacijskega sistema Redox OS. Upravitelj paketov podpira preverjanje vira z digitalnim podpisom in nadzorom celovitosti. Kontrolne vsote se izračunajo s funkcijo zgoščevanja blake3. Do funkcionalnosti pkgar, povezane s preverjanjem, lahko dostopate brez dejanskega shranjevanja arhiva paketa, tako da manipulirate le z delom glave. Paket je zlasti sestavljen iz datoteke glave (.pkgar_head) in podatkovne datoteke (.pkgar_data). Pravilno podpisan paket s celotnim povzetkom (.pkgar) lahko dobite tako, da preprosto dodate datoteko glave v podatkovno datoteko (»cat example.pkgar_head example.pkgar_data > example.pkgar«).

Datoteka z glavo vsebuje ločene kontrolne vsote za glavo in strukture s parametri iz podatkovne datoteke ter digitalni podpis za preverjanje paketa. Podatkovna datoteka vključuje zaporedni seznam vseh datotek in imenikov, dobavljenih v paketu. Pred vsakim podatkovnim elementom je struktura z metapodatki, ki vključuje kontrolno vsoto za same podatke, velikost, pravice dostopa, relativno pot datoteke, ki se namešča, in odmik parametrov naslednjega podatkovnega elementa. Če se posamezne datoteke med posodabljanjem niso spremenile in se kontrolna vsota ujema, se preskočijo in ne naložijo.

Celovitost vira lahko preverite tako, da prejmete samo datoteko glave, pravilnost izbrane podatkovne datoteke pa tako, da naložite samo strukture s parametri te datoteke in se prepričate, da so skladne s kontrolno vsoto, potrjeno v datoteki glave. Same podatke je mogoče preveriti po nalaganju z uporabo kontrolne vsote iz strukture s parametri pred podatki.

Paketi so sami po sebi ponovljivi, kar pomeni, da bo ustvarjanje paketa za določen imenik vedno povzročilo enak paket. Po namestitvi se v sistem shranijo samo metapodatki, ki zadoščajo za rekonstrukcijo paketa iz nameščenih podatkov (sestava paketa, kontrolne vsote, poti in pravice dostopa so vsebovane v metapodatkih).

Glavni cilji pkgar:

  • Atomicity—posodobitve se samodejno uporabijo, kadar koli je to mogoče.
  • Prihranek prometa - podatki se prenašajo po omrežju le, ko se spremeni hash (pri posodabljanju se prenašajo samo spremenjene datoteke).
  • Uporabljajo se visoko zmogljivi, hitri kriptografski algoritmi (blake3 podpira vzporedno obdelavo podatkov pri izračunu zgoščenj). Če podatki iz repozitorija še niso bili predpomnjeni, se lahko zgoščena vrednost za prenesene podatke izračuna ob času prenosa.
  • Minimalističen – za razliko od drugih formatov pkgar vključuje samo metapodatke, potrebne za ekstrahiranje paketa.
  • Neodvisnost od namestitvenega imenika - paket lahko namesti v katerikoli imenik, kateri koli uporabnik (uporabnik mora imeti dovoljenje za pisanje v izbrani imenik).
  • Varnost – Paketi so vedno kriptografsko preverjeni, preverjanje pa se izvede, preden se izvedejo dejanske operacije na paketu (najprej se naloži glava in če je digitalni podpis pravilen, se podatki naložijo v začasni imenik, ki se po prestavitvi v ciljni imenik preverjanje).

Vir: opennet.ru

Dodaj komentar