gzip: lo standard di Internet
Nel 1992, Jean-loup Gailly e Mark Adler sviluppano gzip (GNU zip) come sostituto libero del compressore compress, che era gravato da brevetti sull’algoritmo LZW.
gzip si basa sull’algoritmo Deflate, una combinazione di LZ77 e codifica di Huffman, lo stesso che diventerà il cuore del formato ZIP:
- Compressione rapida ed efficace, ottimizzata per i sistemi UNIX.
- Formato .gz destinato a comprimere un singolo file, spesso usato insieme a tar per creare archivi multipli (.tar.gz).
- Standard libero, adottato dalla GNU Foundation.
gzip
gzip diventa presto lo standard di Internet: il protocollo HTTP/1.1 lo integra come metodo ufficiale di compressione per le pagine web. Ancora oggi, la maggioranza dei siti web del mondo usa gzip (o derivati come brotli) per ridurre il traffico.
bzip2: l’era della compressione ad alte prestazioni
Sviluppato da Julian Seward, bzip2 appare nel 1996 con l’obiettivo di superare gzip in termini di rapporto di compressione.
Il cuore è l’algoritmo Burrows-Wheeler Transform (BWT) combinato con codifica di Huffman: molto efficiente, anche se più lento:
- Rapporto di compressione superiore a gzip, soprattutto per file testuali.
- Estensione .bz2, anch’essa spesso abbinata a tar (.tar.bz2).
- Software libero, rilasciato con licenza open source.
Negli anni 2000, bzip2 diventa comune nelle distribuzioni Linux per pacchetti e sorgenti. È amato in ambito accademico e tra sviluppatori, anche se la sua lentezza rispetto a gzip ne limita l’uso nei sistemi ad alte prestazioni.
Parallel bzip2
xz: la generazione moderna
Alla fine degli anni 2000, con processori più potenti e file sempre più grandi, si afferma un nuovo formato: xz, introdotto nel 2009 e basato sull’algoritmo LZMA2 di Igor Pavlov.
Il formato è sviluppato come parte del progetto XZ Utils, per offrire una compressione open e potente su sistemi UNIX/Linux:
- Compressione superiore a bzip2 e paragonabile o migliore di 7z.
- Supporto a file molto grandi (oltre i limiti di gzip e bzip2).
- Estensione .xz, tipica delle distribuzioni Linux moderne (.tar.xz).
Oggi xz è ampiamente usato nelle distribuzioni Linux per pacchetti e kernel sorgenti, grazie al suo equilibrio tra compressione, velocità e supporto open.
xz utils