Projekt Redox OS predstavio je upravitelj paketa pkgar, napisan u Rustu

Programeri operativnih sustava Redox, napisano koristeći Rust jezik i koncept mikrojezgre, predstavljeni novi upravitelj paketa pkgar. Projekt razvija novi format paketa, biblioteku za upravljanje paketima i alat za naredbenu liniju za stvaranje i dohvaćanje kriptografski provjerene zbirke datoteka. Pkgar kod je napisan u Rustu i distribuira pod licencom MIT-a.

Format pkgar ne pretendira biti univerzalan i optimiziran je uzimajući u obzir specifičnosti operativnog sustava Redox OS. Upravitelj paketa podržava provjeru izvora korištenjem digitalnog potpisa i kontrole integriteta. Kontrolni zbrojevi izračunavaju se pomoću hash funkcije blake3. Funkcionalnosti vezanoj uz provjeru pkgar-a može se pristupiti bez stvarnog pohranjivanja arhive paketa, manipuliranjem samo dijelom zaglavlja. Konkretno, paket se sastoji od datoteke zaglavlja (.pkgar_head) i podatkovne datoteke (.pkgar_data). Ispravno potpisan potpuni paket sažetka (.pkgar) može se dobiti jednostavnim dodavanjem datoteke zaglavlja podatkovnoj datoteci ("cat example.pkgar_head example.pkgar_data > example.pkgar").

Datoteka zaglavlja sadrži zasebne kontrolne zbrojeve za zaglavlje i strukture s parametrima iz podatkovne datoteke, kao i digitalni potpis za provjeru paketa. Podatkovna datoteka uključuje sekvencijalni popis svih datoteka i direktorija koji se nalaze u paketu. Svakom podatkovnom elementu prethodi struktura s metapodacima koji uključuju kontrolni zbroj za same podatke, veličinu, prava pristupa, relativni put datoteke koja se instalira i pomak parametara sljedećeg podatkovnog elementa. Ako se tijekom procesa ažuriranja pojedinačne datoteke nisu promijenile i kontrolni zbroj odgovara, tada se one preskaču i ne učitavaju.

Možete provjeriti integritet izvora primanjem samo datoteke zaglavlja, a ispravnost odabrane podatkovne datoteke učitavanjem samo struktura s parametrima ove datoteke i osiguravanjem da su u skladu s kontrolnim zbrojem ovjerenim u datoteci zaglavlja. Sami podaci mogu se provjeriti nakon učitavanja pomoću kontrolnog zbroja iz strukture s parametrima koji prethode podacima.

Paketi su inherentno ponovljivi, što znači da će stvaranje paketa za određeni direktorij uvijek rezultirati identičnim paketom. Nakon instalacije u sustav se spremaju samo metapodaci koji su dovoljni za rekonstrukciju paketa iz instaliranih podataka (sastav paketa, kontrolni zbrojevi, staze i prava pristupa sadržani su u metapodacima).

Glavni ciljevi pkgar-a:

  • Atomičnost—ažuriranja se primjenjuju automatski kad god je to moguće.
  • Ušteda prometa - podaci se prenose preko mreže samo kada se promijeni hash (tijekom ažuriranja preuzimaju se samo promijenjene datoteke).
  • Koriste se brzi kriptografski algoritmi visokih performansi (blake3 podržava paralelnu obradu podataka pri izračunavanju hashova). Ako podaci iz repozitorija nisu prethodno bili predmemorirani, hash za preuzete podatke može se izračunati u trenutku preuzimanja.
  • Minimalistički - Za razliku od drugih formata, pkgar uključuje samo metapodatke potrebne za izdvajanje paketa.
  • Neovisnost o instalacijskom direktoriju - paket se može instalirati u bilo koji direktorij, bilo koji korisnik (korisnik mora imati dopuštenje za pisanje u odabrani direktorij).
  • Sigurnost - Paketi su uvijek kriptografski provjereni, a provjera se provodi prije izvođenja stvarnih operacija na paketu (prvo se učitava zaglavlje i ako je digitalni potpis ispravan, podaci se učitavaju u privremeni direktorij, koji se premješta u ciljni direktorij nakon verifikacija).

Izvor: opennet.ru

Dodajte komentar