Stavo aggiornando all’ultima release stabile BetterZip, un’ottima e completa utility per Mac per la gestione di archivi compressi, quando, tra le note del changelog leggo che è stato introdotto il supporto agli archivi di tipo XAR.
Furthermore, XAR archives (the format of the new Leopard installer packages) are now first-class citizens in BetterZip, i.e., you can open, extract, and create XAR archives.
Francamente non ero a conoscenza di questo nuovo formato, anche perché è stato introdotto solo recentemente nel 2006 e il primo sistema operativo ad adottarlo ufficialmente è stato Mac OS X Leopard per i suoi installer packages.
Caratteriche
L’acronimo XAR sta per eXtensible ARchive format, e altro non è che un formato di file che può contenere altri file (proprio come il TAR) e sta ad indicare una tipologia di archiviazione di nuova concezione che offre numerosi vantaggi rispetto agli altri formati come la facile estrazione di dati arbritari, metadata all’inizio del file ed estensibilità.
Infatti, questo formato ha una particolarità non indifferente: i file contenuti in un archivio XAR sono compressi singolarmente e ciò permette un’estrazione veloce di file individuali, non richiedendo, quindi, l’uso di ulteriore spazio su disco e un utilizzo maggiore della CPU necessario per estrarre l’intero archivio, come accade, invece, ad esempio con un archivio TAR.
Ecco, quindi, spiegato perché il formato di archiviazione XAR è stato adottato da Leopard: per come è stato progettato, XAR è molto utile per un veloce ripristino di file cancellati o sovrascritti accidentalmente da un archivio di backup.
Inoltre, cosa non indifferente, vi è anche la possibilità di usare differenti metodi di compressione per ogni file dell’archivio. Per esempio, si potrebbe adottare, per un file di grandi dimensioni, la compressione bzip2, mentre per un piccolo file di testo potrebbe convenire la compressione gzip.
Infine, ogni archivio XAR, è costituito da 3 parti:
- Header binario: contiene informazioni circa il documento XML, tipo se il file è compresso, qual è il suo hash, quale algoritmo di hash è stato usato, etc.
- Documento XML (TOC: Table Of Contents): è la parte importante poiché contiene tutte le informazioni sui file contenuti nell’archivio. L’uso dell’XML permette al formato di essere molto estensibile e di poter essere gestito dagli strumenti software già esistenti tramite piccole modifiche degli stessi.
- Heap (il “mucchio” in inglese): contiene file compressi singolarmente e altri dati (come attributi, resource forks, etc.) che si susseguono linearmente. L’offset, la lunghezza e il tipo di compressione usati per immagazzinare il singolo file nell’heap sono contenuti nell’header del file XML.
Questa struttura flessibile permette, come potete intuire, di gestire informazioni aggiuntive e arbitrarie dei file contenuti (metadati) come i tag dei file MP3 o informazioni EXIF in un file JPEG. Addirittura potrebbe essere possibile immagazzinare un interprete di script o delle librerie, direttamente dentro al singolo file dello script.
Come avete visto, le caratteristiche peculiari del formato XAR lo rendono uno strumento davvero unico, una piattaforma conveniente su cui costruire strumenti come un formato di packing.
Altre risorse su internet
Se siete convinti come me, che, prima o poi, questo formato di archiviazione si diffonderà molto velocemente, potete approfondire il discorso leggendo l’articolo di Rob Braun: Why xar is interesting e scaricare i sorgenti dal sito di Google Code che ha dato una casa al progetto XAR che rischiava di perdersi dopo la chiusura di OpenDarwin.org nel 2007 (è possibile ancora trovare un mirror della storica comunità della piattaforma Darwin) che si è nel frattempo trasformata in PureDarwin.
Commenti Recenti