21Aug
Formát tar archivace je v počítačových letech opravdovým Methuselahem, 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í otázka &Odpověď na zasedání se k nám dostala s laskavým svolením SuperUser - podřízenou výměnou Stack Exchange, skupině webů Q & A založených na komunitě.
Otázka
Reader SuperUser MarcusJ je zvědavý na formát tar a proč pořád ještě používáme to po všech těch letech:
Vím, že tar byl vyroben pro páskové archivy zpět v den, ale dnes máme archivní formáty souborů, které obasouhrnné soubory a provádět kompresi ve stejném logickém formátu souboru.
Otázky:
- Existuje výkonnostní trest během agregace /compression/ dekompresních fází pro použití tar encapsulated v gzip nebo bzip2, ve srovnání s použitím formátu souboru, který provádí agregaci a kompresi ve stejné datové struktuře? Předpokládejme, že doba běhu porovnávaného kompresoru je stejná( např. Gzip a Deflate jsou podobné).
- Existují funkce formátu tar souboru, které nemají jiné formáty souborů, jako například. 7z a. zip?
- Vzhledem k tomu, že tar je takový starý souborový formát a novější formáty souborů existují dnes, proč je tar( ať už zapouzdřený v gzip, bzip2 nebo dokonce v novém xz) stále ještě tak široce používaný dnes na GNU / Linuxu, Androidu, BSD a dalšíchOperační systémy UNIX pro přenos souborů, zdrojový program a binární stahování a někdy i formát správce balíčků?
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ědná odpověď
SuperUser přispěvatel Allquixotic nabízí určitý pohled na životnost a funkčnost formátu tar:
Část 1: Výkon
Zde je porovnání dvou samostatných pracovních postupů a toho, co dělají.
Máte soubor na disku blah.tar.gz, což je například 1GB gzip-komprimovaných dat, které při rozbalení zabírají 2 GB( kompresní poměr 50%).
Způsob, jakým byste vytvořili toto, pokud byste chtěli provést archivaci a kompresi samostatně, by byl:
tar cf blah.tar soubory. ..To by vedlo k blah.tar, což je pouhá agregace souborů.v nekomprimované podobě.
Pak byste udělali
gzip blah.tarToto by četl obsah disku blah.tar z disku, komprimovat je pomocí algoritmu komprese gzip, napsat obsah na soubor blah.tar.gz a pak odpojit( smazat) soubor blah.dehet.
Nyní dekomprimujte!
Way 1
Máte blah.tar.gz tak či onak.
Rozhodnete se spustit:
gunzip blah.tar.gzTo bude
- číst 1 GB komprimovaných datových obsahů blah.tar.gz.
- PROCESS komprimovaných dat pomocí gzip dekompresoru v paměti.
- Když paměťová vyrovnávací paměť doplňuje data s hodnotou "blok", zapište nekomprimované údaje do souboru fileblah.tar na disk a opakujte, dokud nebudou přečteny všechny komprimované údaje.
- Odpojit( smazat) soubor blah.tar.gz.
Nyní 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.tarToto bude
- číst 2 GB nekomprimovaných datových obsahů blah.tar a datové struktury formátu tar souboru, včetně informací o oprávněních souborů, názvů souborů, adresářů atd.
- WRITE to disk2 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, která READ z disku v tomto procesu, byla 1 GB( pro gunzip) + 2 GB( pro tar) = 3 GB.
Celková data, která jsme WROTE na disku v tomto procesu, byla 2 GB( pro gunzip) + 2 GB( pro tar) + několik bajtů pro metadata = asi 4 GB.
cesta 2
Máte blah.tar.gz, tak či onak.
Rozhodnete se spustit:
tar xvzf blah.tar.gzToto bude
- PŘEČTĚTE do paměti paměťové soubory obsahující 1GB komprimovaných dat v bloku blah.tar.gz.
- PROCESS komprimovaných dat pomocí gzip dekompresoru v paměti.
- Vzhledem k tomu, že vyrovnávací paměť paměti zaplní, bude potrubí , že data, v paměti, až analyzátor formátu tar souboru, který bude číst informace o metadata apod. A nekomprimované data souboru.
- Když paměťová vyrovnávací paměť doplňuje analyzátor souborů tar, zapíše nekomprimované údaje na disk, vytváří soubory a adresáře a naplňuje je nekomprimovaným obsahem.
Celková data, která READ z disku v tomto procesu, byla 1 GB komprimovaných dat, období.
Celková data, která jsme WROTE na disku v tomto procesu, byla 2 GB nekomprimovaných dat + několik bajtů pro metadata = asi 2 GB.
Pokud zjistíte, množství diskových vstupů / výstupů v způsobu 2 je identické na disk I / O prováděné, řekněme programy Zip nebo7-Zip, které se upravují o jakékoliv rozdíly v kompresním poměru.
A pokud je kompresní poměr váš problém, použijte kompresor Xz pro zapouzdření dehtu a máte archiv TAR LZMA2'ed, který je stejně účinný jako nejpokročilejší algoritmus, který je k dispozici pro 7-Zip: -)
Část 2: Funkce
tar ukládá UNIX oprávnění v rámci svých souborových metadat a je velmi dobře známá a testována pro úspěšné balení adresáře se všemi různými oprávněními, symbolickými odkazy atd. Existuje více než jen několik případů, kdy by člověk mohl potřebovat globu spoustu souborůdo jednoho souboru nebo streamu, 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 ve zdrojové nebo binární podobě jako. tar.gz nebo. tar.bz2, protože je to formát souboru s nejnižším společným jmenovatelem: podobně jako většina uživatelů Windows má přístup k. zip nebo. rardekompresory, většina instalací Linuxu, dokonce i těch nejzákladnějších, bude mít přístup alespoň k dehtům a gunzipům, bez ohledu na to, jak 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 s moderními distribucemi mohou velmi dobře distribuovat 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ýdo formátu 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ěji používané 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.