Il progetto Redox OS ha presentato il gestore di pacchetti pkgar, scritto in linguaggio Rust.

Sviluppatori del sistema operativo Redox, scritta utilizzando il linguaggio Rust e il concetto di microkernel, hanno presentato nuovo gestore di pacchetti pkgar. Nel progetto viene sviluppato un nuovo formato di pacchetti, una libreria con funzioni di gestione dei pacchetti e un tool da riga di comando per creare ed estrarre una collezione di file crittograficamente verificati. Il codice di pkgar è scritto nel linguaggio Rust e è distribuito sotto licenza MIT.

Il formato pkgar non aspira a essere universale ed è ottimizzato tenendo conto delle specificità del sistema operativo Redox OS. Il gestore di pacchetti supporta la verifica della fonte tramite firma digitale e controllo dell'integrità. Le somme di controllo sono calcolate utilizzando la funzione hash blake3. La funzionalità di verifica associata a pkgar può essere utilizzata senza il salvataggio effettivo dell'archivio del pacchetto, manipolando solo la parte intestazione. In particolare, il pacchetto è composto da un file di intestazione (.pkgar_head) e un file dati (.pkgar_data). Un pacchetto completo corretto (.pkgar) può essere ottenuto semplicemente unendo il file di intestazione al file dati ("cat example.pkgar_head example.pkgar_data > example.pkgar").

Il file di intestazione contiene somme di controllo separate per l'intestazione e le strutture con parametri estratti dal file dati, oltre a una firma digitale per la verifica del pacchetto. Il file con i dati include un elenco sequenziale di tutti i file e le directory forniti nel pacchetto. Prima di ogni elemento dati è fornita una struttura con metadati che include una somma di controllo per i dati stessi, la dimensione, i diritti di accesso, il percorso relativo del file da installare e l'offset dei parametri del prossimo elemento dati. Se durante il processo di aggiornamento alcuni file non sono stati modificati e le somme di controllo coincidono, vengono saltati e non vengono caricati.

È possibile verificare l'integrità della fonte ottenendo solo il file di intestazione e la correttezza del file dati scelto caricando solo le strutture con i parametri di quel file e assicurandosi che corrispondano alla somma di controllo attestata nel file di intestazione. I dati stessi possono essere verificati dopo il caricamento, utilizzando la somma di controllo dalla struttura con i parametri che precede i dati.

I pacchetti implicano originariamente la possibilità di un assemblaggio ripetibile, il che significa che la creazione di un pacchetto per un determinato catalogo porta sempre alla generazione di un pacchetto identico. Dopo l'installazione, nel sistema rimangono solo i metadati, sufficienti per ricostruire il pacchetto dai dati installati (la composizione del pacchetto, le somme di controllo, i percorsi e i diritti di accesso sono contenuti nei metadati).

Obiettivi principali di pkgar:

  • Atomicità — gli aggiornamenti vengono applicati automaticamente quando possibile.
  • Risparmio di traffico — i dati vengono trasmessi attraverso la rete solo in caso di modifica dell'hash (durante l'aggiornamento vengono scaricati solo i file modificati).
  • Alte prestazioni, vengono impiegati algoritmi crittografici veloci (blake3 supporta il parallelismo nel trattamento dei dati durante il calcolo dell'hash). Se i dati del repository non sono stati precedentemente memorizzati nella cache, l'hash per i dati scaricati può essere calcolato durante il download.
  • Minimalismo — a differenza di altri formati, pkgar include solo i metadati necessari per l'estrazione del pacchetto.
  • Indipendenza dalla directory di installazione — il pacchetto può essere installato in qualsiasi directory da qualsiasi utente (l'utente deve avere il permesso di scrivere nella directory scelta).
  • Sicurezza — i pacchetti vengono sempre verificati crittograficamente e la verifica avviene prima di eseguire le operazioni effettive sul pacchetto (prima si scarica l'intestazione e, se la firma digitale è valida, i dati vengono scaricati in una directory temporanea e poi spostati nella directory di destinazione dopo la verifica).

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster