Koja je prednost korištenja Tar File Format danas?

Sadržaj:

Koja je prednost korištenja Tar File Format danas?
Koja je prednost korištenja Tar File Format danas?
Anonim
 Format arhiviranja tar je, u računalnim godinama, pravi Methuselah, ali još uvijek je u teškom korištenju danas. Što čini format toliko korisno dugo nakon njegova nastanka?
Format arhiviranja tar je, u računalnim godinama, pravi Methuselah, ali još uvijek je u teškom korištenju danas. Što čini format toliko korisno dugo nakon njegova nastanka?

Današnja pitanja i odgovori nam se javljaju zahvaljujući SuperUseru - podjele Stack Exchange-a, zajednice-driven grupiranja Q & A web stranica.

Pitanje

SuperUser čitač MarcusJ znatiželjan je za format tar i zašto ga još uvijek koristimo nakon svih ovih godina:

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?

To je savršeno razumno pitanje; toliko se toga promijenilo u računalnom svijetu u proteklih trideset godina, ali još uvijek koristimo format tar. Što je to priča?

Odgovor

SuperUser suradnik Allquixotic pruža uvid u dugovječnost i funkcionalnost tar formata:

Part 1: Performance

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

You have a file on disk

blah.tar.gz

što je, recimo, 1 GB gzip komprimiranih podataka koji, kada nisu komprimirani, zauzimaju 2 GB (tako da omjer kompresije od 50%).

Način na koji biste to stvorili, ako biste zasebno obavili arhiviranje i kompresiju, bili bi:

tar cf blah.tar files …

To bi rezultiralo

blah.tar

što je puka agregacija

files …

u nekomprimiranom obliku.

Onda biste to učinili

gzip blah.tar

Ovo bi pročitalo sadržaj

blah.tar

s diska, stisnuti ih kroz algoritam gzip kompresije, napisati sadržaj

blah.tar.gz

pa prekinite vezu (brisanje) datoteke

blah.tar

Sada, otpusti!

Način 1

Imaš

blah.tar.gz

na ovaj ili onaj način.

Odlučite se pokrenuti:

gunzip blah.tar.gz

Ovo će

  • PROČITAJTE 1GB komprimirani sadržaj podataka od

    blah.tar.gz

  • PROCESI komprimirani podaci kroz

    gzip

    dekompresora u memoriji.

  • Budući da se memorijski međuspremnik popunjava podatkom "bloka", unesite nekomprimirane podatke u datoteku

    blah.tar

    na disku i ponovite sve dok se ne čitaju svi komprimirani podaci.

  • Prekini vezu (brisanje) datoteke

    blah.tar.gz

Sada, imate

blah.tar

na disku, koji je nekompresiran, ali sadrži jednu ili više datoteka u njemu, s vrlo niskom strukturom podataka iznad glave. Vjerojatno je veličina datotekepar bajtova veća od zbroja svih podataka o datotekama.

Ti trči:

tar xvf blah.tar

Ovo će

  • Čitajte 2GB nekomprimiranih podataka

    blah.tar

    i

    tar

    strukture podataka formata datoteka, uključujući informacije o dozvolama datoteka, nazive datoteka, imenike itd.

  • PISA na disk 2GB podataka plus metapodatke. To uključuje sljedeće: prevođenje podataka strukture / metapodataka u stvaranje novih datoteka i direktorija na disku prema potrebi ili prepisivanje postojećih datoteka i direktorija s novim sadržajima podataka.

Ukupni podaci mi ČITATI s diska u ovom procesu bio je 1GB (za gunzip) + 2GB (za tar) = 3GB.

Ukupni podaci mi SASTAVILE na disk u ovom procesu je 2GB (za gunzip) + 2GB (za tar) + nekoliko bytes za metapodatke = oko 4GB.

Put 2

Imaš

blah.tar.gz

na ovaj ili onaj način.

Odlučite se pokrenuti:

tar xvzf blah.tar.gz

Ovo će

  • PROČITAJTE 1GB komprimirani sadržaj podataka od

    blah.tar.gz

    blok odjednom, u memoriju.

  • PROCESI komprimirani podaci kroz

    gzip

    dekompresora u memoriji.

  • Kako se memorijski međuspremnik popunjava, to će cijev da podaci, u memoriji, do

    tar

    parsera formata datoteka koji će čitati informacije o metapodacima i sl. te podatke koji nisu komprimirani.

  • Kako se memorijski memorijski spremnik puni u

    tar

    file parser, to će WRITE ne komprimirani podaci na disk, stvaranjem datoteka i direktorija i popunjavajući ih s nekompresiranim sadržajem.

Ukupni podaci mi ČITATI s diska u ovom procesu bio je 1 GB komprimiranih podataka, razdoblje.

Ukupni podaci mi SASTAVILE na disk u ovom procesu bio je 2GB nekomprimiranih podataka + nekoliko bajtova za metapodatke = oko 2 GB.

Ako primijetite, količina I / O diska u sustavu Put 2 jeidentičan na disk I / O izvode, recimo,

Zip

ili

7-Zip

programa, podešavanje za bilo kakve razlike u omjeru kompresije.

Ako je vaš omjer kompresije, upotrijebite

Xz

kompresor za inkapsulaciju

tar

a imate LZMA2'A TAR arhivu koja je jednako učinkovita kao i najnapredniji algoritam koji je dostupan

7-Zip

:-)

Dio 2: Značajke

tar

pohranjuje UNIX dopuštenja unutar metapodataka datoteka, a vrlo je poznat i testiran za uspješno spremanje direktorija sa svim vrstama različitih dozvola, simboličnih veza itd. Postoji više od nekoliko slučajeva u kojima bi se moglo trebati skupiti hrpa datoteka jednu datoteku ili stream, ali ne nužno ga komprimirati (iako je kompresija korisna i često se koristi).

Dio 3: Kompatibilnost

Mnogi alati se distribuiraju u obliku izvora ili binarnog formata kao.tar.gz ili.tar.bz2, jer je format datoteke "najniži zajednički nazivnik": slično kao i većina korisnika sustava Windows imaju pristup.zip ili.rar dekompresorima, većini Linux instalacija, čak i najosnovniji, imat će pristup baru katranu i gunzipu, bez obzira koliko je star ili srušen. Čak i Androidovi firmwares imaju pristup tim alatima.

Novi projekti koji ciljaju publiku koja koristi moderne distribucije može se vrlo dobro distribuirati u suvremenijem formatu, kao što je.tar.xz (koristeći format kompresije Xz (LZMA), koji se komprimira bolje od gzip ili bzip2) ili.7z koji je sličan Zip ili Rar formata datoteka, jer oboje oblaže i određuje izgled za inkapsuliranje više datoteka u jednu datoteku.

Ne vidite.7z češće se koristi iz istog razloga zbog kojeg glazba nije prodana iz online trgovina za preuzimanje u potpuno novim formatima poput Opusa ili videozapisa u WebM-u. Kompatibilnost s ljudima koji rade drevni ili vrlo osnovni sustavi.

Imate li nešto za objašnjenje? Zvuči u komentarima.Želite li pročitati više odgovora od drugih tehnoloških korisnika Stack Exchangea? Pogledajte ovdje cijelu raspravu.

Preporučeni: