lzip, questo sconosciuto compressore dati.
Lzip è un programma di compressione dati senza perdita, basato sull' algoritmo LZMA (l'algoritmo di 7zip), Implementa un controllo di integrità file molto sicuro e un'interfaccia utente e comandi simile a quella di gzip o bzip2 in ambito unix/linux. Nelle distribuzioni Linux più diffuse, lzip può essere installato con semplicità, dai repository dei pacchetti ufficiali.
La suite di programmi lzip è stata scritta in C++ e C da Antonio Diaz Diaz e viene distribuita come software libero secondo i termini della versione 2 o successiva della GNU General Public License (GPL).
Lzip decomprime velocemente quasi come gzip e comprime meglio di bzip2, il che lo rende adatto per la distribuzione di software e l'archiviazione dei dati a lungo termine.
Il formato di file lzip (.lz) è una versione migliorata del deprecato e non sicuro formato di file “lzma-alone” (.lzma) della suite lzma-sdk.
TEST Qui potete trovare alcuni test che dimostrano come lzip possa sostituire egregiamente gzip e bzip2 per la distribuzione di software e di archiviazione dei dati.
Lzip implementa una versione semplificata dell'algoritmo LZMA (algoritmo di Lempel-Ziv-Markov). Questa elevata compressione di LZMA deriva dalla combinazione di due basilari e ben testate idee sulla compressione dati: dizionari scorrevoli (LZ77) e modelli di Markov (l'idea usata da ogni algoritmo di compressione che utilizza la codifica a intervalli o un codificatore ad entropia di orderine 0 nel suo ultimo stadio), con separazione dei contesti in base a ciò per cui i bit vengono utilizzati.
Per massimizzare l'interoperabilità con sistemi a 32 bit, la dimensione massima del dizionario utilizzabile è 512 MiB in modo che qualsiasi file creato con lzip possa essere decompresso senza problemi su macchine a 32 bit. Lzip fornisce un controllo accurato e robusto dell'integrità a 3 fattori. Lzip può comprimere alla stessa velocità di gzip (lzip -0) o comprimere la maggior parte dei file più di bzip2 (lzip -9). La velocità di decompressione è intermedia tra gzip e bzip2. Lzip è migliore di gzip e bzip2 dal punto di vista del recupero dati. Lzip è stato progettato, scritto e testato con grande cura per sostituire gzip e bzip2 come formato di compressione standard ad uso generale.
Le idee incarnate in lzip sono dovute (quantomeno) alle seguenti persone: Abraham Lempel e Ziv Jacob (per l'algoritmo LZ), Andrey Markov (per la definizione delle catene di Markov), G.N.N. Martin (per la definizione della codifica a intervalli), Igor Pavlov (per aver messo insieme tutto questo in LZMA e in 7zip), Julian Seward (per la CLI di bzip2), ad Antonio Diaz Diaz per aver rielaborato il tutto e creato di fatto Lzip.
Compressione Parallela
lzip ha due interfacce per la compressione parallela
plzip comprime qualsiasi file in modo parallelo e multi processore. Usarlo con tar non è indicato, poiché il programma tar convenzionale ha bisogno dell'intero flusso dati, prima di poter individuare un determinato file per la decompressione, con conseguente estrazione non parallela.
tarlz combina tar e lzip in un archiviatore parallelo molto simile agli archiviatori moderni come RAR o 7-Zip. I blocchi di compressione solidi si allineano con i limiti e gli indici del file tar, quindi l'estrazione di un file richiede solo la decompressione di quel particolare membro o blocco.
Lziprecover
Lziprecover è uno strumento di recupero dati danneggiati e decompressore per i file nel formato lzip.
Storia
7-Zip è stato rilasciato nel 2000; uno strumento che utilizza LZMA è diventato disponibile per la prima volta su sistemi operativi simili a Unix nel 2004, quando è stato rilasciato un port della versione da riga di comando di 7-Zip (p7zip).
Nel 2004 divenne disponibile LZMA SDK, che includeva il programma chiamato “lzma_alone”, meno di un anno dopo, Lasse Collin pubblicò LZMA Utils, che inizialmente consisteva solo in una serie di script wrapper che implementavano un'interfaccia simile a gzip per lzma_alone.
Nel 2008, Antonio Diaz Diaz ha rilasciato lzip, che utilizza un formato contenitore con checksum e magicnumber, invece del flusso di dati grezzi LZMA, fornendo una soluzione completa in stile Unix per l'utilizzo di LZMA.
Tuttavia, LZMA-Utils di Lasse Collin è stato esteso nel tempo, Lasse Collin fondò “The Tukaani Project” in seguito grazie al supporto economico del progetto GNU, nacque XZ-Utils, uno strumento con funzionalità simili a quelle di lzip.
XZ-Utils, a differenza di lzip si basa su LZMA2 e sul formato contenitore XZ. Questo formato divenne parte del progetto GNU e adottato in maniera pesante come metodo di compressione per la distribuzione del codice sorgente.
L'adozione di XZ-Utils e del formato XZ da parte del progetto GNU, resero meno popolare lzip, rendendo di fatto XZ, XZ-Utils il “vincitore” del formato lzma2 su linux.
Alla fine lzip, seppur un progetto senza fondi economici e con bassa popolarità, con un solo sviluppatore (Antonio Diaz Diaz), continua fino ad oggi 2024 a crescere e svilupparsi mantenendo una resilienza davvero encomiabile, tanto da ritagliarsi nel tempo, un piccolo gruppo di estimatori delle sue qualità; per la robustezza, e semplicità del codice sorgente, è utilizzato per scopi didattici in alcune università, le specifiche del contenitore e del formato sono pubblicamente disponibili e certificate da Internet Engineering Task Force (IETF), un pregio che XZ-Utils non è riuscito a conquistarsi, visto l'approccio “macchinoso” e confusionario pesante nel suo codice sorgente.
Per sbeffeggiare la mancata considerazione del progetto GNU nei riguardi di lzip, l'autore considera scherzosamente lzip come non-GNU, al punto di acquistarne un dominio, dove è ospitato il progetto.
Supporto
GNU Autotools supporta lzip. L'aggiunta di dist-lzip a AMINITAUTOMAKE creerà tarball lzip. Le versioni 1.23 e successive di GNU TAR utilizzano lzip per gestire i file compressi in modo trasparente. Lo strumento di archiviazione di GNOME, Archive Manager, supporta i file lzip. libarchiver e bsd-tar supportano il formato lzip.
Applicazioni
La distribuzione Linux Dragora GNU/Linux-Libre utilizza lzip per i suoi pacchetti software. Lzip viene utilizzato per distribuire il database del fuso orario di IANA. Il Parlamento Europeo pubblica i dump completi del suo database in formato JSON compresso con lzip. Lzip è utilizzato nel Planetary Data System (PDS) della NASA.
git
https://gitea.it/fenix/lzip/releases/tag/1.24
https://gitea.it/fenix/lzip/releases/download/1.24/lzip-1.24_surce.tar.gz
riferimenti e bibliografia
https://lzip.nongnu.org/manual/lzip_manual.html
https://lzip.nongnu.org/lzip_benchmark.html
https://lzip.nongnu.org/xz_inadequate.html
https://lzip.nongnu.org/tarlz.html
https://lzip.nongnu.org/lzlib.html
https://lzip.nongnu.org/lziprecover.html
https://www.nongnu.org/zutils/zutils.html
https://en.wikipedia.org/wiki/Lzip
https://www.gnu.org/software/automake/manual/html_node/List-of-Automake-options.html
https://datatracker.ietf.org/doc/html/draft-diaz-lzip
https://www.nongnu.org/lzip/manual/lzip_manual.html#File-format
http://download.savannah.gnu.org/releases/lzip/
http://lists.gnu.org/mailman/listinfo/lzip-bug
#unolinux #lzip #LZMA #compressione #compressionedati #opensurce #archivio #tutorial #guidainformatica