Che cos'è il formato di file XZ?
.xz è un formato di file di tipo archivio compresso che utilizza il metodo di compressione XZ. Il formato è nativo di XZ Utils, lo strumento software di riferimento sviluppato come parte del Progetto Tukaani (una distribuzione GNU/Linux basata su Slackware).
XZ e TAR
Un archivio .xz può memorizzare solo un singolo flusso compresso e non possiede un proprio albero delle directory. Per questo motivo, i file .xz sono comunemente usati in combinazione con gli archivi TAR - TAR raccoglie i file selezionati in un unico archivio, e l'algoritmo XZ viene poi applicato per la compressione. Il file risultante porta il suffisso .tar.xz o .txz.
Algoritmo di compressione LZMA2
La compressione XZ si basa sull'algoritmo LZMA2 - un'evoluzione dello standard LZMA originale. Consente rapporti di compressione elevati e si traduce in dimensioni dei file significativamente ridotte: gli archivi XZ sono tipicamente più piccoli del 30% rispetto a GZIP e del 15% rispetto agli archivi BZIP2. XZ offre una compressione lossless (senza perdita) per prevenire qualsiasi perdita di informazioni.
Note aggiuntive
- Rispetto ad altri metodi di compressione, il processo di compressione XZ è piuttosto lento, ma la decompressione è significativamente più veloce.
- Gli archivi XZ sono ampiamente utilizzati per distribuire pacchetti software Linux, inclusi Slackware e la maggior parte dei tarball dei sorgenti del kernel.
- Il formato
.xzsi identifica con l'header magic fisso di 6 byteFD 37 7A 58 5A 00e verifica l'integrità utilizzando checksum CRC64 per blocco e per flusso per impostazione predefinita (sono supportati anche CRC32 e SHA-256). - All'inizio del 2024, è stato scoperto che le versioni 5.6.0 e 5.6.1 di XZ Utils contenevano una backdoor inserita deliberatamente (CVE-2024-3094) nella libreria
liblzma. La specifica del formato di file.xznon è interessata; solo quei tarball di build specifici sono stati compromessi.
Sicurezza e incolumità
RISCHIO: LOWIl formato .xz non contiene codice eseguibile e non può essere «eseguito»; il rischio deriva solo da ciò che è contenuto all'interno (estrarre prima di fidarsi). Si noti l'incidente della supply-chain del 2024 (CVE-2024-3094): una backdoor è stata inserita nella build liblzma di xz 5.6.0/5.6.1 distribuita in alcuni canali di test delle distro - ciò influisce sui binari dello strumento/libreria, non sui file .xz ricevuti. Attenzione ai falsi siti di download di «estrattori xz» che includono adware; utilizzare 7-Zip/PeaZip dalle loro pagine ufficiali.
Dettagli del formato
in sintesiProgrammi che aprono file XZ
tar -xf file.tar.xz (bsdtar di macOS gestisce xz) o installare xz tramite Homebrew. xz -d file.xz per decomprimere, o tar -xf file.tar.xz per i tarball. Preinstallato sulla maggior parte delle distro. Dettagli tecnici
specifiche approfondite| Algoritmo di compressione | LZMA2 (evoluzione di LZMA); catena di filtri opzionale con filtri delta e BCJ (branch/call/jump) |
| Struttura del contenitore | Header del flusso → uno o più blocchi compressi → indice dei blocchi → footer del flusso |
| Magic header del flusso | FD 37 7A 58 5A 00 - 6 byte fissi all'offset 0 |
| Magic footer del flusso | 59 5A («YZ») - sempre gli ultimi 2 byte di ogni flusso .xz |
| Ordine dei byte | Little-endian |
| Tipo MIME | application/x-xz |
| Controllo integrità | Checksum per blocco e per flusso; predefinito CRC64; supportati anche CRC32 e SHA-256 |
| Crittografia | Nessuna - nessuna crittografia integrata; crittografare i dati prima della compressione se necessario |
| Archiviazione file | Solo flusso compresso singolo; nessun nome file o albero delle directory (combinare con .tar per archivi multi-file) |
| Codifica | Binario |
| Dimensione compressa tipica | Da decine di KB a diversi GB; i tarball dei sorgenti del kernel Linux sono comunemente di 50-200 MB |
| Rapporto di compressione rispetto alle alternative | Tipicamente ~30% più piccolo di gzip e ~15% più piccolo di bzip2 sul codice sorgente |
| Nota sulla sicurezza | CVE-2024-3094: i tarball di XZ Utils 5.6.0/5.6.1 contenevano una backdoor in liblzma; la specifica del formato di file .xz non è interessata |
| Supporto piattaforma | Linux, BSD, macOS, Windows (tramite XZ Utils, 7-Zip, PeaZip, NanaZip, The Unarchiver) |
| Rilasciato | 2009 (XZ Utils 4.999.x / 5.0; format finalized 2009) |
| Ultima versione | XZ file format 1.0.4 (2009); XZ Utils 5.6.x toolchain |
| Standard aperto | Sì · royalty-free |
| Specifica | tukaani.org |
Conversioni XZ
Domande e risposte della community
chiesto dagli utentiAncora nessuna domanda - sii il primo a chiedere informazioni sui file XZ.
Domande frequenti
Come si apre un file .xz su Windows?
Qual è la differenza tra .xz e .tar.xz?
Il formato .xz è migliore di .gz o .zip?
Il formato di file xz è influenzato dalla backdoor xz (CVE-2024-3094)?
Come si decomprime .xz su Linux?
xz -d file.xz per ottenere il file originale, oppure tar -xf file.tar.xz per scompattare un tarball. xz è preinstallato sulla maggior parte delle distribuzioni.