Redox OS projekat je predstavio pkgar paket menadžer, napisan na Rustu

Programeri operativnih sistema redoks, napisano koristeći Rust jezik i koncept mikrokernela, predstavljen novi menadžer paketa pkgar. Projekat razvija novi format paketa, biblioteku za upravljanje paketima i komplet alata komandne linije za kreiranje i preuzimanje kriptografski verifikovane kolekcije datoteka. Pkgar kod je napisan u Rust i distribuira pod MIT licencom.

Pkgar format ne pretenduje da bude univerzalan i optimizovan je uzimajući u obzir specifičnosti Redox OS operativnog sistema. Upravitelj paketa podržava verifikaciju izvora korištenjem digitalnog potpisa i kontrole integriteta. Kontrolne sume se izračunavaju pomoću hash funkcije blake3. Funkcionalnosti pkgar-a vezanoj za verifikaciju može se pristupiti bez stvarnog pohranjivanja arhive paketa, manipuliranjem samo dijelom zaglavlja. Konkretno, paket se sastoji od datoteke zaglavlja (.pkgar_head) i datoteke podataka (.pkgar_data). Ispravno potpisan kompletni paket sažetka (.pkgar) može se dobiti jednostavnim dodavanjem datoteke zaglavlja u datoteku podataka (“cat example.pkgar_head example.pkgar_data > example.pkgar”).

Datoteka zaglavlja sadrži zasebne kontrolne sume za zaglavlje i strukture sa parametrima iz datoteke podataka, kao i digitalni potpis za provjeru paketa. Datoteka podataka uključuje sekvencijalni popis svih datoteka i direktorija isporučenih u paketu. Svakom elementu podataka prethodi struktura s metapodacima koji uključuju kontrolni zbroj za same podatke, veličinu, prava pristupa, relativnu putanju datoteke koja se instalira i pomak parametara sljedećeg elementa podataka. Ako se tokom procesa ažuriranja pojedinačne datoteke nisu promijenile, a kontrolni zbroj se podudara, tada se preskaču i ne učitavaju.

Integritet izvora možete provjeriti tako što ćete primiti samo datoteku zaglavlja, a ispravnost odabrane datoteke podataka tako što ćete učitati samo strukture sa parametrima ove datoteke i osigurati da su u skladu sa kontrolnom sumom potvrđenom u datoteci zaglavlja. Sami podaci se mogu provjeriti nakon što su učitani, koristeći kontrolnu sumu iz strukture s parametrima koji prethode podacima.

Paketi su inherentno ponovljivi, što znači da će kreiranje paketa za određeni direktorij uvijek rezultirati identičnim paketom. Nakon instalacije, u sistemu se pohranjuju samo metapodaci, što je dovoljno da se iz instaliranih podataka rekonstruiše paket (sastav paketa, kontrolni sumi, putanje i prava pristupa sadržani su u metapodacima).

Glavni ciljevi pkgara:

  • Atomicity—ažuriranja se primjenjuju automatski kad god je to moguće.
  • Ušteda saobraćaja - podaci se prenose preko mreže samo kada se hash promijeni (tokom ažuriranja preuzimaju se samo promijenjeni fajlovi).
  • Koriste se brzi kriptografski algoritmi visokih performansi (blake3 podržava paralelnu obradu podataka prilikom izračunavanja hešova). Ako podaci iz spremišta nisu prethodno keširani, heš za preuzete podatke može se izračunati u vrijeme preuzimanja.
  • Minimalistički - Za razliku od drugih formata, pkgar uključuje samo metapodatke potrebne za izdvajanje paketa.
  • Nezavisnost instalacijskog direktorija - paket može biti instaliran u bilo koji direktorij, od strane bilo kojeg korisnika (korisnik mora imati dozvolu za pisanje u odabrani direktorij).
  • Sigurnost - Paketi se uvijek kriptografski verificiraju, a provjera se vrši 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 nakon toga premešta u ciljni direktorij verifikacija).

izvor: opennet.ru

Dodajte komentar