Redox OS -projekti esitteli rust-kielellä kirjoitetun pkgar-pakettienhallinnan

Käyttöjärjestelmien kehittäjät redox, kirjoitettu käyttämällä Rust-kieltä ja mikroydinkonseptia, esitetty uusi pakettihallinta pkgar. Projektissa kehitetään uutta pakettimuotoa, paketinhallintakirjastoa ja komentorivin työkalupakkia salaustodistetun tiedostokokoelman luomiseen ja hakemiseen. pkgar-koodi on kirjoitettu kielellä Rust and jakelija MIT-lisenssillä.

pkgar-muoto ei väitä olevan universaali, ja se on optimoitu ottaen huomioon Redox OS -käyttöjärjestelmän erityispiirteet. Paketinhallinta tukee lähteen todentamista käyttämällä digitaalista allekirjoitusta ja eheyden valvontaa. Tarkistussummat lasketaan hash-funktiolla blake3. Pkgarin varmentamiseen liittyviä toimintoja voidaan käyttää ilman pakettiarkiston tallentamista, manipuloimalla vain otsikko-osaa. Erityisesti paketti koostuu otsikkotiedostosta (.pkgar_head) ja datatiedostosta (.pkgar_data). Oikein allekirjoitettu täydellinen yhteenvetopaketti (.pkgar) saadaan yksinkertaisesti liittämällä otsikkotiedosto datatiedostoon ("cat example.pkgar_head esimerkki.pkgar_data > esimerkki.pkgar").

Otsikkotiedosto sisältää erilliset tarkistussummat otsikolle ja rakenteille parametreineen datatiedostosta sekä digitaalisen allekirjoituksen paketin varmentamiseksi. Datatiedosto sisältää peräkkäisen luettelon kaikista paketissa toimitetuista tiedostoista ja hakemistoista. Jokaista tietoelementtiä edeltää metatiedon sisältävä rakenne, joka sisältää itse tiedon tarkistussumman, koon, käyttöoikeudet, asennettavan tiedoston suhteellisen polun ja seuraavan tietoelementin parametrien poikkeaman. Jos yksittäiset tiedostot eivät ole muuttuneet päivitysprosessin aikana ja tarkistussumma täsmää, ne ohitetaan eikä niitä ladata.

Voit tarkistaa lähteen eheyden vastaanottamalla vain otsikkotiedoston ja valitun datatiedoston oikeellisuuden lataamalla vain rakenteet tämän tiedoston parametreilla ja varmistamalla, että ne ovat otsikkotiedostossa varmennetun tarkistussumman mukaisia. Itse tiedot voidaan tarkistaa latauksen jälkeen käyttämällä rakenteen tarkistussummaa dataa edeltävien parametrien kanssa.

Paketit ovat luonnostaan ​​toistettavissa, mikä tarkoittaa, että paketin luominen tietylle hakemistolle johtaa aina identtiseen pakettiin. Asennuksen jälkeen järjestelmään tallennetaan vain metatiedot, jotka riittävät paketin rekonstruoimiseen asennetuista tiedoista (paketin koostumus, tarkistussummat, polut ja käyttöoikeudet sisältyvät metatietoihin).

pkgarin päätavoitteet:

  • Atomicity – päivitykset otetaan käyttöön automaattisesti aina kun mahdollista.
  • Liikenteen säästö - tietoja siirretään verkon yli vain, kun hajautus muuttuu (päivityksen aikana vain muuttuneet tiedostot ladataan).
  • Käytetään tehokkaita, nopeita salausalgoritmeja (blake3 tukee rinnakkaista tietojenkäsittelyä tiivisteiden laskennassa). Jos arkiston tietoja ei ole aiemmin tallennettu välimuistiin, ladatuille tiedoille voidaan laskea tiiviste lataushetkellä.
  • Minimalistinen - Toisin kuin muut muodot, pkgar sisältää vain paketin purkamiseen tarvittavat metatiedot.
  • Riippumattomuus asennushakemistosta - paketin voi asentaa mihin tahansa hakemistoon, kuka tahansa käyttäjä (käyttäjällä tulee olla kirjoitusoikeus valittuun hakemistoon).
  • Turvallisuus - Paketit tarkistetaan aina kryptografisesti ja varmennus suoritetaan ennen varsinaisia ​​toimintoja paketille (otsikko ladataan ensin ja jos digitaalinen allekirjoitus on oikein, tiedot ladataan väliaikaiseen hakemistoon, joka siirretään kohdehakemistoon todentaminen).

Lähde: opennet.ru

Lisää kommentti