Format d'archive XZ
XZ est un format d’archive à haute compression principalement utilisé pour compresser des fichiers uniques, offrant une efficacité de compression supérieure et une compatibilité open source. Développé dans le cadre de XZ Utils, ce format est connu pour son utilisation de l’algorithme de compression LZMA2, qui permet d’atteindre des taux de compression élevés tout en conservant des vitesses de décompression raisonnables. Les archives XZ sont largement utilisées dans la distribution de progiciels, en particulier dans les systèmes d’exploitation de type Unix tels que Linux.
Informations générales sur les archives XZ
Les archives XZ sont conçues pour fournir une compression efficace en mettant l’accent sur la réduction de la taille des fichiers pour le stockage et la distribution. Le format utilise l’algorithme LZMA2, qui combine la compression par dictionnaire et le codage entropique, ce qui le rend très efficace pour compresser des fichiers volumineux. Les archives XZ contiennent généralement un seul fichier compressé, mais elles peuvent être combinées avec d’autres outils comme tar pour compresser des répertoires entiers. Le format XZ est souvent utilisé dans la distribution de logiciels, la sauvegarde de données et l’archivage, en particulier dans l’écosystème Linux, où il est devenu un standard pour l’empaquetage des mises à jour de logiciels et de systèmes.
Informations sur l'historique XZ
- 2005: Le format XZ commence son développement dans le cadre du projet XZ Utils, qui visait à créer un successeur plus efficace à l’ancien format LZMA.
- 2009: XZ Utils est officiellement lancé, introduisant le format XZ comme nouveau standard pour les besoins de haute compression.
- 2010: XZ commence à gagner en popularité au sein de la communauté Linux, devenant rapidement le format préféré pour compresser les progiciels et les archives système.
- 2011: Les principales distributions Linux, dont Debian et Arch Linux, ont commencé à adopter XZ comme format de compression par défaut pour leurs référentiels de paquets.
- 2014: L’utilisation de XZ s’étend au-delà de Linux, devenant populaire pour la distribution de logiciels multiplateformes, en particulier pour les applications nécessitant des taux de compression élevés.
- 2020: XZ reste largement utilisé dans le packaging de logiciels, le stockage et la distribution de données, en particulier dans les environnements où une compression efficace est essentielle.
Structure des archives XZ
Le format d’archive XZ est conçu pour la compression d’un seul fichier et utilise une structure simple pour atteindre des taux de compression élevés. Voici un aperçu de la structure d’une archive XZ:
- En-tête: l’en-tête contient des métadonnées sur l’archive XZ, y compris la version du format, les indicateurs et toutes les extensions facultatives utilisées. Il indique également la présence de sommes de contrôle pour l’intégrité des données.
- Flux de données compressé: le cœur de l’archive XZ est le flux de données compressé. Cette section contient les données réelles du fichier, compressées à l’aide de l’algorithme LZMA2. Le flux de données est divisé en blocs, permettant une compression et une décompression efficaces. Chaque bloc peut être décompressé indépendamment, ce qui facilite la récupération des données même si l’archive est partiellement corrompue.
- Pied de page: le pied de page comprend une somme de contrôle CRC32 qui vérifie l’intégrité de l’archive. Il marque également la fin du flux de données compressé et peut contenir des informations supplémentaires comme un index de blocs pour un accès rapide.
Méthodes de compression XZ
Le format XZ repose principalement sur l’algorithme de compression LZMA2, connu pour son taux de compression élevé et sa vitesse de décompression raisonnable. Voici un aperçu plus approfondi des méthodes de compression associées à XZ:
- LZMA2: Il s’agit de la méthode de compression par défaut et unique utilisée par les archives XZ. LZMA2 s’appuie sur l’algorithme LZ77 et intègre un codage entropique avancé, ce qui le rend très efficace pour compresser des fichiers volumineux. Il offre des paramètres de compression réglables, permettant aux utilisateurs de donner la priorité à la vitesse ou au taux de compression en fonction de leurs besoins.
- Filtres: en plus de LZMA2 , XZ prend en charge divers filtres facultatifs qui peuvent être appliqués avant la compression pour réduire davantage la taille du fichier. Ceux-ci incluent le codage delta, utile pour compresser des données comportant de petites modifications répétées, et BCJ (Branch/Call/Jump), qui optimise la compression du code exécutable en transformant certaines instructions en formes plus compressibles.
- Sommes de contrôle CRC32 et SHA-256: bien qu’il ne s’agisse pas de méthodes de compression en soi, les archives XZ utilisent les sommes de contrôle CRC32 pour les contrôles d’intégrité et prennent éventuellement en charge SHA-256 pour une vérification améliorée des données, garantissant que les données compressées n’ont pas été corrompues ou falsifiées.
.xz Opérations prises en charge
Aspose.Zip offre une prise en charge complète pour travailler avec les archives .xz, facilitant ainsi la gestion des fichiers compressés. Voici ce que vous pouvez faire:
- Extraction complète: Extrayez facilement tous les fichiers d’une archive .xz, en préservant l’intégrité et la structure du contenu d’origine.
- Extraction sélective: Ciblez des fichiers spécifiques dans une archive .xz, permettant une récupération précise des données ou une décompression sélective basée sur les noms de fichiers ou d’autres critères.
- Compression des données: Créez des archives .xz à partir de fichiers et de répertoires, en utilisant la méthode de compression efficace LZMA2 pour réduire considérablement la taille des fichiers.
- Paramètres de compression personnalisés: Ajustez les niveaux de compression et d’autres paramètres pour équilibrer la vitesse de compression et la taille du fichier, en adaptant le processus à vos besoins spécifiques.
Structure du fichier .XZ
Le format de fichier .xz est principalement utilisé pour la compression et le conditionnement des données. Il utilise l’algorithme LZMA2 pour atteindre des taux de compression élevés. Voici un aperçu de la structure d’une archive .xz:
- En-tête du flux:
- Magic Bytes: Les 6 premiers octets (FD 37 7A 58 5A 00) identifient le fichier comme une archive .xz.
- Indicateurs de flux: inclut des détails tels que la taille du bloc et les options de compression.
- En-tête de bloc:
- Taille du bloc: Indique la taille du bloc qui suit.
- Méthode de compression: Précise l’algorithme utilisé (généralement LZMA2).
- Chaînes de filtres: détaille tous les filtres supplémentaires appliqués avant ou après la compression.
- Blocs de données compressés:
- Données: les données réelles compressées à l’aide de l’algorithme LZMA2.
- CRC32: Une somme de contrôle utilisée pour vérifier l’intégrité des données compressées.
- Section d’index:
- Données d’index: fournit des décalages pour chaque bloc et la taille non compressée, permettant un accès aléatoire au sein du flux compressé.
- Index CRC32: Assure l’intégrité de la section index.
- Pied de page du flux:
- Stream Flags: répète les indicateurs de flux de l’en-tête à des fins de validation.
- Taille arrière: taille de la section d’index, permettant le parcours inverse du fichier.
- Magic Bytes: Le fichier se termine par une séquence de 2 octets (59 5A) pour signifier la fin de l’archive .xz.
- Métadonnées facultatives:
- Certaines archives .xz peuvent inclure des métadonnées supplémentaires pour des fonctionnalités spéciales ou des fonctionnalités étendues, telles que des filtres personnalisés ou le cryptage.
Popularité du format XZ
Le format de fichier .xz a gagné en popularité, en particulier dans les communautés Linux et open source, en raison de son taux de compression élevé et de son utilisation efficace des ressources. Il est largement utilisé pour compresser des progiciels, distribuer du code source et archiver de grands ensembles de données. L’ensemble d’outils XZ Utils offre une prise en charge robuste pour la création, l’extraction et la gestion de fichiers .xz sur diverses plates-formes, notamment Linux, macOS et Windows. Bien qu’il ne soit pas aussi largement adopté dans les environnements Windows que ZIP ou CAB , .xz est apprécié pour son équilibre entre efficacité de compression et performances, ce qui en fait un choix privilégié pour les développeurs et les administrateurs système. De plus, .xz est intégré à de nombreux systèmes de gestion de paquets, tels que APT de Debian et Pacman d’Arch Linux, renforçant ainsi son rôle dans l’écosystème de distribution de logiciels.
Exemples d'utilisation des archives XZ
Cette section fournit des exemples de code montrant comment compresser et décompresser des archives XZ à l’aide de C# et Java. Ces exemples utilisent des bibliothèques comme Aspose.Zip pour C# et la classe XzArchive intégrée (en fonction de l’environnement Java) pour interagir avec les fichiers XZ.
Compress XZ File via C#
using (FileStream xzFile = File.Open("data.bin.xz", FileMode.Create))
{
using (FileStream source = File.Open("data.bin", FileMode.Open, FileAccess.Read))
{
using (var archive = new XzArchive(Aspose.Zip.Xz.Settings.XzArchiveSettings.FastestSpeed))
{
archive.SetSource(source);
archive.Save(xzFile);
}
}
}
Open XZ Archive via C#
using (var archive = new XzArchive("data.bin.xz"))
{
archive.Extract("data.bin");
}
Compress XZ File via C#
try (FileOutputStream xzFile = new FileOutputStream("data.bin.xz")) {
try (FileInputStream source = new FileInputStream("data.bin")) {
try (XzArchive archive = new XzArchive(XzArchiveSettings.getFastestSpeed())) {
archive.setSource(source);
archive.save(xzFile);
}
}
} catch (IOException ex) {
}
Open XZ Archive via Java
try (XzArchive archive = new XzArchive("data.bin.xz")) {
archive.extract("data.bin");
}
Informations Complémentaires
Les gens ont demandé
1. Le .xz est-il pris en charge sur tous les systèmes d’exploitation ?
Bien que .xz soit le plus couramment utilisé dans les environnements Linux, il est pris en charge sur tous les principaux systèmes d’exploitation. Des outils tels que XZ Utils sont disponibles pour Windows et macOS, et des outils multiplateformes tels que 7-Zip prennent également en charge Fichiers .xz.
2. Quels sont les avantages de l’utilisation des fichiers XZ ?
Les fichiers XZ offrent plusieurs avantages, notamment des taux de compression élevés, une utilisation efficace des ressources système et une compatibilité multiplateforme. Ils sont couramment utilisés pour archiver de grands ensembles de données, distribuer des progiciels et sauvegarder des données.
3. Puis-je compresser plusieurs fichiers dans une seule archive .xz ?
Contrairement aux formats comme ZIP ou [TAR](/zip/fr/la plupart -common-archives/what-is-tar/), .xz est généralement utilisé pour compresser un seul fichier. Si vous souhaitez compresser plusieurs fichiers, vous devez d’abord les archiver dans un seul fichier (à l’aide d’une API Aspose.Zip pour créer un fichier .tar ), puis compressez l’archive à l’aide de .xz, ce qui donne un fichier .tar.xz.