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áciaSú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 doblah.tar.gz
, potom zrušte prepojenie (odstránenie) súborublah.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úboru
blah.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
adecht
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 zapuzdreniedecht
, a máte archív TAR LZMA2'ed, ktorý je rovnako efektívny ako najmodernejší algoritmus, ktorý je k dispozícii7-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.