Ontwikkelaars van besturingssystemen
Het pkgar-formaat pretendeert niet universeel te zijn en is geoptimaliseerd rekening houdend met de specifieke kenmerken van het Redox OS-besturingssysteem. De pakketbeheerder ondersteunt bronverificatie met behulp van een digitale handtekening en integriteitscontrole. Controlesommen worden berekend met behulp van een hashfunctie
Het headerbestand bevat afzonderlijke controlesommen voor de header en structuren met parameters uit het gegevensbestand, evenals een digitale handtekening om het pakket te verifiëren. Het gegevensbestand bevat een opeenvolgende lijst van alle bestanden en mappen die in het pakket worden geleverd. Elk data-element wordt voorafgegaan door een structuur met metadata die een controlesom bevat voor de gegevens zelf, de grootte, toegangsrechten, het relatieve pad van het bestand dat wordt geïnstalleerd en de offset van de parameters van het volgende data-element. Als tijdens het updateproces individuele bestanden niet zijn gewijzigd en de controlesom overeenkomt, worden ze overgeslagen en niet geladen.
U kunt de integriteit van de bron controleren door alleen het headerbestand te ontvangen, en de juistheid van het geselecteerde gegevensbestand door alleen de structuren met de parameters van dit bestand te laden en ervoor te zorgen dat ze voldoen aan de controlesom die in het headerbestand is gecertificeerd. De gegevens zelf kunnen worden gecontroleerd nadat deze zijn geladen, met behulp van de controlesom uit de structuur met parameters die aan de gegevens voorafgaan.
Pakketten zijn inherent herhaalbaar, wat betekent dat het maken van een pakket voor een specifieke directory altijd zal resulteren in een identiek pakket. Na installatie worden alleen metadata in het systeem opgeslagen, wat voldoende is om het pakket te reconstrueren uit de geïnstalleerde gegevens (de samenstelling van het pakket, checksums, paden en toegangsrechten zijn vastgelegd in de metadata).
Belangrijkste doelstellingen van pkgar:
- Atomicity: updates worden waar mogelijk automatisch toegepast.
- Verkeersbesparingen - gegevens worden alleen via het netwerk verzonden als de hash verandert (tijdens het updaten worden alleen gewijzigde bestanden gedownload).
- Er worden krachtige, snelle cryptografische algoritmen gebruikt (blake3 ondersteunt parallelle gegevensverwerking bij het berekenen van hashes). Als de gegevens uit de repository nog niet eerder in de cache zijn opgeslagen, kan tijdens het downloaden een hash voor de gedownloade gegevens worden berekend.
- Minimalistisch - In tegenstelling tot andere formaten bevat pkgar alleen de metagegevens die nodig zijn om het pakket uit te pakken.
- Onafhankelijkheid van de installatiedirectory - het pakket kan door elke gebruiker in elke directory worden geïnstalleerd (de gebruiker moet schrijfrechten hebben voor de geselecteerde directory).
- Beveiliging - Pakketten worden altijd cryptografisch geverifieerd en verificatie wordt uitgevoerd voordat daadwerkelijke bewerkingen op het pakket worden uitgevoerd (de header wordt eerst geladen en als de digitale handtekening correct is, worden de gegevens in een tijdelijke map geladen, die daarna naar de doelmap wordt verplaatst verificatie).
Bron: opennet.ru