Úvodná » ako » Aká je výhoda používania formátu tar súborov dnes?

    Aká je výhoda používania formátu tar súborov 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á relácia otázok a odpovedí sa k nám pridelí zdvorilosťou SuperUser - podskupiny Stack Exchange, zoskupenia webových stránok typu Q & A.

    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:

    Viem, že tar bol vyrobený pre páskové archívy späť v deň, ale dnes máme archívne formáty súborov, ktoré zhromažďujú súbory a vykonávajú kompresiu v rovnakom logickom formáte.

    otázky:

    • Je v priebehu agregačných / kompresných / 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 rovnakú dátovú štruktúru? Predpokladajme, že doba porovnávania kompresora je rovnaká (napr. Gzip a Deflate sú podobné).
    • Existujú funkcie tar súborového formátu, 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ších UNIX operačné systémy, 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. Čo je to príbeh?

    Odpoveď

    Sprostredkovateľ SuperUser Allquixotic ponúka niekoľko informácií o dlhovekosti a funkčnosti formátu tar:

    Časť 1: Výkonnosť

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

    Máte súbor na disku blah.tar.gz čo je napríklad 1 GB gzip-komprimovaných dát, ktoré pri nekomprimovanom 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 boli:

    tar cf blah.tar súbory ... 

    To by malo za následok blah.tar čo je iba agregácia Súbory ...  v nekomprimovanej forme.

    Potom by ste to urobili

    gzip blah.tar 

    Toto by prečítalo obsah blah.tar z disku, komprimovať ich pomocou gzip kompresného algoritmu, napísať obsah do blah.tar.gz, potom zrušte prepojenie (odstránenie) súboru blah.tar.

    Teraz sa dekomprimujeme!

    Cesta 1

    Máš blah.tar.gz, Tak či tak.

    Rozhodli ste sa spustiť:

    gunzip blah.tar.gz 

    Toto bude

    • ČÍTAJTE 1 GB komprimovaných dátových obsahov 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úborublah.tar na disk a opakujte, kým sa neprečítajú všetky komprimované údaje.
    • Zrušte prepojenie (odstráňte) 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 dátovej štruktúry. Veľkosť súboru je pravdepodobne pár bajtov väčšia ako súčet všetkých údajov súborov.

    Bež:

    tar xvf blah.tar 

    Toto bude

    • ČÍTAJTE 2 GB nekomprimovaných dátových obsahov blah.tar a decht 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. To 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 1 GB komprimovaných dátových obsahov blah.tar.gz, bloku naraz do pamäte.
    • PROCESS komprimovaných dát cez gzip dekompresor v pamäti.
    • Keď sa vyrovná pamäťová vyrovnávacia pamäť, bude to rúra tieto údaje, v pamäti až po decht analyzátor formátu súboru, ktorý bude čítať informácie o metadátach atď. a údaje o nekomprimovaných súboroch.
    • Keď sa pamäťová vyrovnávacia pamäť zaplní decht 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 je identický na disk I / O vykonané, povedzme, zips alebo7-Zip programov, ktoré upravujú rozdiely v kompresnom pomere.

    A ak je kompresný pomer váš problém, použite xz kompresor na zapuzdrenie decht, 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

    decht ukladá povolenia UNIX v rámci svojich 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 by bolo potrebné globálne zväzok súborov jediný súbor alebo prúd, ale nemusí to nevyhnutne komprimovať (hoci 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 aspoň k dechtom 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 kompresného formátu 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? Vyjadrite sa v komentároch. Chcete sa dozvedieť viac odpovedí od iných používateľov technickej úrovne Stack Exchange? Pozrite sa na celý diskusný príspevok tu.