Operatsioonisüsteemi arendajad , kasutades Rusti keelt ja mikrokernelide kontseptsiooni, uus pakihaldur . Projekti raames arendatakse uut paketiformaati, pakihaldusfunktsioonide teeki ja käsurealiidest krüptograafiliselt kontrollitud failide kogumi loomiseks ja ekstraheerimiseks. Kood pkgar on kirjutatud keeles Rust ja on MIT litsentsi all.
pkgar formaad ei pretendeeri universaalsusele ning on optimeeritud Redox OS operatsioonisüsteemi spetsiifikaga. Pakihaldur toetab allika verifitseerimist digitaalallkirja kaudu ja tarne terviklikkuse kontrolli. Kontrollsummad arvutatakse kasutades hash-funktsiooni . Verifitseerimisega seotud funktsionaalsus pkgar-iga on võimalik ilma arhiivi tegeliku salvestamiseta, manipuleerides ainult pealkirja osaga. Eriti pakendi moodustavad pealkirjafail (.pkgar_head) ja andmefail (.pkgar_data). Korrektselt allkirjastatud täisülevaatepakett (.pkgar) võib olla saadud pealkirjafaili ja andmefaili lihtsa liitmisega („cat example.pkgar_head example.pkgar_data > example.pkgar“).
Pealkirjafail sisaldab eraldi kontrollsummasid pealkirja ja andmefaili struktuuride jaoks, samuti digitaalallkirja pakendi kontrollimiseks. Andmefail sisaldab järjestatud loetelu kõikidest failidest ja kataloogidest, mis on pakendis. Iga andmeelemendi ees on struktuur metaandmetega, mis sisaldavad kontrollsummat andmete endi jaoks, suurust, õigusi, suhtelist teed määratud failile ja järgmise andmeelemendi parameetrite nihke. Kui uuendamise käigus ei ole eraldi faile muudetud ja kontrollsummad langevad kokku, siis need jäetakse vahele ja ei laeta.
Allika terviklikkust saab kontrollida, saades ainult pealkirjafaili, ja valitud andmefaili kehtivust — laadides ainult selle faili parameetrite struktuure ning veendudes nende vastavuses pealkirjafailis kinnitatud kontrollsummaga. Andmeid saab kontrollida pärast nende laadimist, kasutades parameetrite struktuuri kontrollsummat, mis on andmete ees.
Pakid eeldavad algselt korduvate kogumite võimalust, mis tähendab, et pakendi loomine kindlal kataloogil viib alati samade pakettide genereerimisele. Pärast paigaldamist salvestatakse süsteemis vaid metaandmed, mis on piisavad pakendi rekonstrueerimiseks installitud andmete põhjal (pakendi sisu, kontrollsummad, teed ja ligipääsud on metaandmetes).
pkgar peamised eesmärgid:
- Atoomilisus — uuendused rakendatakse automaatselt, kui võimalik.
- Andmeedastusökonoomia — andmeid edastatakse üle võrgu ainult juhul, kui hash on muutunud (uuendamisel laaditakse ainult muudetud failid).
- Kõrge jõudlus, kasutusel on kiired krüptograafilised algoritmid (blake3 toetab andmete paralleelset töötlemist hash'i arvutamisel). Kui andmeid hoiust ei ole eelnevalt vahemälustatud, võib laaditavate andmete hash arvutada laadimise ajal.
- Minimalism — erinevalt teistest formatiivsetest formatidest sisaldab pkgar ainult metaandmeid, mis on vajalikud pakendi ekstraheerimiseks.
- Installeerimiskataloogist sõltumatus — paketti saab installida igasse katalooge, iga kasutaja (kasutajal peab olema õigusi valitud katalooge kirjutamiseks).
- Turvalisus — paketid verifitseeritakse alati krüptograafiliselt ning verifitseerimine toimub enne reaalseid toimingute sooritamist paketiga (esimene laaditakse pealkiri ja kui digitaalallkiri on õige, laaditakse andmed ajutisse katalooge, mis seejärel paigutatakse sihtkatalooge pärast verifitseerimist).
Allikas: opennet.ru
