bzip2

software di compressione

bzip2 è un programma open source di compressione di dati basato sulla trasformata di Burrows-Wheeler.[1][2] Si affida a utility esterne separate per attività come la gestione di più file, la crittografia e la divisione degli archivi.[2]

bzip2
Estensione.bz2
Magic numberBZh
Tipo MIMEapplication/x-bzip2
Uniform Type Identifier (UTI)public.bzip2-archive
Type code (Mac OS)public.archive.bzip2
SviluppatoreMark Wielaard, Federico Mena, Micah Snyder
ProprietarioJulian Seward
LicenzaLicenza zlib modificata
1ª pubblicazione18 luglio 1996
Ultima versione1.0.8 (13 luglio 2019)
TipoCompressione dei dati
CompressioneLossless
Formato aperto?
Sito websourceware.org/bzip2/

bzip2, è sviluppato da Julian Seward e distribuito a partire dal 1996. L'ultima versione è la 1.0.8 ed è stata pubblicata il 13 luglio 2019 con una licenza libera.[3]

Descrizione

modifica

bzip2 produce, nella maggior parte dei casi, file compressi molto piccoli rispetto a gzip o ZIP, tuttavia ha prestazioni inferiori a quest'ultimi siccome risulta leggermente più lento [4].

Nonostante ciò, con il costante effetto della legge di Moore, che rende il tempo-macchina sempre inferiore e meno importante, i metodi di elevata compressione come bzip2 sono diventati più popolari. Secondo l'autore, bzip2 ha un'efficienza di compressione inferiore del 10-15% rispetto a quella della famiglia dei compressori basati sull'algoritmo più efficiente, attualmente conosciuto come PPM.

bzip2 usa la trasformata di Burrows-Wheeler per convertire le sequenze di caratteri ricorrenti in stringhe di lettere identiche. In bzip2, i blocchi sono in testo piano e tutti della stessa misura, inoltre sono contrassegnati da sequenze di bit derivate dalla rappresentazione decimale del Pi greco.

Nella versione GNU, bzip2 può essere utilizzato indipendentemente:

bzip2 file

(comprime file)

bzip2 -d file.bz2

(decomprime file.bz2)

oppure può essere utilizzato insieme a tar:

tar cjf archivio.tar.bz2 lista dei file
tar xjf archivio.tar.bz2

rispettivamente per comprimere e decomprimere archivio.tar.bz2 in lista dei file e viceversa. Tuttavia l'integrazione di bzip2 con tar (tramite l'opzione j) è possibile solo nella versione GNU di quest'ultimo, nella versione originale Unix è necessario spezzare il processo da un operatore pipe.

Recupero dati

modifica

bzip2 include uno strumento per il recupero di archivi danneggiati chiamato bzip2recover. Come accennato in precedenza, bzip2 comprime i file in blocchi indipendenti l'uno dall'altro. Se durante la trasmissione di dati si verifica un errore, il file potrebbe risultare danneggiato. Tuttavia, è possibile recuperare dati dai blocchi non danneggiati. Ogni blocco ha una propria stringa di controllo CRC-32 che consente di distinguere i blocchi danneggiati da quelli integri.

bzip2recover accetta un solo argomento in entrata, ovvero il nome del file danneggiato. Il programma cerca i blocchi nel file .bz2, li estrae tutti e li salva numerandoli in ordine. Una volta ottenuti i file-blocco, è possibile aprirli per recuperare i dati.

  1. ^ (EN) bzip2 and libbzip2, su bzip2.
  2. ^ a b Mukherjee e Awan.
  3. ^ (EN) Julian Seward, bzip2 and libbzip2, version 1.0.8, su sourceware.org, 13 luglio 2019.
  4. ^ Programmi di compressione su Linux | Linuxaria, su linuxaria.com. URL consultato il 16 novembre 2023.

Bibliografia

modifica
  • (EN) Amar Mukherjee e Fauzia Awan, Text compression, in Khalid Sayood (a cura di), Lossless Compression Handbook, Academic Press, 2003.

Collegamenti esterni

modifica