Page d'accueil » comment » Quel est l'avantage d'utiliser le format de fichier Tar aujourd'hui?

    Quel est l'avantage d'utiliser le format de fichier Tar aujourd'hui?


    Le format d'archivage de tar est, dans les années de calcul, un véritable Mathusalem, mais il est encore très utilisé aujourd'hui. Ce qui rend le format tar si utile longtemps après sa création?

    La séance de questions et réponses d'aujourd'hui nous est offerte par SuperUser, une sous-division de Stack Exchange, un groupe de sites Web de questions-réponses dirigé par la communauté..

    La question

    Le lecteur de SuperUser, MarcusJ, s’interroge sur le format de tar et pourquoi nous l’utilisons encore après toutes ces années:

    Je sais que tar a été créé pour les archives sur bande, mais nous disposons aujourd'hui de formats de fichiers d'archives qui agrègent les fichiers et effectuent une compression dans le même format de fichier logique..

    Des questions:

    • Existe-t-il une perte de performance lors des étapes d'agrégation / compression / décompression pour l'utilisation de tar encapsulé dans gzip ou bzip2, par rapport à l'utilisation d'un format de fichier qui effectue l'agrégation et la compression dans la même structure de données? Supposons que la durée d'exécution du compresseur comparé soit identique (par exemple, gzip et Deflate sont similaires).
    • Existe-t-il des fonctionnalités du format de fichier tar que les autres formats de fichier, tels que .7z et .zip, ne possèdent pas?
    • Etant donné que tar est un ancien format de fichier et que de nouveaux formats de fichiers existent aujourd'hui, pourquoi tar (qu'il soit encapsulé dans gzip, bzip2 ou même le nouveau xz) est encore si largement utilisé aujourd'hui sur GNU / Linux, Android, BSD et autres systèmes d'exploitation, pour les transferts de fichiers, les sources de programmes et les téléchargements binaires, et parfois même en tant que format de gestionnaire de paquets?

    C'est une question parfaitement raisonnable. Tant de choses ont changé dans le monde informatique au cours des trente dernières années, mais nous utilisons toujours le format tar. C'est quoi l'histoire?

    La réponse

    Allquixotic, contributeur de SuperUser, donne un aperçu de la longévité et des fonctionnalités du format tar:

    Partie 1: Performance

    Voici une comparaison de deux flux de travail distincts et de ce qu'ils font.

    Vous avez un fichier sur le disque blah.tar.gz ce qui correspond, par exemple, à 1 Go de données compressées par gzip qui, lorsqu'elles sont décompressées, occupent 2 Go (soit un taux de compression de 50%).

    La manière dont vous créeriez ceci, si vous archiviez et compressiez séparément, serait la suivante:

    tar cf fichiers blah.tar… 

    Cela se traduirait par blah.tar qui est une simple agrégation de la des dossiers…  sous forme non compressée.

    Alors tu ferais

    gzip blah.tar 

    Cela lirait le contenu de blah.tar depuis le disque, compressez-les via l'algorithme de compression gzip, écrivez le contenu sur blah.tar.gz, puis dissociez (supprimez) le fichier blah.tar.

    Maintenant, décompressons!

    Voie 1

    Tu as blah.tar.gz, D'une façon ou d'une autre.

    Vous décidez de courir:

    gunzip blah.tar.gz 

    Cette volonté

    • LISEZ le contenu compressé de 1 Go de blah.tar.gz.
    • TRAITEZ les données compressées à travers le gzip décompresseur en mémoire.
    • Au fur et à mesure que la mémoire tampon se remplit avec «un bloc» de données, ÉCRIVEZ les données non compressées dans le fichier.blah.tar sur le disque et répéter jusqu'à ce que toutes les données compressées soient lues.
    • Dissocier (supprimer) le fichier blah.tar.gz.

    Maintenant vous avez blah.tar sur le disque, qui est décompressé mais contient un ou plusieurs fichiers, avec une surcharge de structure de données très faible. La taille du fichier est probablement quelques octets plus grande que la somme de toutes les données du fichier serait.

    Vous courez:

    tar xvf blah.tar 

    Cette volonté

    • LISEZ les 2 Go de contenu de données non compressé de blah.tar et le le goudron structures de données du format de fichier, y compris des informations sur les autorisations de fichier, les noms de fichier, les répertoires, etc..
    • ECRIVEZ sur disque les 2 Go de données plus les métadonnées. Cela implique: traduire les informations de structure de données / métadonnées en créant de nouveaux fichiers et répertoires sur disque, selon le cas, ou en réécrivant des fichiers et répertoires existants avec de nouveaux contenus de données.

    Le total des données que nous LIS du disque dans ce processus était de 1 Go (pour gunzip) + 2 Go (pour le goudron) = 3 Go.

    Le total des données que nous A ÉCRIT sur le disque dans ce processus était de 2 Go (pour gunzip) + 2 Go (pour les fichiers tar) + quelques octets pour les métadonnées = environ 4 Go.

    Voie 2

    Tu as blah.tar.gz, D'une façon ou d'une autre.

    Vous décidez de courir:

    tar xvzf blah.tar.gz 

    Cette volonté

    • LISEZ le contenu compressé de 1 Go de blah.tar.gz, un bloc à la fois, en mémoire.
    • TRAITEZ les données compressées à travers le gzip décompresseur en mémoire.
    • Au fur et à mesure que la mémoire tampon se remplit, tuyau ces données, en mémoire, à travers le le goudron analyseur de format de fichier, qui lira les informations sur les métadonnées, etc. et les données de fichier non compressées.
    • Comme la mémoire tampon se remplit dans le le goudron analyseur de fichiers, il écrit les données non compressées sur le disque en créant des fichiers et des répertoires et en les remplissant avec le contenu non compressé.

    Le total des données que nous LIS de disque dans ce processus était 1 Go de données compressées, période.

    Le total des données que nous A ÉCRIT sur le disque dans ce processus était 2 Go de données non compressées + quelques octets pour les métadonnées = environ 2 Go.

    Si vous remarquez, la quantité d'E / S de disque dans Voie 2 est identique au disque I / O effectué par, par exemple, le Zip *: français ou7-Zip programmes, en tenant compte des différences de taux de compression.

    Et si le taux de compression vous préoccupe, utilisez le Xz compresseur à encapsuler le goudron, et vous avez l'archive TAR de LZMA2, qui est aussi efficace que l'algorithme le plus avancé disponible pour 7-Zip :-)

    Partie 2: Caractéristiques

    le goudron stocke les autorisations UNIX dans ses métadonnées de fichier. Il est très bien connu et testé pour compacter avec succès un répertoire avec toutes sortes d'autorisations différentes, des liens symboliques, etc. Il existe plusieurs cas où il peut être nécessaire d'insérer un groupe de fichiers dans un seul fichier ou flux, mais pas nécessairement le compresser (bien que la compression soit utile et souvent utilisée).

    Partie 3: Compatibilité

    De nombreux outils sont distribués sous forme source ou binaire sous la forme de fichiers .tar.gz ou .tar.bz2 car il s’agit d’un format de fichier «plus petit commun dénominateur»: comme la plupart des utilisateurs Windows ont accès aux décompresseurs .zip ou .rar, la plupart des installations Linux, même les plus élémentaires auront au moins accès à tar et à gunzip, quel que soit leur âge ou leur finesse. Même les firmwares Android ont accès à ces outils.

    Les nouveaux projets ciblant des publics utilisant des distributions modernes peuvent très bien être distribués dans un format plus moderne, tel que .tar.xz (utilisant le format de compression Xz (LZMA), qui compresse mieux que gzip ou bzip2), ou .7z, similaire à les formats de fichier Zip ou Rar dans la mesure où il compresse et spécifie une présentation pour encapsuler plusieurs fichiers dans un seul fichier.

    Vous ne voyez pas que .7z soit utilisé plus souvent pour la même raison que la musique ne soit pas vendue dans les magasins de téléchargement en ligne dans de nouveaux formats comme Opus ou la vidéo dans WebM. Compatibilité avec les utilisateurs de systèmes anciens ou très basiques.


    Avez-vous quelque chose à ajouter à l'explication? Sound off dans les commentaires. Voulez-vous lire plus de réponses d'autres utilisateurs de Stack Exchange doués en technologie? Découvrez le fil de discussion complet ici.