Redox OS-i projekt tutvustas pkgar paketihaldurit, mis on kirjutatud Rust keeles

Operatsioonisüsteemide arendajad Redox, kirjutatud kasutades Rusti keelt ja mikrokerneli kontseptsiooni, esitatakse uus paketihaldur pkgar. Projekt arendab uut paketivormingut, paketihalduse teeki ja käsurea tööriistakomplekti krüptograafiliselt kontrollitud failikogu loomiseks ja toomiseks. Pkgar kood on kirjutatud Rust ja jaotatud MIT litsentsi alusel.

Pkgar-vorming ei pretendeeri universaalsusele ja on optimeeritud Redox OS-i opsüsteemi eripärasid arvestades. Paketihaldur toetab allika kontrollimist digitaalallkirja ja terviklikkuse kontrolli abil. Kontrollsummad arvutatakse räsifunktsiooni abil blake3. Pkgari kontrollimisega seotud funktsioonidele pääseb juurde ilma paketiarhiivi tegelikult salvestamata, manipuleerides ainult päise osaga. Eelkõige koosneb pakett päisefailist (.pkgar_head) ja andmefailist (.pkgar_data). Korrektselt allkirjastatud täieliku kokkuvõtliku paketi (.pkgar) saab lihtsalt andmefailile päisefaili lisamisega (“cat example.pkgar_head example.pkgar_data > example.pkgar”).

Päisefail sisaldab päise ja andmefaili parameetritega struktuuride jaoks eraldi kontrollsummasid, samuti digiallkirja paketi kontrollimiseks. Andmefail sisaldab kõigi paketis sisalduvate failide ja kataloogide järjestikust loendit. Igale andmeelemendile eelneb metaandmetega struktuur, mis sisaldab andmete enda kontrollsummat, suurust, juurdepääsuõigusi, installitava faili suhtelist teed ja järgmise andmeelemendi parameetrite nihet. Kui värskendamise käigus ei ole üksikud failid muutunud ja kontrollsumma ühtib, jäetakse need vahele ja neid ei laadita.

Allika terviklikkust saate kontrollida, võttes vastu ainult päisefaili, ja valitud andmefaili õigsust laadides ainult selle faili parameetritega struktuurid ja veendudes, et need vastavad päisefailis kinnitatud kontrollsummale. Andmeid ennast saab kontrollida pärast nende laadimist, kasutades struktuuri kontrollsummat koos andmetele eelnevate parameetritega.

Paketid on oma olemuselt korratavad, mis tähendab, et konkreetse kataloogi jaoks paketi loomisel saadakse alati identne pakett. Pärast installimist salvestatakse süsteemi ainult metaandmed, millest piisab paketi rekonstrueerimiseks installitud andmetest (metaandmetes sisalduvad paketi koostis, kontrollsummad, teed ja juurdepääsuõigused).

pkgari peamised eesmärgid:

  • Aatomilisus – värskendused rakendatakse võimaluse korral automaatselt.
  • Liikluse kokkuhoid – andmeid edastatakse üle võrgu ainult siis, kui räsi muutub (uuendamise ajal laaditakse alla ainult muudetud failid).
  • Kasutatakse suure jõudlusega kiireid krüptoalgoritme (blake3 toetab räside arvutamisel paralleelset andmetöötlust). Kui hoidlast pärinevaid andmeid pole varem vahemällu salvestatud, saab allalaaditud andmete jaoks arvutada allalaadimise ajal räsi.
  • Minimalistlik – erinevalt teistest vormingutest sisaldab pkgar ainult paketi ekstraktimiseks vajalikke metaandmeid.
  • Paigalduskataloogi sõltumatus - paketi saab installida igasse kataloogi, iga kasutaja (kasutajal peab olema valitud kataloogi kirjutamisõigus).
  • Turvalisus – paketid kontrollitakse alati krüptograafiliselt ning kontrollimine toimub enne paketiga tegelike toimingute tegemist (kõigepealt laaditakse päis ja õige digiallkirja korral laaditakse andmed ajutisse kataloogi, mis teisaldatakse pärast seda sihtkataloogi. kontrollimine).

Allikas: opennet.ru

Lisa kommentaar