Projekt Redox OS predstavil správcu balíkov pkgar napísaný v jazyku Rust

Vývojári operačného systému redox, napísané pomocou jazyka Rust a konceptu mikrojadra, predložené nový správca balíkov pkgar. Projekt vyvíja nový formát balíkov, knižnicu na správu balíkov a súpravu nástrojov príkazového riadka na vytváranie a získavanie kryptograficky overenej zbierky súborov. Kód pkgar je napísaný v jazyku Rust a distribuovaný pod licenciou MIT.

Formát pkgar nepredstiera, že je univerzálny a je optimalizovaný s ohľadom na špecifiká operačného systému Redox OS. Správca balíkov podporuje overenie zdroja pomocou digitálneho podpisu a kontroly integrity. Kontrolné súčty sa vypočítavajú pomocou hašovacej funkcie blake3. K funkciám pkgar súvisiacim s overovaním je možné pristupovať bez skutočného uloženia archívu balíkov manipuláciou iba s časťou hlavičky. Balík pozostáva najmä z hlavičkového súboru (.pkgar_head) a dátového súboru (.pkgar_data). Správne podpísaný úplný súhrnný balík (.pkgar) možno získať jednoduchým pripojením súboru hlavičky k súboru s údajmi („cat example.pkgar_head example.pkgar_data > example.pkgar“).

Hlavičkový súbor obsahuje samostatné kontrolné súčty pre hlavičku a štruktúry s parametrami z dátového súboru, ako aj digitálny podpis na overenie balíka. Dátový súbor obsahuje sekvenčný výpis všetkých súborov a adresárov dodaných v balíku. Každému dátovému prvku predchádza štruktúra s metaúdajmi, ktorá obsahuje kontrolný súčet pre samotné údaje, veľkosť, prístupové práva, relatívnu cestu k súboru, ktorý sa inštaluje, a offset parametrov ďalšieho dátového prvku. Ak sa počas procesu aktualizácie jednotlivé súbory nezmenili a kontrolný súčet sa zhoduje, potom sa preskočia a nenačítajú sa.

Integritu zdroja môžete skontrolovať prijatím iba hlavičkového súboru a správnosť vybraného dátového súboru načítaním iba štruktúr s parametrami tohto súboru a uistením sa, že sú v súlade s kontrolným súčtom certifikovaným v hlavičkovom súbore. Samotné dáta je možné po načítaní skontrolovať pomocou kontrolného súčtu zo štruktúry s parametrami pred dátami.

Balíky sú vo svojej podstate opakovateľné, čo znamená, že vytvorenie balíka pre konkrétny adresár bude mať vždy za následok rovnaký balík. Po inštalácii sa v systéme uložia iba metadáta, ktoré postačujú na rekonštrukciu balíka z nainštalovaných dát (zloženie balíka, kontrolné súčty, cesty a prístupové práva sú obsiahnuté v metadátach).

Hlavné ciele pkgar:

  • Atomicita—aktualizácie sa aplikujú automaticky vždy, keď je to možné.
  • Úspora prevádzky - dáta sa prenášajú po sieti len pri zmene hashu (pri aktualizácii sa sťahujú iba zmenené súbory).
  • Používajú sa vysokovýkonné, rýchle kryptografické algoritmy (blake3 podporuje paralelné spracovanie údajov pri výpočte hashov). Ak údaje z úložiska neboli predtým uložené do vyrovnávacej pamäte, v čase sťahovania možno vypočítať hodnotu hash pre stiahnuté údaje.
  • Minimalistický – Na rozdiel od iných formátov obsahuje pkgar iba metadáta potrebné na extrahovanie balíka.
  • Nezávislosť inštalačného adresára - balík môže byť inštalovaný do ľubovoľného adresára, a to ktorýmkoľvek používateľom (používateľ musí mať oprávnenie na zápis do zvoleného adresára).
  • Bezpečnosť - Pakety sú vždy kryptograficky overené a overenie sa vykoná pred vykonaním skutočných operácií s balíkom (najskôr sa načíta hlavička a ak je digitálny podpis správny, údaje sa načítajú do dočasného adresára, ktorý sa presunie do cieľového adresára po overenie).

Zdroj: opennet.ru

Pridať komentár