21Aug
Format za arhiviranje tar je, u računalnim godinama, pravi Methuselah, ali još uvijek je u teškom korištenju.Što čini format toliko korisno dugo nakon njegova nastanka?
Današnje pitanje &Sesija odgovora nam dolazi zahvaljujući SuperUseru - podjele Stack Exchange-a, grupiranjem zajednice Q & A web stranica.
Pitanje
SuperUser čitač MarcusJ je znatiželjan o tar formatu i zašto ga još uvijek koristimo nakon svih ovih godina:
Znam da je tar napravljen za arhive na vrpcu natrag na dan, ali danas imamo arhive formate datoteka koje obaskupne datoteke i izvršiti kompresiju unutar istog logičkog formata datoteka.
Pitanja:
- Postoji li kazna za izvođenje tijekom procesa agregacije /compression/ dekompresije za upotrebu tar ukapljenog u gzip ili bzip2, u usporedbi s korištenjem formata datoteke koji se agregira i komprimira u istoj strukturi podataka? Pretpostavimo da se runtime kompresora uspoređuju identični( npr. Gzip i Deflate su slični).
- Postoje li značajke formata tar datoteke koji drugi formati datoteka, kao što su. 7z i. zip nemaju?
- Od katrana je tako stara format datoteke, i novije formate datoteka postoji i danas, zašto je katran( bilo upakiranog u gzip, bzip2 ili čak novog XZ) još toliko naširoko koristi i danas na GNU / Linux, Android, BSD, i druge takveUNIX operativnim sustavima, za prijenos datoteka, izvor programa i binarna preuzimanja, a ponekad i kao oblik upravitelja paketima?
To je savršeno razumno pitanje;toliko se toga promijenilo u računalnom svijetu u proteklih trideset godina, ali još uvijek koristimo format tar.Što je to priča?
Odgovor
Contributor SuperUser Allquixotic pruža uvid u dugovječnost i funkcionalnost tar formata:
Dio 1: Performanse
Evo usporedbe dva odvojena tijeka rada i onoga što rade.
Imate datoteku na disku blah.tar.gz koja je, recimo, 1 GB gzip komprimiranih podataka koji, kada nisu komprimirani, zauzimaju 2 GB( tako da omjer kompresije od 50%).
Način na koji biste to stvorili, ako biste zasebno radili arhiviranje i komprimiranje, bili bi:
tar cf blah.tar datoteke. ..To bi rezultiralo blah.tar što je puko skupljanje datoteka. .u nekomprimiranom obliku.
Onda će učiniti
gzip blah.tarće to pročitati sadržaj blah.tar s diska, stisnuti ih kroz algoritam gzip kompresiju, pisanje sadržaja za blah.tar.gz, zatim prekinuti vezu( brisanje) datoteku bla.katran.
Sada, dekompresimo!
Put 1
Imate blah.tar.gz, na ovaj ili onaj način.
se odlučite za trčanje:
gunzip blah.tar.gzTo će
- pročitati 1GB podataka komprimiranih sadržaj blah.tar.gz.
- PROCESS komprimirani podaci kroz gzip dekompresor u memoriji.
- Budući da se memorijski tampon ispunjava podatkom "bloka", upišite nekomprimirane podatke u fileblah.tar na disku i ponovite sve dok se ne čitaju svi komprimirani podaci.
- Prekini vezu( brisanje) datoteke blah.tar.gz.
Sada imate blah.tar na disku, koji je nekompresiran, ali sadrži jednu ili više datoteka u njemu, s vrlo niskom strukturom podataka iznad glave. Veličina datoteke vjerojatno je par bajtova veća od zbroja svih podataka datoteke.
- PROČITAJU 2GB nekomprimiranih sadržaja podataka blah.tar i struktura podataka formata tar datoteke, uključujući informacije o dozvolama datoteka, nazive datoteka, direktorije itd.
- WRITE na disk2 GB podataka plus metapodatke. To uključuje sljedeće: prevođenje podataka strukture / metapodataka u stvaranje novih datoteka i direktorija na disku prema potrebi ili prepisivanje postojećih datoteka i direktorija s novim sadržajima podataka.
Ukupni podaci koje smo READ s diska u ovom procesu bili su 1GB( za gunzip) + 2GB( za tar) = 3GB.
Ukupni podaci za WROTE na disk u ovom procesu bili su 2 GB( za gunzip) + 2 GB( za tar) + nekoliko bajtova za metapodatke = oko 4 GB.
način 2
Imate blah.tar.gz, na ovaj ili onaj način.
Odlučite se pokrenuti:
tar xvzf blah.tar.gzOvo će
- čitati 1 GB komprimirane podatke sadržaja blah.tar.gz, blok odjednom, u memoriju.
- PROCESIRAJU komprimirane podatke kroz gzip dekompresor u memoriji.
- Kako se memorija memorije ispuni, cijev će podatke, u memoriji, do parsera formata tar datoteka, koja će pročitati informacije o metapodacima itd. I nekomprimirane podatke o datotekama.
- Kako se memorijski memorijski spremnik popunjava u par formatu tar datoteke, on će WRITE NEPRIMBIRANE podatke na disk, stvaranjem datoteka i direktorija te ih popunjavanjem nekompresiranog sadržaja.
Ukupni podaci koje čitamo s diska u ovom procesu bili su 1 GB komprimiranih podataka, razdoblja.
Ukupni podaci koje smo WROTE na disk u ovom procesu bili 2 GB nekomprimiranih podataka + nekoliko bajtova za metapodatke = oko 2 GB.
Ako primijetite, količina I / O diska u putu 2 je identičan na I / O disku koji se izvode, recimo, Zip or7-Zip programa, prilagođavajući se bilo kakvih razlika u omjeru kompresije.
Ako je vaš omjer kompresije, koristite Xz kompresor kako biste zatvorili tar, a imate LZMA2'ed TAR arhivu koja je jednako učinkovita kao i najnapredniji algoritam dostupan za 7-Zip: -)
Dio 2: Značajke
tar pohranjuje UNIX dopuštenja unutar svojih metapodataka datoteka i vrlo je poznat i testiran za uspješno spremanje direktorija sa svim vrstama različitih dozvola, simboličkih veza itd. Postoji više od nekoliko slučajeva u kojima bi se moglo trebati skupiti hrpa datotekau jednu datoteku ili stream, ali ne nužno ga komprimirati( iako je kompresija korisna i često se koristi).
Dio 3: Kompatibilnost
Mnogi se alati distribuiraju u obliku izvora ili binarnog formata. tar.gz ili. tar.bz2 jer je format datoteke "najniži zajednički nazivnik": slično kao i većina korisnika sustava Windows imaju pristup. zip ili. rardecompressors, većina Linux instalacija, čak i najosnovnijih, imat će pristup barem katranu i gunzipu, bez obzira koliko je star ili srušen.Čak i Androidovi firmwares imaju pristup tim alatima.
Novi projekti koji ciljaju publiku koja koristi suvremene distribucije može se vrlo dobro distribuirati u modernijem formatu, kao što je. tar.xz( koristeći format kompresije Xz( LZMA) koji se komprimira bolje od gzip ili bzip2) ili. 7z koji je sličanna Zip ili Rar formate datoteka, jer oboje oblaže i određuje izgled za inkapsuliranje više datoteka u jednu datoteku.
Ne vidite da je. 7z češće upotrebljavan iz istog razloga zbog kojeg glazba nije prodana iz online trgovina za preuzimanje u potpuno novim formatima kao što je Opus ili video u WebM.Kompatibilnost s ljudima koji rade drevni ili vrlo osnovni sustavi.
Imate li što dodati objašnjenju? Zvuči u komentarima.Želite li pročitati više odgovora od drugih tehnoloških korisnika Stack Exchangea? Pogledajte ovdje cijelu raspravu.