Kaj je prednost uporabe formata datotek Tar danes?
Format arhiviranja katrana je v računalniških letih pravi metuzalem, ki pa se še danes zelo uporablja. Kaj je tar format tako uporabno že dolgo po njegovem začetku?
Današnja seja vprašanj in odgovorov prihaja z namenom SuperUser-a, ki je del skupine Stack Exchange, ki temelji na skupnostih spletnih mest za vprašanja in odgovore.
Vprašanje
Bralnik SuperUser MarcusJ je radoveden glede formata tar in zakaj ga še vedno uporabljamo po vseh teh letih:
Vem, da je bil tar dan za arhive trakov, toda danes imamo formate arhivskih datotek, ki združujejo datoteke in opravljajo stiskanje znotraj iste logične datoteke.
Vprašanja:
- Ali je med agregacijo / kompresijo / dekompresijsko fazo uporabljena kazen za zmogljivost uporabe katrana v gzip ali bzip2 v primerjavi z uporabo datoteke, ki združevanje in stiskanje v isti podatkovni strukturi? Predpostavimo, da je čas izvajanja primerjalnega kompresorja enak (npr. Podobni gzip in Deflate).
- Ali obstajajo značilnosti formata datoteke tar, ki jih drugi formati datotek, kot so .7z in .zip, nimajo?
- Ker je tar tako stara oblika zapisa datotek, in novejši formati datotek obstajajo danes, zakaj je tar (še vedno enkapsuliran v gzip, bzip2 ali celo novi xz) še vedno tako široko uporabljen na GNU / Linux, Android, BSD in drugih takih UNIX operacijski sistemi, prenosi datotek, prenosi vira programov in binarnih datotek, včasih pa tudi kot upravljalnik paketov?
To je povsem razumno vprašanje; v svetu računalništva se je v zadnjih tridesetih letih veliko spremenilo, vendar še vedno uporabljamo format tar. Kakšna je zgodba?
Odgovor
Sodelavec SuperUser Allquixotic ponuja nekaj vpogleda v dolgo življenjsko dobo in funkcionalnost formata tar:
1. del: Uspešnost
Tukaj je primerjava dveh ločenih delovnih tokov in njihovega delovanja.
Imate datoteko na disku
blah.tar.gz
kar je, na primer, 1 GB gzip-stisnjenih podatkov, ki, ko niso stisnjeni, zasede 2 GB (tako razmerje stiskanja 50%).Način, na katerega bi to ustvarili, če bi naredili ločeno arhiviranje in stiskanje, bi bil:
tar cf blah.tar datoteke ...
To bi povzročilo
blah.tar
ki je zgolj združevanjedatotek…
v nestisnjeni obliki.Potem bi naredil
gzip blah.tar
To bi prebralo vsebino
blah.tar
iz diska, jih stisnite z algoritmom stiskanja gzip, napišite vsebinoblah.tar.gz
, nato razdružite (izbrišite) datotekoblah.tar
.Zdaj pa raztegnemo!
Način 1
Imaš
blah.tar.gz
, tako ali drugače.Odločite se za zagon:
gunzip blah.tar.gz
To bo
- PREBERITE vsebino stisnjenih podatkov v velikosti 1 GB
blah.tar.gz
.- POSTOPITE stisnjene podatke preko
gzip
dekompresor v pomnilniku.- Ker se medpomnilnik pomnilnika napolni z vrednostjo "bloka", zapišite nestisnjene podatke v datoteko
blah.tar
na disku in ponovite, dokler se ne preberejo vsi stisnjeni podatki.- Prekinite povezavo (brisanje) datoteke
blah.tar.gz
.Zdaj imate
blah.tar
na disku, ki je nestisnjen, vendar vsebuje eno ali več datotek v njem, z zelo nizko obremenitvijo podatkovne strukture. Velikost datoteke je verjetno nekaj bajtov večja od vsote vseh podatkov datoteke.Izvajate:
tar xvf blah.tar
To bo
- PREBERITE 2 GB vsebine nestisnjenih podatkov
blah.tar
inkatran
podatkovne strukture zapisa datotek, vključno z informacijami o dovoljenjih za datoteke, imeni datotek, imeniki itd.- WRITE na disk 2 GB podatkov in metapodatke. To vključuje: prevajanje podatkovne strukture / metapodatkov v ustvarjanje novih datotek in imenikov na disku, če je to primerno, ali ponovno zapisovanje obstoječih datotek in imenikov z novo vsebino podatkov..
Skupni podatki READ iz diska v tem procesu je bil 1GB (za gunzip) + 2GB (za katran) = 3GB.
Skupni podatki WROTE na disk v tem procesu je bilo 2GB (za gunzip) + 2GB (za tar) + nekaj bajtov za metapodatke = približno 4 GB.
Način 2
Imaš
blah.tar.gz
, tako ali drugače.Odločite se za zagon:
tar xvzf blah.tar.gz
To bo
- PREBERITE vsebino stisnjenih podatkov v velikosti 1 GB
blah.tar.gz
, naenkrat v pomnilnik.- POSTOPITE stisnjene podatke preko
gzip
dekompresor v pomnilniku.- Ko se pomnilniški pomnilnik napolni, se bo cevi podatkov, v spomin, do
katran
razčlenjevalnik formatov datotek, ki bo prebral informacije o metapodatkih itd. in podatke o nestisnjenih datotekah.- Ko se pomnilniški pomnilnik zapolni v
katran
razčlenjevalnik datotek, bo zapisal nestisnjene podatke na disk, tako da bo ustvaril datoteke in imenike in jih zapolnil z nestisnjeno vsebino.Skupni podatki READ iz diska v tem procesu je bilo 1 GB stisnjenih podatkov, obdobje.
Skupni podatki WROTE na disk v tem procesu je bilo 2 GB nestisnjenih podatkov + nekaj bajtov za metapodatke = približno 2 GB.
Če opazite količino diska I / O v Način 2 je enaka na disk I / O, ki ga izvede, recimo,
Zip
ali7-Zip
prilagoditev za vse razlike v razmerju stiskanja.In če je razmerje stiskanja vaša skrb, uporabite
Xz
kompresorjakatran
, in imate LZMA2'ed TAR arhiv, ki je prav tako učinkovit kot najnaprednejši algoritem, ki je na voljo7-Zip
:-)Del 2: Lastnosti
katran
shrani dovoljenja UNIX znotraj svojih datotečnih metapodatkov in je zelo dobro znana in preizkušena za uspešno pakiranje imenika z vsemi različnimi dovoljenji, simbolnimi povezavami itd. eno datoteko ali tok, vendar ne nujno stisniti (čeprav je stiskanje uporabno in se pogosto uporablja).3. del: Združljivost
Številna orodja so razdeljena v izvorni ali binarni obliki, kot .tar.gz ali .tar.bz2, ker je datoteka »najmanjšega skupnega imenovalca«: podobno kot večina uporabnikov Windows ima dostop do .zip ali .rar dekompresorjev, večina namestitev Linuxa, celo najosnovnejši bo imel dostop do vsaj katrana in gunzipa, ne glede na starost ali upad. Tudi programska oprema Android ima dostop do teh orodij.
Novi projekti, ki ciljajo na ciljne skupine, ki uporabljajo sodobne distribucije, se lahko zelo dobro distribuirajo v sodobnejši obliki, kot je .tar.xz (z uporabo kompresijske oblike Xz (LZMA), ki se stisne bolje kot gzip ali bzip2), ali .7z, kar je podobno Oblike datotek Zip ali Rar, tako da stisne in podaja postavitev za zapiranje več datotek v eno datoteko.
Ne vidite, da se .7z uporablja pogosteje iz istega razloga, da se glasba ne prodaja iz spletnih mest za prenos v popolnoma novih oblikah, kot je Opus ali videoposnetek v WebM. Združljivost z ljudmi, ki uporabljajo stare ali zelo osnovne sisteme.
Imate kaj dodati pojasnilu? Zvok izključen v komentarjih. Želite prebrati več odgovorov drugih uporabnikov tehnologije Stack Exchange? Oglejte si celotno nit razprave tukaj.