21Aug
Format arhiviranja katrana je, v računalniških letih, pravi Methuselah, vendar je še danes v težki rabi. Kaj naredi format tarja tako koristno že po njenem nastanku?
Današnje vprašanje &S sejo odgovora prihaja uporaba SuperUserja, ki je razdeljena na Stack Exchange, skupinsko spletno stran Q & A.
Vprašalnik
SuperUser bralnik MarcusJ je radoveden glede oblike katrana in zakaj ga še vedno uporabljamo po vseh teh letih:
Vem, da je tar naredil za tračne arhive nazaj čez dan, danes pa imamo arhivske oblike datotek, kizdružite datoteke in izvedite stiskanje v istem logičnem formatu.
Vprašanja:
- Ali je med agregiranimi stopnjami dekompresije /compression/ za uporabo tar, ki je vdelano v gzip ali bzip2, v primerjavi z uporabo oblike datoteke, ki združuje in stiskanje v isti podatkovni strukturi? Predpostavimo, da je čas izvajanja primerjalnega kompresorja enak( npr. Gzip in Deflate so podobni).
- Ali obstajajo značilnosti zapisa datoteke tar, ki nimajo drugih oblik zapisa datotek, kot sta. 7z in. zip?
- Ker je tar taka stara oblika datoteke in novejše oblike zapisa datotek obstajajo danes, zakaj je tar( če je vdelano v gzip, bzip2 ali celo novi xz) še vedno tako široko uporabljeno danes na GNU / Linux, Android, BSD in drugihUNIX operacijskih sistemih, za prenos datotek, izvor programa in binarne prenose, včasih pa tudi kot format upravitelja paketa?
To je popolnoma razumno vprašanje;v računalniškem svetu se je v zadnjih 30 letih toliko spremenilo, vendar še vedno uporabljamo format tar. Kaj je zgodba?
Odzivnik
SuperUser, ki sodeluje pri programu AllQixot, ponuja nekaj vpogleda v dolgoživost in funkcionalnost formata katrana:
Del 1: Uspešnost
Tukaj je primerjava dveh ločenih delovnih tokov in kaj delata.
Imate datoteko na disku blah.tar.gz, ki je, na primer, 1 GB gzip-stisnjenih podatkov, ki ob nestisnjenju zasede 2 GB( tako stopnja stiskanja je 50%).
Način, na katerega bi to ustvarili, če želite arhivirati in stiskati ločeno:
tar cf blah.tar datotek. ..To bi povzročilo blah.tar, ki je zgolj združevanje datotek.v nespremenjeni obliki.
Potem bi to storili
gzip blah.tarTo bi brala vsebino blah.tar z diska, jih stisnila v algoritem stiskanja gzip, napišala vsebino na blah.tar.gz in nato povezala( izbrisala) datoteko blah.katran.
Zdaj, razširimo!
način 1
Imate blah.tar.gz, tako ali drugače.
Ste se odločili za zagon:
gunzip blah.tar.gzTo bo
- READ 1GB stisnjene podatkovne vsebine blah.tar.gz.
- PROCESS stisnjene podatke skozi gzip dekompresor v pomnilniku.
- Ko se pomnilnik pomnilnika napolni z vrednostjo "blok", vnesite nestisnjene podatke v datoteko fileblah.tar na disku in ponovite, dokler se ne berejo vsi stisnjeni podatki.
- Unlink( brisanje) datoteke blah.tar.gz.
Zdaj imate na bloku disketo blah.tar, ki je nestisnjena, vendar vsebuje eno ali več datotek v njej, z zelo nizko strukturo podatkovne strukture. Velikost datoteke je verjetno nekaj bajtov večja od vsote vseh podatkov o datotekah.
Izvajajte:
tar xvf blah.tarTo bo
- READ 2 GB nestisnjene podatkovne vsebine blah.tar in strukture podatkov format datoteke datoteke, vključno z informacijami o dovoljenjih datotek, imenih datotek, imenikov itd.
- WRITE na disk2 GB podatkov in metapodatkov. To vključuje: prevajanje podatkovne strukture / podatkov o metapodatkih v ustvarjanje novih datotek in imenikov na disku, kot je primerno, ali prepisovanje obstoječih datotek in imenikov z novo podatkovno vsebino.
Skupni podatki READ z diska v tem procesu je bil 1 GB( za gunzip) + 2 GB( za tar) = 3 GB.
Skupni podatki WROTE na disk v tem procesu so bili 2 GB( za gunzip) + 2 GB( za tar) + nekaj bajtov za metapodatke = približno 4 GB.
način 2
Blah.tar.gz imate tako ali drugače.
Ste se odločili za zagon:
tar xvzf blah.tar.gzTo bo
- READ 1GB stisnjene podatkovne vsebine blah.tar.gz, bloga hkrati, v pomnilnik.
- PROCESS stisnjene podatke skozi gzip dekompresor v pomnilniku.
- Ko se pomnilnik pomnilnika polni, bo cev te podatke, v pomnilniku, do razčlenjevalnika datoteke tar, ki bo prebral podatke o metapodatkih itd. In podatke o nestisnjeni datoteki.
- Ko pomnilnik pomnilnika napolni v razčlenjevalniku tar datoteke, bo na disk zagnal nezdružene podatke z ustvarjanjem datotek in imenikov ter jih popolnil z nestisnjeno vsebino.
Skupni podatki READ z diska v tem procesu so bili 1 GB stisnjenih podatkov, obdobje.
Skupni podatki WROTE na disk v tem procesu so bili 2 GB nestisnjenih podatkov + nekaj bajtov za metapodatke = približno 2 GB.
Če opazite, količina diska I / O v Way 2 je identična na disk I / O, ki se izvaja z, recimo, Zip ali 7-Zip programi, prilagajanje za vse razlike v stiskanju.
In če je razmerje stiskanja vaše skrbi, uporabite kompresor Xz za inkapsuliranje katrana in imate LAR-ov arhiv TAR, ki je enako učinkovit kot najnaprednejši algoritem, ki je na voljo za 7-Zip: -)
2. del: funkcije
katran shrani dovoljenja UNIX v svoje metapodatke datotek in je zelo dobro poznan in preizkušen, da uspešno pakira imenik z vsemi vrstami različnih dovoljenj, simbolnimi povezavami itd. Obstaja več kot nekaj primerov, kjer bi morda potrebovali globo več datotekv eno datoteko ali tok, vendar ne nujno stiskati( čeprav je stiskanje koristno in pogosto uporabljeno).
3. del: Združljivost
Številna orodja so v izvorni ali binarni obliki porazdeljena kot. tar.gz ali. tar.bz2, ker gre za format datoteke "najmanjši skupni imenovalec": podobno kot večina uporabnikov Windows imajo dostop do. zip ali. rardekompresorji, večina namestitev Linuxa, tudi najbolj osnovnih, bo imela dostop do vsaj katrana in pištole, ne glede na to, kako sta stara ali pa je razporejena. Dostop do teh orodij ima tudi programska oprema za Android.
Novi projekti, ki ciljajo na občinstvo s sodobnimi distribucijami, se lahko zelo razširjajo v bolj moderni obliki, na primer. tar.xz( z uporabo oblike stiskanja Xz( LZMA), ki stisne bolje kot gzip ali bzip2), ali. 7z, kar je podobnov oblike zapisa Zip ali Rar, tako da oba oblikujeta in določita postavitev za encapsulating več datotek v eno datoteko.
Ne vidite, da je. 7z pogosteje uporabljal iz istega razloga, da se glasba ne prodaja v spletnih trgovinah za prenos v popolnoma novih oblikah, kot so Opus ali video v WebM.Združljivost z ljudmi, ki uporabljajo stare ali zelo osnovne sisteme.
Ali želite dodati nekaj pojasnila? Zvok v komentarjih.Želite prebrati več odgovorov od drugih uporabniških članov stack Exchange? Oglejte si celotno temo za razpravo tukaj.