Proiectul Redox OS a lansat managerul de pachete pkgar, scris în limbajul Rust

Dezvoltatorii sistemului de operare Redox, scris folosind limbajul Rust și conceptul de microkernel, au prezentat un nou manager de pachete pkgar. În cadrul proiectului se dezvoltă un nou format de pachete, o bibliotecă cu funcții de gestionare a pachetelor și unelte de linie de comandă pentru crearea și extragerea unei colecții de fișiere verificate criptografic. Codul pkgar este scris în limbajul Rust și se răspândește sub licența MIT.

Formatul pkgar nu pretinde universalitate și este optimizat ținând cont de specificațiile sistemului de operare Redox OS. Managerul de pachete suportă verificarea sursei prin semnătură digitală și controlul integrității. Sumele de control sunt calculate folosind funcția hash blake3. Funcționalitatea asociată cu verificarea poate fi accesată fără a salva efectiv arhiva pachetului, manipulând doar partea de antet. În particular, pachetul este format dintr-un fișier antet (.pkgar_head) și un fișier de date (.pkgar_data). Un pachet complet semnat corect (.pkgar) poate fi obținut prin simpla atașare a fișierului de antet la fișierul de date („cat example.pkgar_head example.pkgar_data > example.pkgar”).

Fișierul de antet conține sume de control distincte pentru antet și structurile cu parametrii din fișierul de date, precum și o semnătură digitală pentru verificarea pachetului. Fișierul cu date include o enumerare secvențială a tuturor fișierelor și directoarelor livrate în pachet. Înaintea fiecărui element de date se prezintă o structură cu metadate, care include suma de control pentru datele în sine, dimensiunea, drepturile de acces, calea relativă a fișierului instalat și offsetul parametrilor pentru elementul următor de date. Dacă, în timpul actualizării, unele fișiere nu s-au schimbat și suma de control coincide, acestea sunt sărite și nu sunt descărcate.

Se poate verifica integritatea sursei obținând doar fișierul de antet, iar corectitudinea fișierului de date selectat — descărcând doar structurile cu parametrii acelui fișier și asigurându-se că acestea corespund sumei de control, certificate în fișierul de antet. Datele propriu-zise pot fi verificate după descărcare, folosind suma de control din structura cu parametrul care precede datele.

Pachetele implică inițial posibilitatea reconstrucției, ceea ce înseamnă că crearea unui pachet pentru un anumit director conduce întotdeauna la formarea unui pachet identic. După instalare, în sistem rămân doar metadatele, care sunt suficiente pentru reconstrucția pachetului din datele instalate (componența pachetului, sumele de control, căile și permisiunile sunt incluse în metadate).

Obiectivele principale ale pkgar:

  • Atomicitate — actualizările sunt aplicate automat, pe cât posibil.
  • Economisirea de trafic — datele sunt trimise prin rețea doar atunci când se schimbă hash-ul (la actualizare sunt descărcate doar fișierele modificate).
  • Performanță ridicată, utilizând algoritmi criptografici rapid (blake3 suportă procesarea paralelă a datelor în timpul calculării hash-ului). Dacă datele din rezervor nu au fost anterior cached, hash-ul pentru datele descărcate poate fi calculat în timpul descărcării.
  • Minimalism — spre deosebire de alte formate, pkgar include doar metadatele necesare pentru extragerea pachetului.
  • Independența de directorul de instalare — pachetul poate fi instalat în orice director, de către orice utilizator (utilizatorul trebuie să aibă drept de scriere în directorul ales).
  • Securitate — pachetele sunt întotdeauna verificate criptografic, iar verificarea are loc înainte de a efectua operații efective cu pachetul (mai întâi se descarcă antetul și, dacă semnătura digitală este corectă, se descarcă datele în directorul temporar, care sunt mutate în directorul țintă după verificare).

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster