Odhalili vývojáři operačního systému Redox nedávno které zavedli nový správce balíčků pkgar, které budou použity v systému.
Pro ty, kteří o Redoxu nevědí který je to operační systém že Jeho hlavním zaměřením je, že jeho vývoj využívá jazyk Rust a koncept mikrokernelů kde je na úrovni jádra poskytována pouze interakce mezi procesy a správou zdrojů a všechny ostatní funkce jsou přenášeny do knihoven, které mohou být použity jak jádrem, tak uživatelskými agenty.
V rámci projektu vyvíjí se nový formát balíčku, knihovna s funkcemi správy balíčků a nástroj příkazového řádku k vytvoření a extrakci kolekce kryptograficky ověřených souborů.
Formát pkgar není zamýšlen jako univerzální a je optimalizována s ohledem na specifika operačního systému Redox OS.
Správce balíčků podporuje ověření zdroje digitálním podpisem a kontrolou integrity. Kontrolní součty se počítají pomocí hash funkce blake3. K funkčnosti kontroly v pkgar lze přistupovat bez skutečného uložení souboru balíčku a manipulace pouze s hlavičkovou částí.
Zejména balíček se skládá ze souboru záhlaví (.pkgar_head) a datový soubor (.pkgar_data). Správně podepsaný balíček úplného přehledu (.pkgar) lze získat jednoduše připojením souboru záhlaví k datovému souboru.
Soubor záhlaví obsahuje samostatné kontrolní součty záhlaví a parametrizované struktury datového souboru a také digitální podpis k ověření paketu.
Datový soubor obsahuje sekvenční seznam všech dodaných souborů a adresářů v balíčku. Před každým datovým prvkem je struktura s metadaty, která obsahuje kontrolní součet samotných dat, velikost, přístupová práva, relativní cestu k souboru k instalaci a posun parametrů dalšího datového prvku.
Pokud se během procesu aktualizace jednotlivé soubory nezměnily a kontrolní součet se shoduje, budou přeskočeny a nebudou staženy.
Integritu zdroje lze ověřit získáním pouze souboru záhlaví a správnosti vybraného datového souboru načtením pouze struktur s parametry z tohoto souboru a zajištěním, že odpovídají kontrolnímu součtu zkontrolovanému v souboru záhlaví.
Přímo lze po stažení ověřit samotná data pomocí kontrolního součtu struktury s parametry, které předcházejí datům.
Zpočátku balíčky znamenají možnost opakovatelného sestavení, což znamená, že vytvoření balíčku pro konkrétní adresář vždy vede k vytvoření identického balíčku. Po instalaci se v systému uloží pouze metadata, což stačí k opětovnému sestavení balíčku z nainstalovaných dat (složení balíčku, kontrolní součty, cesty a přístupová práva jsou k dispozici v metadatech).
Hlavní cíle pkgar:
- Atomový: aktualizace platí, kdykoli je to možné automaticky.
- Úspora provozu: data jsou přenášena po síti pouze při změně hash (během aktualizace se stáhnou pouze aktualizované soubory).
- Jedná se o vysoce výkonné rychlé kryptografické algoritmy (blake3 podporuje paralelizaci zpracování dat při výpočtu hodnoty hash). Pokud data úložiště nebyla dříve uložena do mezipaměti, lze vypočítat hash pro stažená data při spuštění.
- Minimalismus: Na rozdíl od jiných formátů obsahuje pkgar pouze metadata potřebná k rozbalení balíčku.
- Nezávislost instalačního adresáře: Každý uživatel může nainstalovat balíček do libovolného adresáře (uživatel musí mít právo zapisovat do vybraného adresáře).
- Bezpečnost: pakety jsou vždy kryptograficky ověřeny a ověření je provedeno před provedením skutečných operací s pakety (nejprve je načtena hlavička a pokud je správný digitální podpis, data jsou přenesena do dočasného adresáře, který je po ověření přesunut do cíle adresáře).