21Aug

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


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á otázka &Odpoveď na zasadnutie nám príde s láskavým dovolením SuperUser - subdivíziu Stack Exchange, komunitne riadeného zoskupenia webových stránok Q & A.

Otázka

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

Viem, že tar bol vyrobený pre archívne záznamy aj dnes, ale dnes máme archívne formáty súborov,súhrnné súbory a vykonávajú kompresiu v rovnakom logickom formáte.

Otázky:

  • Existuje výkonný trest počas agregácie /compression/ dekompresných fáz pre použitie tar zapuzdreného v gzip alebo bzip2, v porovnaní s použitím formátu súboru, ktorý agreguje a komprimuje v rovnakej dátovej štruktúre? Predpokladajme, že doba porovnávania kompresora je rovnaká( napr. Gzip a Deflate sú podobné).
  • Existujú funkcie formátu tar súboru, ktoré nemajú iné formáty súborov, ako napríklad. 7z a. zip?
  • Vzhľadom k tomu, že tar je taký starý formát súborov a novšie formáty súborov existujú dnes, prečo je tar( či už zapuzdrené v gzip, bzip2 alebo dokonca v novom xz) ešte stále tak široko používaný dnes na GNU / Linux, Android, BSD a ďalšieOperačné systémy UNIX pre prenos súborov, preberanie programových a binárnych súborov a niekedy aj formát správcu balíkov?

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ď

SuperUser prispievateľ Allquixotic ponúka niekoľko poznatkov o dlhovekosti a funkčnosti formátu tar:

Časť 1: Výkon

Tu je porovnanie dvoch samostatných pracovných tokov a toho, čo robia.

Máte na disku blah.tar.gz súbor, ktorý je, napríklad, 1 GB gzip-komprimovaných dát, ktoré pri nekompresii zaberajú 2 GB( tak kompresný pomer 50%).

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

tar cf blah.tar súbory. ..

To by viedlo k blah.tar, čo je iba agregácia súborov. .v nekomprimovanej forme.

Potom by ste urobili

gzip blah.tar

Toto by prečítal obsah blah.tar z disku, komprimovať ich pomocou algoritmu kompresie gzip, napísať obsah na blah.tar.gz a potom odpojiť( vymazať) súbor blah.tar.

Teraz, dekomprimujte!

Cesta 1

Máte blah.tar.gz, tak či onak.

Rozhodnete sa spustiť:

gunzip blah.tar.gz

Toto bude

  • čítať 1GB komprimovaných dátových obsahov blah.tar.gz.
  • ZPRACOVAŤ komprimované dáta prostredníctvom gzip dekompresora v pamäti.
  • Keď pamäťová vyrovnávacia pamäť vyplní údaje s hodnotou "blok", NASTAVENIE nekomprimovaných údajov do súboru tbd na disku a opakovanie, 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 ňom, s veľmi nízkou štruktúrou dát. Veľkosť súboru je pravdepodobne pár bajtov väčšia ako súčet všetkých údajov súboru.

Spustíte:

tar xvf blah.tar

Toto bude

  • čítať 2 GB nekomprimovaných dátových dát z blah.tar a dátových štruktúr tar súborového formátu vrátane informácií o oprávneniach súborov, názvoch súborov, adresárov atď
  • WRITE to disk2 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, ktoré READ z disku v tomto procese bolo 1GB( pre gunzip) + 2GB( pre tar) = 3GB.

Celkové údaje, ktoré sme WROTE na disku v tomto procese boli 2 GB( pre gunzip) + 2 GB( pre tar) + niekoľko bajtov pre metadáta = asi 4 GB.

cesta 2

Máte blah.tar.gz, tak či onak.

Rozhodnete sa spustiť:

tar xvzf blah.tar.gz

Toto bude

  • čítať 1GB komprimovaných dátových súborov blah.tar.gz, bloku naraz do pamäte.
  • PROCESS komprimovaných dát prostredníctvom gzip dekompresora v pamäti.
  • Keď sa pamäťová vyrovnávacia pamäť naplní, bude potrubie , že dáta v pamäti až do analyzátora formátu tar súboru, ktorý bude čítať informácie o metadátach atď. A nekomprimované súbory dát.
  • Keď pamäťová vyrovnávacia pamäť vyplní analyzátor súborov tar, zapíše nekomprimované dáta na disk vytvorením súborov a adresárov a ich naplnením nekomprimovaným obsahom.

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

Celkové údaje, ktoré sme WROTE na disku v tomto procese boli 2 GB nekomprimovaných dát + niekoľko bajtov pre metadáta = asi 2 GB.

Ak si všimnete, množstvo diskov I / O v Way 2 je identické na disk I / O vykonávané napríklad programami Zip alebo7-Zip, ktoré upravujú akékoľvek rozdiely v kompresnom pomere.

A ak je kompresný pomer váš problém, použite kompresor Xz na zapuzdrenie dechtu a máte LZMA2'ed TAR archív, ktorý je rovnako efektívny ako najpokročilejší algoritmus dostupný pre 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äzok súborovdo jedného súboru alebo streamu, ale nemusí to nevyhnutne komprimovať( hoci kompresia je užitočná a často sa používa).

Časť 3: Kompatibilita

Veľa nástrojov sa distribuuje v zdrojovej alebo binárnej forme ako. tar.gz alebo. tar.bz2, pretože je to formát súborov s najnižším spoločným menovateľom: podobne ako väčšina používateľov systému Windows má prístup k súboru. zip alebo. rardekompresory, väčšina linuxových inštalácií, dokonca aj najzákladnejších, bude mať prístup k najmenej dechtovým a gunzip, bez ohľadu na to, ako starý alebo znížený.Dokonca aj firmvér systému Android má prístup k týmto nástrojom.

Nové projekty zamerané na publikum s modernými distribúciami môžu veľmi dobre distribuovať v modernejšom formáte, napríklad. tar.xz( pomocou kompresného formátu Xz( LZMA), ktorý komprimuje lepšie ako gzip alebo bzip2), alebo. 7z, ktorý je podobnýdo súborových formátov 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žívať č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.

Musíte niečo pridať k vysvetleniu? 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.