Domača » kako » Kaj je prednost uporabe formata datotek Tar danes?

    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ževanje datotek…  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 vsebino blah.tar.gz, nato razdružite (izbrišite) datoteko blah.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 datotekoblah.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 in katran 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 kompresorja katran, in imate LZMA2'ed TAR arhiv, ki je prav tako učinkovit kot najnaprednejši algoritem, ki je na voljo 7-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.