A Redox OS projekt bemutatta a pkgar csomagkezelőt, Rust nyelven

Operációs rendszer fejlesztők Redox, írott a Rust nyelv és a mikrokernel koncepció használatával, bemutatott új csomagkezelő pkgar. A projekt egy új csomagformátumot, egy csomagkezelő könyvtárat és egy parancssori eszközkészletet fejleszt ki kriptográfiailag ellenőrzött fájlgyűjtemény létrehozásához és visszakereséséhez. A pkgar kód Rust és nyelven van írva forgalmazza az MIT engedélye alapján.

A pkgar formátum nem úgy tesz, mintha univerzális lenne, és a Redox OS operációs rendszer sajátosságait figyelembe véve van optimalizálva. A csomagkezelő támogatja a forrásellenőrzést digitális aláírással és integritás-ellenőrzéssel. Az ellenőrző összegek kiszámítása hash függvény segítségével történik blake3. A pkgar ellenőrzéssel kapcsolatos funkciói a csomagarchívum tényleges tárolása nélkül is elérhetők, csak a fejlécrész manipulálásával. A csomag különösen egy fejlécfájlból (.pkgar_head) és egy adatfájlból (.pkgar_data) áll. A helyesen aláírt teljes összefoglaló csomagot (.pkgar) úgy kaphatja meg, hogy egyszerűen hozzáfűzi a fejlécfájlt az adatfájlhoz ("cat example.pkgar_head example.pkgar_data > example.pkgar").

A fejlécfájl külön ellenőrző összegeket tartalmaz a fejléchez és az adatfájlból származó paraméterekkel rendelkező struktúrákhoz, valamint egy digitális aláírást a csomag ellenőrzéséhez. Az adatfájl tartalmazza a csomagban található összes fájl és könyvtár egymás utáni listáját. Minden adatelemet egy metaadatokat tartalmazó struktúra előz meg, amely magában foglalja az adatok ellenőrző összegét, méretét, hozzáférési jogait, a telepítendő fájl relatív elérési útját és a következő adatelem paramétereinek eltolását. Ha a frissítési folyamat során az egyes fájlok nem változtak, és az ellenőrző összeg megegyezik, akkor a rendszer kihagyja és nem tölti be őket.

A forrás sértetlenségét úgy ellenőrizheti, hogy csak a fejlécfájlt fogadja, a kiválasztott adatfájl helyességét pedig úgy, hogy csak a struktúrákat tölti be ennek a fájlnak a paramétereivel, és ellenőrizze, hogy azok megfelelnek-e a fejlécfájlban hitelesített ellenőrző összegnek. Magát az adatot a betöltés után lehet ellenőrizni, az adatot megelőző paraméterekkel rendelkező struktúrából származó ellenőrző összeg segítségével.

A csomagok eredendően megismételhetők, ami azt jelenti, hogy egy adott könyvtárhoz csomag létrehozása mindig azonos csomagot eredményez. Telepítés után csak a metaadatok kerülnek mentésre a rendszerbe, ami elegendő a csomagnak a telepített adatokból történő rekonstruálásához (a csomag összetételét, ellenőrző összegeket, elérési utakat és hozzáférési jogosultságokat a metaadatok tartalmazzák).

A pkgar fő céljai:

  • Atomosság – a frissítések automatikusan alkalmazásra kerülnek, amikor csak lehetséges.
  • Forgalommegtakarítás - az adatok csak akkor kerülnek átvitelre a hálózaton, ha a hash megváltozik (a frissítés során csak a megváltozott fájlok kerülnek letöltésre).
  • Nagy teljesítményű, gyors kriptográfiai algoritmusokat használnak (a blake3 támogatja a párhuzamos adatfeldolgozást a hash kiszámításakor). Ha az adattárból származó adatok korábban nem lettek gyorsítótárazva, a letöltött adatokhoz a letöltéskor kivonat számítható.
  • Minimalista – Más formátumoktól eltérően a pkgar csak a csomag kibontásához szükséges metaadatokat tartalmazza.
  • A telepítési könyvtár függetlensége - a csomagot bármely könyvtárba, bármely felhasználó telepítheti (a felhasználónak írási jogosultsággal kell rendelkeznie a kiválasztott könyvtárba).
  • Biztonság - A csomagokat mindig titkosításilag ellenőrzik, és az ellenőrzést a csomagon végrehajtott tényleges műveletek előtt hajtják végre (először a fejléc töltődik be, és ha a digitális aláírás megfelelő, akkor az adatok egy ideiglenes könyvtárba kerülnek, amely azután átkerül a célkönyvtárba. igazolás).

Forrás: opennet.ru

Hozzászólás