Az operációs rendszer fejlesztői , a Rust nyelv és a mikrokernel koncepciója felhasználásával, új csomagkezelő . A projekt keretében kifejlesztésre kerül egy új csomagformátum, csomagkezelő funkciókat tartalmazó könyvtár és parancssori eszköz a kriptográfiailag ellenőrzött fájlkészletek létrehozásához és kiemeléséhez. A pkgar kód Rust nyelven készült, és MIT licenc alatt áll.
A pkgar formátum nem igényel univerzalitást, és az operációs rendszer, a Redox OS sajátosságaira optimalizált. A csomagkezelő támogatja a forrás digitális aláírás általi hitelesítését és az integritás ellenőrzését. Az ellenőrző összegek a -es hash-funkcióval számítódnak. A hitelesítéssel kapcsolatos funkciók a csomag archívumának tényleges tárolása nélkül is elérhetők, csupán a fejlécet manipulálva. Különösen, a csomag a fejléc fájlt (.pkgar_head) és az adathalmaz fájlt (.pkgar_data) foglalja magában. A helyesen aláírt teljes összefoglaló csomag (.pkgar) egyszerűen a fejléc fájl és az adatok fájl egyesítésével létrehozható (pl. „cat example.pkgar_head example.pkgar_data > example.pkgar”).
A fejléc fájl tartalmaz külön ellenőrző összegeket a fejlécre és a paramétereket a data fájlból, valamint digitális aláírást a csomag ellenőrzéséhez. Az adatok fájlja tartalmazza az összes fájl és könyvtár felsorolását, amelyeket a csomag tartalmaz. Minden adatelem előtt van egy struktúra metaadataival, amelyek tartalmazzák az adatokra vonatkozó ellenőrző összeget, a méretet, a hozzáférési jogokat, az adott fájl relatív elérési útját és a következő adatelem paraméterének eltolását. Ha frissítés közben egyes fájlok nem változtak, és az ellenőrző összeg megegyezik, akkor ezek átugorhatók és nem töltődnek le.
A forrás integritásának ellenőrzéséhez elegendő csak a fejlécfájlt megkapni, míg a kiválasztott adat fájl helyességét csak a fájl paraméter struktúráinak letöltésével és a fejlécfájlban aláírt ellenőrző összeggel való összehasonlítással lehet igazolni. Magukat az adatokat a letöltésük után lehet ellenőrizni, a paraméter struktúrából származó ellenőrző összeg felhasználásával, amely az adatok előtt található.
A csomagok alapvetően lehetőséget biztosítanak a megismételhető összegyűjtésre, ami azt jelenti, hogy egy csomag létrehozása egy adott könyvtárhoz mindig azonos csomag létrejöttét eredményezi. Telepítés után csak a metaadatok maradnak meg a rendszerben, amelyek elegendőek a csomag rekonstrukciójához a telepített adatokból (a csomag összetétele, ellenőrző összeg, elérési utak és jogosultságok szerepelnek a metaadatokban).
A pkgar fő céljai:
- Atomaritás – a frissítések lehetőség szerint automatikusan alkalmazásra kerülnek.
- Adatforgalom megtakarítása – az adatok a hálózaton csak a hash megváltozása esetén kerülnek átvitelre (frissítéskor csak a megváltozott fájlok töltődnek le).
- Magas teljesítmény, gyors kriptográfiai algoritmusok alkalmazásával (a blake3 támogatja az adatok párhuzamos feldolgozását a hash számításakor). Ha a repozitóriumban lévő adatok még nem voltak előzőleg gyorsítótárazva, a letöltendő adatok hash-ét a letöltés során lehet számítani.
- Minimalizmus – más formátumokkal ellentétben a pkgar csak azokat a metaadatokat tartalmazza, amelyek a csomag kicsomagolásához szükségesek.
- A telepítési könyvtártól való függetlenség – a csomag bármely könyvtárba telepíthető, bármely felhasználó által (a felhasználónak írási joggal kell rendelkeznie a választott könyvtárhoz).
- Biztonság – a csomagokat mindig kriptográfiai ellenőrzés alá vetik, és az ellenőrzés a csomaggal kapcsolatos tényleges műveletek végrehajtása előtt történik (először a fejléc töltődik le, és ha a digitális aláírás helyes, az adatok egy ideiglenes könyvtárba töltődnek, amelyek a megerősítés után a célkönyvtárba kerülnek).
Forrás: opennet.ru
