# XZ Utils

XZ Utils (anciennement LZMA Utils) est un ensemble de logiciels libres de compression sans perte en ligne de commande, incluant les programmes lzma et xz, pour les systèmes d'exploitation de type Unix et, à partir de la version 5.0, Microsoft Windows. Pour la compression/décompression, l'algorithme LZMA est utilisé. XZ Utils a commencé comme un port Unix du LZMA-SDK d'Igor Pavlov, adapté aux environnements Unix.

## Fonctionnalités

Dans la plupart des cas, xz atteint des taux de compression plus élevés que ses concurrents gzip et bzip2. La vitesse de décompression est supérieure à celle de bzip2, mais inférieure à celle de gzip. La compression peut être beaucoup plus lente que gzip, et est plus lente que bzip2 pour des niveaux de compression élevés. XZ Utils est donc plus compétitif lorsqu'un fichier compressé sera utilisé plusieurs fois$^,$.
XZ Utils se compose de deux composants principaux :
* xz, un utilitaire de compression en ligne de commande, analogue à gzip
* liblzma, une bibliothèque offrant une API similaire à zlib
Divers raccourcis de commandes existent, tels que lzma (pour xz --format=lzma), unxz (pour xz --decompress ; analogue à gunzip) et xzcat (pour unxz --stdout ; analogue à zcat).
XZ Utils peut compresser et décompresser les formats de fichiers xz et lzma, mais comme le format LZMA est désormais obsolète, XZ il utilise par défaut le format xz.

## Usage

Le comportement du logiciel ainsi que les propriétés du format de fichier ont été conçus pour fonctionner de manière similaire à ceux des outils de compression Unix populaires gzip et bzip2.
Tout comme gzip et bzip, xz et lzma ne peuvent compresser que des fichiers (ou flux) uniques en entrée. Ils ne peuvent pas regrouper plusieurs fichiers dans une seule archive – pour cela, on utilise d'abord un programme d'archivage, tel que tar.
Compresser une archive :
Décompresser l'archive :
À partir de la version 1.22, l'implémentation GNU de tar prend en charge de manière transparente les archives compressées avec lzma et xz, en utilisant les commutateurs --xz ou -J pour la compression xz et --lzma pour la compression LZMA.
Créer une archive et la compresser :
Décompresser l'archive et extraire son contenu :
xz prend en charge la compression multi-thread avec l'indicateur -T depuis 2014 et la version 5.2.0.
Depuis la version 5.4.0, la décompression multi-threadée est également implémentée. Elle nécessite plusieurs blocs compressés, créés par l'interface de compression multi-thread.

## Le format xz

Le format xz améliore lzma en autorisant des filtres de prétraitement. Les filtres exacts utilisés sont similaires à ceux utilisés dans 7z, car les filtres de 7z sont disponibles dans le domaine public via le SDK LZMA.

## Développement, licences et adoption

Le développement de XZ Utils a eu lieu dans le cadre de la distribution finlandaise Tukaani, une dérivée de Slackware.
Tout le code source de xz et liblzma a été publié dans le domaine public. La distribution source comprend en outre des scripts facultatifs et un exemple de programme sous licence GPL.
Plus précisément, la liste complète des sources GPL distribuées avec le logiciel XZ Utils comprend :
* une implémentation facultative d'une fonction commune de la libc, getopt (en) (GNU LGPL v2.1)
* un script m4 pour la détection de pthread (GNU GPL v3)
* certains scripts d'encapsulation (xzgrep, etc.) ( GNU GPL v2 )
* l'exemple de programme scanlzma, qui n'est pas intégré au système de build
Les binaires des logiciels xz et liblzma résultants sont du domaine public, à moins que l'implémentation facultative LGPL getopt ne soit incorporée.
Les binaires sont disponibles pour FreeBSD, NetBSD, les systèmes Linux, Microsoft Windows et FreeDOS. Un certain nombre de distributions Linux, notamment Slackware, Ubuntu et Debian, utilisent xz pour compresser leurs paquets (mais plus Fedora ni Arch Linux). L'archive FTP GNU utilise également xz.

## Attaque par porte dérobée

Une grave attaque par porte dérobée, visant par rebond le serveur OpenSSH a été détectée fin mars 2024 par le développeur allemand Andres Freund. Selon de nombreux analystes de sécurité, elle constitue une attaque de la chaîne logistique de Linux d'une envergure encore inégalée.