Aká je výhoda používania formátu tar súboru dnes?

Obsah:

Aká je výhoda používania formátu tar súboru dnes?
Aká je výhoda používania formátu tar súboru dnes?

Video: Aká je výhoda používania formátu tar súboru dnes?

Video: Aká je výhoda používania formátu tar súboru dnes?
Video: CS50 2014 - Week 1 - YouTube 2024, Apríl
Anonim
 Formát tar archivácie je v počítačových rokoch skutočným Methuselahom, ktorý je dnes stále ťažko používaný. Čo robí formát decht tak užitočným dlho po jeho vzniku?
Formát tar archivácie je v počítačových rokoch skutočným Methuselahom, ktorý je dnes stále ťažko používaný. Čo robí formát decht tak užitočným dlho po jeho vzniku?

Dnešná relácia otázok a odpovedí sa k nám pridelí zdvorilosťou SuperUser - podskupiny Stack Exchange, skupín webových stránok týkajúcich sa otázok a odpovedí.

Otázka

Reader SuperUser MarcusJ je zvedavý o formáte tar a prečo ho stále používame po všetkých týchto rokoch:

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 úplne rozumná otázka; toľko sa zmenilo vo výpočtovom svete za posledných tridsať rokov, ale stále používame formát tar. Aký je príbeh?

Odpoveď

Sprostredkovateľ SuperUser Allquixotic ponúka niekoľko informácií o dlhovekosti a funkčnosti formátu 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

čo je napríklad 1 GB gzip-komprimovaných dát, ktoré pri nekomprimovanom zaberajú 2 GB (kompresný pomer 50%).

Spôsob, akým by ste to vytvorili, ak by ste robili archiváciu a kompresiu samostatne, by boli:

tar cf blah.tar files …

To by malo za následok

blah.tar

čo je iba agregácia

files …

v nekomprimovanej forme.

Potom by ste to urobili

gzip blah.tar

Toto by si prečítal obsah

blah.tar

z disku, komprimovať ich pomocou gzip kompresného algoritmu, napísať obsah do

blah.tar.gz

potom odpojte (odstráňte) súbor

blah.tar

Teraz, dekomprimujte!

Cesta 1

Máš

blah.tar.gz

Tak či tak.

Rozhodli ste sa spustiť:

gunzip blah.tar.gz

Toto bude

  • ČÍTAJTE komprimované dáta s obsahom 1 GB

    blah.tar.gz

  • PROCESS komprimovaných dát cez

    gzip

    dekompresor v pamäti.

  • Keď pamäťová vyrovnávacia pamäť vyplní údaje typu "blok", nahrajte nekomprimované údaje do súboru

    blah.tar

    na disk a opakujte, kým sa neprečítajú všetky komprimované údaje.

  • Odpojiť (odstrániť) súbor

    blah.tar.gz

Teraz máte

blah.tar

na disku, ktorý je nekomprimovaný, ale obsahuje jeden alebo viac súborov v rámci tohto systému s veľmi nízkou štruktúrou údajov. Veľkosť súboru je pravdepodobnepár bajtov väčšia ako súčet všetkých údajov súboru.

Bež:

tar xvf blah.tar

Toto bude

  • ČÍTAJTE 2 GB nekomprimovaných dátových obsahov

    blah.tar

    a

    tar

    dátové štruktúry formátu súboru vrátane informácií o oprávneniach súborov, názvoch súborov, adresároch atď.

  • WRITE na disk 2 GB dát plus metadáta. Toto zahŕňa: prekladanie informácií o štruktúre údajov / metadáta do vytvárania nových súborov a adresárov na disku podľa potreby alebo na prepisovanie existujúcich súborov a adresárov s novým obsahom údajov.

Celkové údaje sme READ z disku v tomto procese bol 1 GB (pre gunzip) + 2 GB (pre decht) = 3 GB.

Celkové údaje sme NAPÍSALI na disk v tomto procese bola 2 GB (pre gunzip) + 2 GB (pre tar) + niekoľko bajtov pre metadáta = asi 4 GB.

Cesta 2

Máš

blah.tar.gz

Tak či tak.

Rozhodli ste sa spustiť:

tar xvzf blah.tar.gz

Toto bude

  • ČÍTAJTE komprimované dáta s obsahom 1 GB

    blah.tar.gz

    blok v čase, do pamäte.

  • PROCESS komprimovaných dát cez

    gzip

    dekompresor v pamäti.

  • Keď sa pamäťová vyrovnávacia pamäť naplní, bude to rúra tieto údaje, v pamäti až po

    tar

    analyzátor formátu súboru, ktorý bude čítať informácie o metadátach atď. a údaje o nekomprimovaných súboroch.

  • Keď sa vyrovná pamäťová vyrovnávacia pamäť

    tar

    analyzátor súborov, zapíše nekomprimované dáta na disk, vytvára súbory a adresáre a naplňuje ich nekomprimovaným obsahom.

Celkové údaje sme READ z disku v tomto procese bolo 1 GB komprimovaných dát, obdobie.

Celkové údaje sme NAPÍSALI na disk v tomto procese bolo 2 GB nekomprimovaných údajov + niekoľko bajtov pre metadáta = asi 2 GB.

Ak si všimnete, množstvo diskov I / O v Cesta 2 jeidentický na disk I / O vykonávané, povedzme,

Zip

alebo

7-Zip

programov, ktoré upravujú rozdiely v kompresnom pomere.

A ak je kompresný pomer váš problém, použite

Xz

kompresor na zapuzdrenie

tar

a máte archív TAR LZMA2'ed, ktorý je rovnako efektívny ako najmodernejší algoritmus, ktorý je k dispozícii

7-Zip

:-)

Časť 2: Funkcie

tar

ukladá povolenia UNIXu v rámci súborových metadát a je veľmi dobre známy a testovaný na úspešné zabalenie adresára so všetkými druhmi rôznych oprávnení, symbolických odkazov atď. Existuje viac ako niekoľko prípadov, kedy je možno potrebné globálne zväčšiť množstvo súborov jediný súbor alebo prúd, ale nemusí to nevyhnutne komprimovať (aj keď kompresia je užitočná a často sa používa).

Časť 3: Kompatibilita

Mnoho nástrojov sa distribuuje v zdrojovej alebo binárnej forme ako.tar.gz alebo.tar.bz2, pretože ide o formát súboru s najnižším spoločným menovateľom: podobne ako väčšina používateľov systému Windows má prístup k dekompresorom.zip alebo.rar, väčšina inštalácií Linuxu, dokonca aj tie najzákladnejšie, budú mať prístup k najmenej dechtu a streľbe, bez ohľadu na to, ako starý alebo klesol. Dokonca aj firmvér systému Android má prístup k týmto nástrojom.

Nové projekty zamerané na publikum používajúce moderné distribúcie môžu veľmi dobre distribuovať v modernejšom formáte, napríklad.tar.xz (pomocou formátu kompresie Xz (LZMA), ktorý komprimuje lepšie ako gzip alebo bzip2), alebo.7z, ktorý je podobný formáty súborov Zip alebo Rar v tom, že oba komprimuje a špecifikuje rozloženie pre zapuzdrenie viacerých súborov do jedného súboru.

Nevidíte.7z používané častejšie z rovnakého dôvodu, že hudba sa nepredáva z online predajní v úplne nových formátoch, ako je Opus alebo video v WebM. Kompatibilita s ľuďmi, ktorí používajú staré alebo veľmi základné systémy.

Máte niečo doplniť vysvetlenie? Zvuk vypnúť v komentároch.Chcete si prečítať viac odpovedí od iných používateľov technológie Stack Exchange? Pozrite sa na celý diskusný príspevok tu.

Odporúča: