Utvecklarna av operativsystemet , med hjÀlp av programmeringssprÄket Rust och mikrokernelkonceptet, ny paketmanager . Inom projektet utvecklas ett nytt paketformat, ett bibliotek för hantering av paket och ett kommandoradsverktyg för att skapa och extrahera kryptografiskt verifierade samlingar av filer. Koden pkgar Àr skriven i Rust och licensieras under MIT.
pkgar-formatet gör inte ansprÄk pÄ att vara universellt och Àr optimerat med hÀnsyn till de specifika egenskaperna hos operativsystemet Redox OS. Paketmanagern stöder verifiering av kÀllan genom digital signatur och integritetskontroll. Kontrollsummor berÀknas med hjÀlp av hash-funktionen . Den verifieringsrelaterade funktionaliteten hos pkgar kan nÄs utan att faktiskt spara paketarkivet, endast genom att manipulera med headerdelen. I synnerhet bestÄr paketet av en headerfil (.pkgar_head) och en datafil (.pkgar_data). Ett korrekt signerat fullstÀndigt samlat paket (.pkgar) kan erhÄllas genom att enkelt sammanfoga headerfilen med datafilen ("cat example.pkgar_head example.pkgar_data > example.pkgar").
Headerfilen innehÄller separata kontrollsummor för headern och strukturer med parametrar frÄn datafilen, samt en digital signatur för att verifiera paketet. Datafilen inkluderar en sekventiell upprÀkning av alla filer och kataloger som ingÄr i paketet. Före varje dataelement ges en struktur med metadata som inkluderar kontrollsumman för sjÀlva datan, storlek, ÄtkomstrÀttigheter, den relativa sökvÀgen till den installerade filen och förskjutningen av parametrarna för nÀsta dataelement. Om vissa filer inte har Àndrats under uppdateringen och kontrollsumman matchar, sÄ hoppar man över dem och laddar inte ner.
Integriteten för kÀllan kan kontrolleras enbart genom att fÄ headerfilen, och korrektheten av den valda datafilen kan verifieras genom att endast ladda ner strukturerna med parametrarna för den filen och sÀkerstÀlla att de överensstÀmmer med kontrollsumman som Àr verifierad i headerfilen. SjÀlva datan kan verifieras efter att den har laddats ner, med kontrollsumman frÄn strukturen med parametrar som föregÄr datan.
Paket ska ursprungligen innebÀra möjligheten till Äterkommande byggande, vilket innebÀr att skapandet av ett paket för en viss katalog alltid resulterar i bildandet av ett identiskt paket. Efter installationen lagras endast metadata i systemet, vilket rÀcker för att rekonstruera paketet frÄn de installerade uppgifterna (pakettets sammansÀttning, kontrollsummor, vÀgar och behörigheter finns i metadatan).
Huvudsyften med pkgar:
- Atomaritet â uppdateringar tillĂ€mpas automatiskt nĂ€r det Ă€r möjligt.
- Trafikbesparing â data överförs över nĂ€tverket endast vid förĂ€ndring av hash (vid uppdatering laddas endast Ă€ndrade filer ner).
- Hög prestanda, snabba kryptografiska algoritmer anvÀnds (blake3 stödjer parallell behandling av data vid berÀkning av hash). Om uppgifterna frÄn lagret inte har cachats tidigare, kan hashen för de nedladdade uppgifterna berÀknas under nedladdningen.
- Minimalism â till skillnad frĂ„n andra format inkluderar pkgar endast den metadata som krĂ€vs för att extrahera paketet.
- Oberoende av installationskatalog â paket kan installeras i valfri katalog av vilken anvĂ€ndare som helst (anvĂ€ndaren mĂ„ste ha skrivbehörighet i den valda katalogen).
- SĂ€kerhet â paket verifieras alltid kryptografiskt, och verifieringen utförs före faktiska operationer med paketet (först laddas headern ner och om den digitala signaturen Ă€r korrekt, laddas data ner till en temporĂ€r katalog, som flyttas till mĂ„lkatalogen efter verifiering).
KĂ€lla: opennet.ru
