Mis on Tar Tarformaadi kasutamise eeliseks täna?
Tõrva arhiveerimise formaat on andmetöötlusaastatel tõeline metuusala, kuid praegu on see ikka veel raske. Mis teeb tõrvaformaadi nii kaua kasulikuks pärast selle algust?
Tänane küsimuste ja vastuste seanss saabub meiega kohtades, kus on SuperUser-Stack Exchange'i alajaotis, kogukondlikult juhitav Q&A veebisaitide rühmitus.
Küsimus
SuperUser-lugeja MarcusJ on uudishimulik tariformaadis ja miks me seda kõiki neid aastaid veel kasutame:
Ma tean, et lindiarhiivide jaoks tehti päeval terve tar, kuid täna on meil arhiveeritud failivormingud, mis koondavad failid ja täidavad tihenduse sama loogilise failivormingu piires.
Küsimused:
- Kas agressiooni / kompressiooni / dekompressiooni etappidel on gzipi või bzip2-ga kapseldatud tõrva kasutamisel trahv, võrreldes sama andmestruktuuriga agregatsiooni ja tihendamist teostava failivorminguga? Oletame, et võrreldava kompressori käitusaeg on identne (nt gzip ja Deflate on sarnased).
- Kas on olemas tõrva failivormingu funktsioone, mida muudel failivormingutel, näiteks .7z ja .zip ei ole?
- Kuna tõrv on selline vana failivorming ja tänapäeval eksisteerivad uuemad failivormingud, siis miks on tõrv (kas kapseldatud gzip, bzip2 või isegi uus xz) tänapäeval nii laialdaselt kasutatud GNU / Linuxi, Androidi, BSD ja teiste selliste UNIX-i puhul operatsioonisüsteemid, failiedastused, programmiallikad ja binaarsed allalaadimised ning mõnikord isegi pakettide halduri vormingus?
See on täiesti mõistlik küsimus; nii palju on viimasel kolmkümmend aastat muutunud arvutustehnikas, kuid me kasutame ikka veel tar formaati. Mis on lugu?
Vastus
SuperUser'i toetaja Allquixotic pakub mõningast arusaama tõrvaformaadi pikaealisusest ja funktsionaalsusest:
Osa 1: Toimivus
Siin on kahe erineva töövoo võrdlus ja mida nad teevad.
Teil on kettal fail
blah.tar.gz
mis on, näiteks, 1 GB gzip-kokkusurutud andmeid, mis pakkimata kujul hõivab 2 GB (seega kompressioonisuhe 50%).See, kuidas te seda luua, kui te peaksite arhiveerima ja pakkima eraldi, oleks:
tar cf blah.tar failid ...
See tooks kaasa
blah.tar
mis on pelgalt ELisfailid…
pakkimata kujul.Siis sa teeksid
gzip blah.tar
See loeks sisu
blah.tar
ketast, tihendage need läbi gzip-tihendusalgoritmi, kirjutage sisublah.tar.gz
, seejärel eemalda (kustuta) failblah.tar
.Nüüd laseme lahti!
Tee 1
Sul on
blah.tar.gz
, ühel või teisel viisil.Te otsustate käivitada:
gunzip blah.tar.gz
See on
- LUGEGE 1GB tihendatud andmete sisu
blah.tar.gz
.- PROCESS pressitud andmeid läbi
gzip
dekompressor mälus.- Kuna mälupuhver täidab “ploki” väärtusega andmeid, kirjutage tihendamata andmed faili
blah.tar
kettale ja korrake, kuni kõik tihendatud andmed loetakse.- Faili lahtiühendamine (kustutamine)
blah.tar.gz
.Nüüd, sul on
blah.tar
kettal, mis on pakkimata, kuid sisaldab ühte või mitut faili, millel on väga väike andmestruktuur. Tõenäoliselt on faili suurus paar baiti suurem kui kõigi failiandmete summa.Sa jooksed:
tar xvf blah.tar
See on
- LUGEGE 2 GB kompressimata andmete sisu
blah.tar
jatõrv
failivormingu andmestruktuurid, sealhulgas teave failide õiguste, failinimede, kataloogide jne kohta.- KIRJUTAGE kettale 2 GB andmeid ja metaandmeid. See hõlmab: andmete struktuuri / metaandmete informatsiooni tõlkimist vastavalt vajadusele uute failide ja kataloogide loomiseks või olemasolevate failide ja kataloogide ümberkirjutamist uute andmete sisuga.
Me kogutud andmed LUGEGE selles protsessis oli plaadilt 1GB (gunzip) + 2GB (tõrva jaoks) = 3GB.
Me kogutud andmed WROTE selles protsessis oli kettale 2GB (gunzip) + 2GB (tar) + mõne baiti metaandmete jaoks = umbes 4GB.
Tee 2
Sul on
blah.tar.gz
, ühel või teisel viisil.Te otsustate käivitada:
tar xvzf blah.tar.gz
See on
- LUGEGE 1GB tihendatud andmete sisu
blah.tar.gz
, blokeerida korraga mällu.- PROCESS pressitud andmeid läbi
gzip
dekompressor mälus.- Kuna mälupuhver täidab, siis ta seda teeb toru neid andmeid mällu, kuni
tõrv
failivormingu parser, mis loeb teavet metaandmete jms kohta ja tihendamata failiandmeid.- Kuna mälupuhver täidab
tõrv
faili parser, kirjutab see tihendamata andmed kettale, luues faile ja katalooge ning täites need tihendamata sisuga.Me kogutud andmed LUGEGE selles protsessis oli plaadilt 1 GB tihendatud andmeid, periood.
Me kogutud andmed WROTE selles protsessis oli kettale 2 GB tihendamata andmeid + paar baiti metaandmete = umbes 2 GB kohta.
Kui märkate, on kettale I / O sisestatud summa Tee 2 on identsed kettale I / O, mida teostavad näiteks
Zip
või7-Zip
programme, kohandades kompressioonisuhte erinevusi.Kui kompressioonisuhe on teie probleem, kasutage seda
Xz
kompressori kapseldamisekstõrv
, ja teil on LZMA2'ed TAR-arhiiv, mis on sama tõhus kui kõige arenenum algoritm7-Zip
:-)2. osa: Omadused
tõrv
salvestab UNIX-i õigused oma metaandmetesse ja on väga hästi teada ja testitud kataloogi edukaks pakkimiseks igasuguste erinevate õigustega, sümboolsete linkidega jne. On rohkem kui üksikud juhud, kus võib tekkida vajadus koondada hulk faile üks fail või voog, kuid ei pruugi seda tihendada (kuigi tihendamine on kasulik ja sageli kasutatav).Osa 3: Ühilduvus
Paljud tööriistad on jaotatud allikana või binaarses vormis .tar.gz või .tar.bz2 kujul, kuna see on "madalaim ühine nimetaja" failivorming: sarnaselt enamiku Windowsi kasutajatega on juurdepääs .zip või .rar dekompressoritele, enamikule Linuxi installatsioonidele, isegi kõige elementaarsem, on ligipääs vähemalt tõrvale ja gunzipile, olenemata sellest, kui vana või parsitud. Neile tööriistadele on juurdepääs ka Android firmwares'il.
Uued projektid, mis on suunatud kaasaegseid levitusi kasutavatele sihtrühmadele, võivad väga hästi jagada moodsamas vormingus, näiteks .tar.xz (kasutades Xz (LZMA) tihendusformaati, mis tihendab paremini kui gzip või bzip2), või .7z, mis on sarnane Zip- või Rar-failivormingud nii, et see tihendab ja määrab mitme faili ühte faili kapseldamiseks paigutuse.
Te ei näe .7z kasutamist sagedamini samal põhjusel, et muusikat ei müüda veebipõhistest allalaadimiskaupadest täiesti uutes vormingutes, nagu Opus või WebMobis. Ühilduvus vanade või väga põhiliste süsteemidega töötavate inimestega.
Kas teil on midagi lisada selgitusele? Hääletage kommentaarides. Kas soovite lugeda rohkem vastuseid teistelt tech-savvy Stack Exchange'i kasutajatelt? Vaadake siin täielikku arutelu lõiku.