Redox OS projekts ieviesa pkgar pakotņu pārvaldnieku, kas rakstīts Rust valodā

Operētājsistēmu izstrādātāji Redokss, rakstīts izmantojot Rust valodu un mikrokodola koncepciju, uzrādīts jauns pakotņu pārvaldnieks pkgar. Projektā tiek izstrādāts jauns pakotnes formāts, pakotņu pārvaldības bibliotēka un komandrindas rīku komplekts kriptogrāfiski pārbaudītas failu kolekcijas izveidei un izgūšanai. Pkgar kods ir rakstīts Rust un izplata saskaņā ar MIT licenci.

Pkgar formāts nepretendē uz universālu un ir optimizēts, ņemot vērā Redox OS operētājsistēmas specifiku. Pakešu pārvaldnieks atbalsta avota verifikāciju, izmantojot ciparparakstu un integritātes kontroli. Kontrolsummas tiek aprēķinātas, izmantojot jaucējfunkciju blake3. Ar verifikāciju saistītajai pkgar funkcionalitātei var piekļūt, faktiski nesaglabājot pakotņu arhīvu, manipulējot tikai ar galvenes daļu. Konkrēti, pakotne sastāv no galvenes faila (.pkgar_head) un datu faila (.pkgar_data). Pareizi parakstītu pilnu kopsavilkuma pakotni (.pkgar) var iegūt, vienkārši pievienojot datu failam galvenes failu (“cat example.pkgar_head example.pkgar_data > example.pkgar”).

Galvenes failā ir atsevišķas kontrolsummas galvenei un struktūrām ar parametriem no datu faila, kā arī ciparparaksts pakotnes verifikācijai. Datu failā ir iekļauts visu komplektā iekļauto failu un direktoriju secīgs saraksts. Pirms katra datu elementa ir struktūra ar metadatiem, kas ietver pašu datu kontrolsummu, lielumu, piekļuves tiesības, instalējamā faila relatīvo ceļu un nākamā datu elementa parametru nobīdi. Ja atjaunināšanas procesa laikā atsevišķi faili nav mainījušies un kontrolsumma sakrīt, tie tiek izlaisti un netiek ielādēti.

Avota integritāti var pārbaudīt, saņemot tikai galvenes failu, bet izvēlētā datu faila pareizību, ielādējot tikai struktūras ar šī faila parametriem un pārliecinoties, ka tās atbilst galvenes failā sertificētajai kontrolsummai. Pašus datus var pārbaudīt pēc to ielādes, izmantojot kontrolsummu no struktūras ar parametriem pirms datiem.

Pakotnes pēc būtības ir atkārtojamas, kas nozīmē, ka, izveidojot pakotni konkrētam direktorijam, vienmēr tiks iegūta identiska pakotne. Pēc instalēšanas sistēmā tiek saglabāti tikai metadati, kas ir pietiekami, lai rekonstruētu pakotni no instalētajiem datiem (pakotnes sastāvs, kontrolsummas, ceļi un piekļuves tiesības ir ietvertas metadatos).

Pkgar galvenie mērķi:

  • Atomiskums — atjauninājumi tiek lietoti automātiski, kad vien iespējams.
  • Trafika ietaupījumi - dati tiek pārsūtīti pa tīklu tikai tad, kad mainās hash (atjaunināšanas laikā tiek lejupielādēti tikai mainītie faili).
  • Tiek izmantoti augstas veiktspējas, ātri kriptogrāfijas algoritmi (blake3 atbalsta paralēlu datu apstrādi, aprēķinot jaucējus). Ja dati no repozitorija iepriekš nav bijuši kešatmiņā, lejupielādes laikā var aprēķināt lejupielādēto datu jaukšanu.
  • Minimālistisks — atšķirībā no citiem formātiem pkgar ietver tikai pakotnes izvilkšanai nepieciešamos metadatus.
  • Instalācijas direktorija neatkarība - pakotni var instalēt jebkurā direktorijā, jebkurš lietotājs (lietotājam ir jābūt rakstīšanas atļaujai izvēlētajā direktorijā).
  • Drošība - paketes vienmēr tiek pārbaudītas kriptogrāfiski, un pārbaude tiek veikta pirms reālu darbību veikšanas ar pakotni (vispirms tiek ielādēts galvene un, ja ciparparaksts ir pareizs, dati tiek ielādēti pagaidu direktorijā, kas tiek pārvietots uz mērķa direktoriju pēc pārbaude).

Avots: opennet.ru

Pievieno komentāru