Redox OS avrà il suo package manager (in Rust): pkgar

Solamente ieri abbiamo scritto di quanto sia caratterizzante un package manager per una distribuzione Linux, ed eccoci tornare a parlare dello stesso argomento. Questa volta però parliamo di un nuovo package manager per un nuovo sistema operativo.

È di qualche giorno fa l’annuncio di un nuovo formato file per pacchetti, chiamato pkgar (package archive). Sono stati rilasciati anche i relativi tool di gestione, con il tool a linea di comando omonimo. Il tutto, scritto in rust per Redox OS.

First thing first! cioè, partiamo dal principio.
Rust è un linguaggio di programmazione nato per essere simile al C++ come sintassi, mantenerne le note performance ma superare il problema della difficile gestione della memoria, causa di molti buchi sia di sicurezza che di funzionalità. Mozilla, forse colpita dal rapido apprezzamento degli sviluppatori, con la sua crescita veloce in popolarità, ha deciso di finanziarne lo sviluppo.

Rust si è rivelato infatti un linguaggio molto duttile, persino in uno dei campi di applicazione più interessanti (e difficili): la creazione di un kernel per il sistema operativo. Il progetto infatti esiste, si chiama Redox OS ed è del tipo “unix-like”, proprio come Linux. Quindi in qualche modo concorrente, ma anche paragonabile.

Era qualche tempo che non si sentivano notizie riguardo Redox OS, ma ora sappiamo il motivo: la realizzazione di uno dei componenti fondamentali: il package manager. Con la disponibilità di pkgar, sicuramente lo sviluppo di tutto il progetto avrà un’accelerazione.

Ma che caratteristiche ha il nuovo formato?

  • Atomico – le operazioni, se possibile, devono essere atomiche, ovvero possono essere solo nello stato “non ancora eseguite” o “finite”. Se dovesse esserci qualcosa nel mezzo, semplicemente si ricadrebbe nello stato “non ancora eseguite” e si può riprovare.
  • Economicità – il trasferimento di dati deve avvenire solo quando cambia qualche hash, permettendo il minor uso possibile di rete e banda.
  • Veloce – algoritmi di criptazione ed hashing sono sceltiper le performance, con la possibilità di poter estrarre più pacchetti in parallelo.
  • Minimale – a differenza di altri formati (generici) come tar, in cui i metadati descrivo i singoli file e le loro proprietà, quelli inclusi in un file pkgar sono solo il minimo necessario per l’estrazione del pacchetto.
  • Ricollocabile – i pacchetti devono essere installabili in qualsiasi directory, da qualsiasi utente, posto che l’utente possa verificare la firma del pacchetto e accesso a quella directory.
  • Sicuro – i pacchetti sono sempre crittograficamente sicuri, e la verifica dei contenuti deve avvenire prima che l’installazione del pacchetto sia completa.

Il manifesto è molto chiaro, e forse i gestori più diffusi (apt, rpm, pacman…) sarebbero in grado di soddisfare tutti i requisiti. Ma, evidentemente, dovendo scrivere un package manager in Rust la scelta è stata di cominciare da zero, formato del pacchetto compreso, piuttosto che fare il porting di qualcosa di già esistente.

A questo punto vediamo due fatti interessanti: il primo è che Redox OS potrebbe passare da idea a realtà nel giro di qualche anno.
Il secondo è che il suo package manager è compilabile (quindi disponibile) da subito per Linux: qualche distribuzione potrebbe decidere di adottarlo?

Ho coltivato la mia passione per l'informatica fin da bambino, coi primi programmi BASIC. In età adulta mi sono avvicinato a Linux ed alla programmazione C, per poi interessarmi di reti. Infine, il mio hobby è diventato anche il mio lavoro.
Per me il modo migliore di imparare è fare, e per questo devo utilizzare le tecnologie che ritengo interessanti; a questo scopo, il mondo opensource offre gli strumenti perfetti.

Tags: , ,