Redox OS projektas pristatė pkgar paketo tvarkyklę, parašytą Rust

Operacinių sistemų kūrėjai Redoksas, parašyta naudojant Rust kalbą ir mikrobranduolių koncepciją, pateiktas naujas paketų tvarkyklė pkgar. Projekte kuriamas naujas paketo formatas, paketų valdymo biblioteka ir komandų eilutės įrankių rinkinys, skirtas kurti ir gauti kriptografiškai patikrintą failų rinkinį. Pkgar kodas parašytas Rust ir išplatino pagal MIT licenciją.

Pkgar formatas nepretenduoja į universalumą ir yra optimizuotas atsižvelgiant į Redox OS operacinės sistemos specifiką. Paketų tvarkyklė palaiko šaltinio patikrinimą naudojant skaitmeninį parašą ir vientisumo valdymą. Kontrolinės sumos apskaičiuojamos naudojant maišos funkciją blake3. Su tikrinimu susijusias pkgar funkcijas galima pasiekti iš tikrųjų neišsaugant paketo archyvo, manipuliuojant tik antraštės dalimi. Visų pirma, paketą sudaro antraštės failas (.pkgar_head) ir duomenų failas (.pkgar_data). Teisingai pasirašytą pilną suvestinės paketą (.pkgar) galima gauti tiesiog pridedant antraštės failą prie duomenų failo („cat example.pkgar_head example.pkgar_data > example.pkgar“).

Antraštės faile yra atskiros antraštės ir struktūrų kontrolinės sumos su parametrais iš duomenų failo, taip pat skaitmeninis parašas paketui patikrinti. Duomenų faile yra nuoseklus visų pakete pateiktų failų ir katalogų sąrašas. Prieš kiekvieną duomenų elementą pateikiama struktūra su metaduomenimis, į kurią įeina pačių duomenų kontrolinė suma, dydis, prieigos teisės, santykinis diegimo failo kelias ir kito duomenų elemento parametrų poslinkis. Jei atnaujinimo proceso metu atskiri failai nepasikeitė ir kontrolinė suma sutampa, jie praleidžiami ir neįkeliami.

Šaltinio vientisumą galite patikrinti gaudami tik antraštės failą, o pasirinkto duomenų failo teisingumą įkeldami tik struktūras su šio failo parametrais ir įsitikinę, kad jos atitinka antraštės faile sertifikuotą kontrolinę sumą. Patys duomenys gali būti patikrinti po to, kai jie buvo įkelti, naudojant kontrolinę sumą iš struktūros su parametrais prieš duomenis.

Paketai iš esmės kartojami, o tai reiškia, kad sukūrus paketą konkrečiam katalogui, visada bus identiškas paketas. Po įdiegimo sistemoje išsaugomi tik metaduomenys, kurių pakanka atkurti paketą iš įdiegtų duomenų (paketo sudėtis, kontrolinės sumos, keliai ir prieigos teisės yra metaduomenyse).

Pagrindiniai pkgar tikslai:

  • Atomiškumas – atnaujinimai taikomi automatiškai, kai tik įmanoma.
  • Srauto taupymas – duomenys per tinklą perduodami tik pasikeitus maišai (atnaujinant atsisiunčiami tik pakeisti failai).
  • Naudojami didelio našumo, greiti kriptografiniai algoritmai (blake3 palaiko lygiagretų duomenų apdorojimą skaičiuojant maišas). Jei duomenys iš saugyklos anksčiau nebuvo saugomi talpykloje, atsisiuntimo metu galima apskaičiuoti atsisiųstų duomenų maišą.
  • Minimalistinis – skirtingai nuo kitų formatų, pkgar apima tik metaduomenis, reikalingus paketui išgauti.
  • Diegimo katalogo nepriklausomumas – paketą gali įdiegti bet kuriame kataloge, bet kuris vartotojas (vartotojas turi turėti rašymo teisę į pasirinktą katalogą).
  • Saugumas – paketai visada tikrinami kriptografiškai, o patikrinimas atliekamas prieš atliekant faktines operacijas su paketu (pirmiausia įkeliama antraštė ir jei skaitmeninis parašas teisingas, duomenys įkeliami į laikiną katalogą, kuris po to perkeliamas į tikslinį katalogą patikrinimas).

Šaltinis: opennet.ru

Добавить комментарий