Qual è il vantaggio dell'utilizzo del formato di file tar oggi?

Sommario:

Qual è il vantaggio dell'utilizzo del formato di file tar oggi?
Qual è il vantaggio dell'utilizzo del formato di file tar oggi?

Video: Qual è il vantaggio dell'utilizzo del formato di file tar oggi?

Video: Qual è il vantaggio dell'utilizzo del formato di file tar oggi?
Video: JAWS & Word 365 - Scopri tutti i trucchi di accessibilità per revisioni, commenti e condivisione. - YouTube 2024, Aprile
Anonim
 Il formato di archiviazione di tar è, negli anni dell'informatica, un vero Matusalemme ma è ancora oggi in uso pesante. Cosa rende il formato tar così utile a lungo dopo il suo inizio?
Il formato di archiviazione di tar è, negli anni dell'informatica, un vero Matusalemme ma è ancora oggi in uso pesante. Cosa rende il formato tar così utile a lungo dopo il suo inizio?

La sessione di domande e risposte di oggi ci viene fornita per gentile concessione di SuperUser, una suddivisione di Stack Exchange, un raggruppamento di domande e risposte basato sulla comunità.

La domanda

Il lettore SuperUser MarcusJ è curioso del formato tar e del motivo per cui lo stiamo ancora utilizzando dopo tutti questi anni:

I know that tar was made for tape archives back in the day, but today we have archive file formats that both aggregate files and perform compression within the same logical file format.

Questions:

  • Is there a performance penalty during the aggregation/compression/decompression stages for using tar encapsulated in gzip or bzip2, when compared to using a file format that does aggregation and compression in the same data structure? Assume the runtime of the compressor being compared is identical (e.g. gzip and Deflate are similar).
  • Are there features of the tar file format that other file formats, such as.7z and.zip do not have?
  • Since tar is such an old file format, and newer file formats exist today, why is tar (whether encapsulated in gzip, bzip2 or even the new xz) still so widely used today on GNU/Linux, Android, BSD, and other such UNIX operating systems, for file transfers, program source and binary downloads, and sometimes even as a package manager format?

Questa è una domanda perfettamente ragionevole; così tanto è cambiato nel mondo informatico negli ultimi trent'anni, ma stiamo ancora usando il formato tar. Qual è la storia?

La risposta

Collaboratore SuperUser Allquixotic offre alcune informazioni sulla longevità e funzionalità del formato tar:

Part 1: Performance

Here is a comparison of two separate workflows and what they do.

You have a file on disk

blah.tar.gz

vale a dire 1 GB di dati compressi con gzip che, quando non compressi, occupa 2 GB (quindi un rapporto di compressione del 50%).

Il modo in cui lo creeresti, se dovessi eseguire l'archiviazione e la compressione separatamente, sarebbe:

tar cf blah.tar files …

Ciò comporterebbe

blah.tar

che è una semplice aggregazione del

files …

in forma non compressa.

Allora lo faresti

gzip blah.tar

Questo avrebbe letto il contenuto di

blah.tar

dal disco, comprimili tramite l'algoritmo di compressione gzip, scrivi i contenuti in

blah.tar.gz

quindi scollegare (eliminare) il file

blah.tar

Ora, decomprimiamo!

Modo 1

Hai

blah.tar.gz

in un modo o nell'altro.

Decidi di eseguire:

gunzip blah.tar.gz

Questo sarà

  • LEGGI il contenuto dei dati compressi da 1 GB di

    blah.tar.gz

  • PROCESSI i dati compressi attraverso il

    gzip

    decompressore in memoria.

  • Poiché il buffer di memoria si riempie di "un blocco" di dati, WRITE i dati non compressi nel file

    blah.tar

    su disco e ripetere finché non vengono letti tutti i dati compressi.

  • Scollegare (eliminare) il file

    blah.tar.gz

Ora, hai

blah.tar

su disco, che non è compresso ma contiene uno o più file al suo interno, con un sovraccarico di struttura dati molto basso. La dimensione del file è probabilmenteun paio di byte più grande della somma di tutti i dati del file sarebbe.

Tu corri:

tar xvf blah.tar

Questo sarà

  • LEGGI i 2 GB di contenuti di dati non compressi di

    blah.tar

    e il

    tar

    strutture di dati del formato di file, incluse informazioni su permessi di file, nomi di file, directory, ecc.

  • SCRIVI su disco i 2 GB di dati più i metadati. Ciò comporta: la traduzione delle informazioni sulla struttura dati / metadati nella creazione di nuovi file e directory su disco, come appropriato, o la riscrittura di file e directory esistenti con nuovi contenuti di dati.

I dati totali noi LEGGERE da disco in questo processo era 1 GB (per gunzip) + 2 GB (per tar) = 3 GB.

I dati totali noi SCRITTO su disco in questo processo era 2GB (per gunzip) + 2 GB (per tar) + alcuni byte per metadata = circa 4 GB.

Via 2

Hai

blah.tar.gz

in un modo o nell'altro.

Decidi di eseguire:

tar xvzf blah.tar.gz

Questo sarà

  • LEGGI il contenuto dei dati compressi da 1 GB di

    blah.tar.gz

    un blocco alla volta, in memoria.

  • PROCESSI i dati compressi attraverso il

    gzip

    decompressore in memoria.

  • Come il buffer di memoria si riempie, lo farà tubo che i dati, in memoria, attraverso il

    tar

    parser del formato file, che leggerà le informazioni sui metadati, ecc. e i dati del file non compresso.

  • Come il buffer di memoria si riempie nel

    tar

    analizzatore di file, SCRIVE i dati non compressi su disco, creando file e directory e riempiendoli con i contenuti non compressi.

I dati totali noi LEGGERE dal disco in questo processo era 1 GB di dati compressi, punto.

I dati totali noi SCRITTO su disco in questo processo c'erano 2 GB di dati non compressi + pochi byte per i metadati = circa 2 GB.

Se si nota, la quantità di I / O del disco in Via 2 èidentico al disco I / O eseguito da, diciamo, il

Zip

o

7-Zip

programmi, regolando eventuali differenze nel rapporto di compressione.

E se il rapporto di compressione è la tua preoccupazione, usa il

Xz

compressore per incapsulare

tar

e hai l'archivio TAR di LZMA2, che è altrettanto efficiente dell'algoritmo più avanzato a disposizione

7-Zip

:-)

Parte 2: caratteristiche

tar

memorizza le autorizzazioni UNIX all'interno dei suoi metadati di file, ed è molto ben noto e testato per riempire con successo una directory con tutti i tipi di permessi, collegamenti simbolici, ecc. Ci sono più di un paio di casi in cui si potrebbe aver bisogno di inserire un mucchio di file in un singolo file o flusso, ma non necessariamente comprimerlo (sebbene la compressione sia utile e spesso utilizzata).

Parte 3: compatibilità

Molti strumenti sono distribuiti in formato sorgente o binario come.tar.gz o.tar.bz2 perché è un formato di file "minimo comune denominatore": molto simile alla maggior parte degli utenti Windows ha accesso ai decompressori.zip o.rar, la maggior parte delle installazioni Linux, anche i più basilari, avranno accesso almeno a catrame e gunzip, non importa quanti anni hanno o meno. Anche i firmware Android hanno accesso a questi strumenti.

Nuovi progetti rivolti a pubblici che eseguono distribuzioni moderne possono benissimo distribuire in un formato più moderno, come.tar.xz (usando il formato di compressione Xz (LZMA), che comprime meglio di gzip o bzip2) o.7z, che è simile a i formati di file Zip o Rar in quanto entrambi comprime e specifica un layout per incapsulare più file in un singolo file.

Non si vede.7z utilizzato più spesso per la stessa ragione per cui la musica non viene venduta da negozi di download online in formati nuovi come Opus o video in WebM. Compatibilità con le persone che eseguono sistemi antichi o di base.

Hai qualcosa da aggiungere alla spiegazione? Sound off nei commenti.Vuoi leggere più risposte dagli altri utenti di Stack Exchange esperti di tecnologia? Controlla la discussione completa qui.

Consigliato: