Jaká je výhoda používání formátu souboru tar?

Obsah:

Video: Jaká je výhoda používání formátu souboru tar?

Video: Jaká je výhoda používání formátu souboru tar?
Video: OpenSSH for Windows: Install, Configure, Connect, and Troubleshoot 2024, Březen
Jaká je výhoda používání formátu souboru tar?
Jaká je výhoda používání formátu souboru tar?
Anonim
 Formát tar archivace je ve výpočetních letech skutečný Methuselah, přesto je dnes stále těžce využíván. Co dělá formát tar tak užitečný dlouho po jeho vzniku?
Formát tar archivace je ve výpočetních letech skutečný Methuselah, přesto je dnes stále těžce využíván. Co dělá formát tar tak užitečný dlouho po jeho vzniku?

Dnešní zasedání Otázky a odpovědi se k nám přichází s laskavým svolením SuperUser - rozdělení Stack Exchange, komunitní skupiny webových stránek pro otázky a odpovědi.

Otázka

Snímač SuperUser MarcusJ je zvědavý na formát tar a proč jej stále používáme po všech těch letech:

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 zcela rozumná otázka; tolik se ve světě výpočetní techniky změnilo za posledních třicet let, ale stále používáme formát tar. Jaký je příběh?

Odpověď

Příspěvek SuperUser Allquixotic nabízí několik pohledů na dlouhověkost a funkčnost 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

což je například 1 GB gzip komprimovaných dat, které při nekomprimované paměti zaberou 2 GB (kompresní poměr 50%).

Způsob, jakým byste to vytvořili, pokud byste chtěli provést archivaci a kompresi samostatně, by bylo:

tar cf blah.tar files …

To by vedlo k tomu

blah.tar

což je pouhá agregace

files …

v nekomprimované podobě.

Pak byste to udělali

gzip blah.tar

Toto by četlo obsah

blah.tar

z disku, komprimujte je pomocí gzip kompresního algoritmu, napište obsah do

blah.tar.gz

pak zrušte propojení (odstranění) souboru

blah.tar

Nyní dekomprimujte!

Cesta 1

Ty máš

blah.tar.gz

tak či onak.

Rozhodnete se spustit:

gunzip blah.tar.gz

Tohle bude

  • Přečtěte si 1 GB komprimovaných datových obsahů

    blah.tar.gz

  • PROCESS komprimovaných dat pomocí

    gzip

    dekompresor v paměti.

  • Vzhledem k tomu, že paměťová vyrovnávací paměť se naplní daty typu "blok", zapište nekomprimované údaje do souboru

    blah.tar

    na disku a opakujte, dokud nebudou přečteny všechny komprimované údaje.

  • Odpojit (smazat) soubor

    blah.tar.gz

Teď to máte

blah.tar

na disku, který je nekomprimovaný, ale obsahuje jeden nebo více souborů v něm, s velmi nízkou strukturou dat. Velikost souboru je pravděpodobněpár bajtů větší než součet všech dat souborů.

Spustíte:

tar xvf blah.tar

Tohle bude

  • Přečtěte si 2 GB nekomprimovaných datových obsahů

    blah.tar

    a

    tar

    datové struktury formátu souboru, včetně informací o oprávněních souborů, názvů souborů, adresářů atd.

  • WRITE na disk 2 GB dat plus metadata. To zahrnuje: převedení informací o struktuře dat / metadat do vytváření nových souborů a adresářů na disku podle potřeby nebo přepisování existujících souborů a adresářů s novým obsahem dat.

Celková data jsme ČÍST z disku v tomto procesu byl 1GB (pro gunzip) + 2GB (pro tar) = 3GB.

Celková data jsme WROTE na disk v tomto procesu byl 2 GB (pro gunzip) + 2 GB (pro tar) + několik bajtů pro metadata = asi 4 GB.

Cesta 2

Ty máš

blah.tar.gz

tak či onak.

Rozhodnete se spustit:

tar xvzf blah.tar.gz

Tohle bude

  • Přečtěte si 1 GB komprimovaných datových obsahů

    blah.tar.gz

    bloku najednou, do paměti.

  • PROCESS komprimovaných dat pomocí

    gzip

    dekompresor v paměti.

  • Jakmile se paměťová vyrovnávací paměť doplní, bude to trubka data, v paměti, až do

    tar

    analyzátor formátu souboru, který bude číst informace o metadatech atd. a nekomprimované soubory.

  • Jakmile se paměťová vyrovnávací paměť zaplní

    tar

    analyzátor souborů, zapíše nekomprimované údaje na disk, vytváří soubory a adresáře a naplňuje je nekomprimovaným obsahem.

Celková data jsme ČÍST z disku v tomto procesu bylo 1 GB komprimovaných dat, období.

Celková data jsme WROTE na disk v tomto procesu bylo 2 GB nekomprimovaných dat + několik bajtů pro metadata = asi 2 GB.

Pokud si všimnete, množství disk I / O v Cesta 2 jeidentické na disk I / O provedené, řekněme,

Zip

nebo

7-Zip

programy, které upravují rozdíly v kompresním poměru.

A pokud je kompresní poměr váš problém, použijte

Xz

kompresor pro zapouzdření

tar

a máte archiv TAR LZMA2'ed, který je stejně efektivní jako nejpokročilejší algoritmus k dispozici

7-Zip

:-)

Část 2: Funkce

tar

ukládá oprávnění UNIX v rámci svých metadat souborů a je velmi dobře známá a testována pro úspěšné zabalení adresáře se všemi různými oprávněními, symbolickými odkazy atd. Existuje více než několik případů, kdy by člověk mohl potřebovat, aby spoustu souborů do jediný soubor nebo stream, ale nemusí to nutně komprimovat (i když komprese je užitečná a často se používá).

Část 3: Kompatibilita

Mnoho nástrojů je distribuováno v zdrojové nebo binární podobě jako.tar.gz nebo.tar.bz2, protože je to formát souborů s nejnižším společným jmenovatelem: stejně jako většina uživatelů Windows má přístup k dekompresorům.zip nebo.rar, většině instalací Linuxu, dokonce i ty nejzákladnější, budou mít přístup k nejméně dehtu a gunzipu, bez ohledu na to, jak je starý nebo vybočený. Dokonce i firmware systému Android mají přístup k těmto nástrojům.

Nové projekty zaměřené na publikum používající moderní distribuce mohou být velmi dobře distribuovány v modernějším formátu, jako je.tar.xz (pomocí kompresního formátu Xz (LZMA), který komprimuje lépe než gzip nebo bzip2) nebo.7z, který je podobný formáty souborů Zip nebo Rar v tom, že oba komprimuje a určuje rozvržení pro zapouzdření více souborů do jednoho souboru.

Nevidíte.7z častější používání ze stejného důvodu, že hudba není prodávána z internetových obchodů ke stažení v zcela nových formátech jako je Opus nebo video v WebM. Kompatibilita s lidmi používajícími staré nebo velmi základní systémy.

Musíte něco přidat k vysvětlení? Vypadněte v komentářích.Chcete se dozvědět více odpovědí od ostatních uživatelů technologie Stack Exchange? Podívejte se na celý diskusní příspěvek zde.

Doporučuje: