Pagrindinis » kaip » Kas šiandien yra „Tar“ rinkmenos formato privalumas?

    Kas šiandien yra „Tar“ rinkmenos formato privalumas?


    Dervų archyvavimo formatas skaičiavimo metais yra tikras metalūzas, tačiau šiandien jis vis dar sunkiai naudojamas. Kas daro dervos formatą taip naudinga ilgai po jo pradžios?

    Šiandienos „Klausimų ir atsakymų“ sesija mums suteikiama pagal „SuperUser“ - „Stack Exchange“ padalinį, bendruomenės sukurtą „Q&A“ svetainių grupavimą.

    Klausimas

    „SuperUser“ skaitytojas „MarcusJ“ smalsu apie dervos formatą ir kodėl mes vis dar naudojame jį po visų šių metų:

    Žinau, kad juostos archyvams dieną buvo daroma tara, tačiau šiandien turime archyvų rinkmenų formatus, kurie kaupia failus ir atlieka glaudinimą tame pačiame loginiame failo formate.

    Klausimai:

    • Ar yra surinkimo / suspaudimo / dekompresijos etapų, kai naudojama gzip arba bzip2 derva, duodant tam tikrą našumą, palyginti su failų formato, kuris atlieka agregavimą ir suspaudimą toje pačioje duomenų struktūroje? Tarkime, kad palyginamo kompresoriaus vykdymo trukmė yra identiška (pvz., Gzip ir deflate yra panašūs).
    • Ar yra failo formato ypatybių, kurių neturi kitų failų formatų, pvz., .7z ir .zip?
    • Kadangi tar yra toks senas failo formatas, ir naujesni failų formatai egzistuoja šiandien, kodėl derva (ar kapsuluota gzip, bzip2 ar net naujuoju xz) šiandien taip plačiai naudojama GNU / Linux, Android, BSD ir kitose tokiose UNIX sistemose operacinėms sistemoms, failų perdavimui, programų šaltiniui ir dvejetainiams atsisiuntimams, o kartais net ir kaip paketų tvarkyklės formatui?

    Tai visiškai pagrįstas klausimas; per pastaruosius trisdešimt metų skaičiavimo pasaulyje taip pasikeitė, tačiau mes vis dar naudojame tar formatą. Kas yra istorija?

    Atsakymas

    „SuperUser“ agentas „Allquixotic“ siūlo tam tikrą įžvalgos formato ilgaamžiškumą ir funkcionalumą:

    1 dalis

    Čia yra dviejų atskirų darbų palyginimas ir tai, ką jie daro.

    Turite failą diske blah.tar.gz tai yra, pavyzdžiui, 1 GB suspausto gzip duomenų, kurie, nesuspaustais, užima 2 GB (tai reiškia, kad suspaudimo koeficientas yra 50%).

    Būdas, kurį sukursite, jei darote atskirą archyvavimą ir suspaudimą, būtų:

    tar cf blah.tar failai ... 

    Tai sukeltų blah.tar tai yra tik failai…  nesuspaustos formos.

    Tada jūs darytumėte

    gzip blah.tar 

    Tai būtų skaityti blah.tar iš disko, suspauskite juos per gzip suspaudimo algoritmą, įrašykite turinį blah.tar.gz, tada atsieti (ištrinti) failą blah.tar.

    Dabar, išimkime!

    1 būdas

    Tu turi blah.tar.gz, vienaip ar kitaip.

    Jūs nusprendžiate paleisti:

    gunzip blah.tar.gz 

    Tai bus

    • SKAITYTI 1GB suspausto duomenų turinį blah.tar.gz.
    • PROCESS suspausto duomenų per gzip dekompresorius atmintyje.
    • Kadangi atminties buferis užpildo „blokų“ vertę, į failą įrašykite nesuspaustus duomenisblah.tar diske ir pakartokite, kol bus perskaityti visi suspausti duomenys.
    • Atsieti (ištrinti) failą blah.tar.gz.

    Dabar jūs turite blah.tar diske, kuris yra nesuspaustas, bet jame yra vienas ar daugiau failų, su labai maža duomenų struktūra. Tikriausiai failo dydis pora baitų didesnis nei visų failų duomenų suma.

    Bėgi:

    tar xvf blah.tar 

    Tai bus

    • SKAITYTI 2 GB nesuspaustų duomenų turinį blah.tar ir derva failo formato duomenų struktūros, įskaitant informaciją apie failų leidimus, failų pavadinimus, katalogus ir kt.
    • WRITE į diską 2GB duomenų ir metaduomenų. Tai apima: duomenų struktūros / metaduomenų informacijos perkėlimą į naujus failus ir katalogus, jei reikia, arba perrašydami esamus failus ir katalogus nauju duomenų turiniu.

    Iš viso duomenų SKAITYTI iš disko šiame procese buvo 1GB („gunzip“) + 2GB (deguto) = 3GB.

    Iš viso duomenų WROTE į diską šiame procese buvo 2GB („gunzip“) + 2GB („tar“) + keli baitai metaduomenims = apie 4GB.

    2 būdas

    Tu turi blah.tar.gz, vienaip ar kitaip.

    Jūs nusprendžiate paleisti:

    tar xvzf blah.tar.gz 

    Tai bus

    • SKAITYTI 1GB suspausto duomenų turinį blah.tar.gz, bloką vienu metu, į atmintį.
    • PROCESS suspausto duomenų per gzip dekompresorius atmintyje.
    • Kaip atminties buferis užpildys, tai bus vamzdis duomenis, atmintyje, iki derva failo formato analizatorius, kuris skaitys informaciją apie metaduomenis ir pan.
    • Kaip atminties buferis užpildo derva failo analizatorius, jis WRITE nesuspaustus duomenis į diską, kurdamas failus ir katalogus ir užpildydamas juos nesuspaustu turiniu.

    Iš viso duomenų SKAITYTI iš disko šiame procese buvo 1GB suspausto duomenų, laikotarpis.

    Iš viso duomenų WROTE į diską šiame procese buvo 2GB nesuspaustų duomenų + keli baitai metaduomenims = apie 2GB.

    Jei pastebėsite, diske I / O įvestas kiekis 2 būdas yra identiški į diską I / O, atliekamą, pvz., Zip arba7-Zip programoms, pritaikant bet kokius suspaudimo santykio skirtumus.

    Ir jei suspaudimo santykis yra jūsų susirūpinimas, naudokite Xz kompresorius derva, ir turite LZMA2'ed TAR archyvą, kuris yra toks pat veiksmingas kaip ir pažangiausias algoritmas 7-Zip :-)

    2 dalis

    derva saugo UNIX leidimus savo failų metaduomenyse ir yra gerai žinomas ir išbandytas, kad būtų sėkmingai pakuojami katalogai su visais skirtingais leidimais, simbolinėmis nuorodomis ir tt Yra daugiau nei keletas atvejų, kai gali tekti suskirstyti rinkmenas į vieną failą ar srautą, bet nebūtinai ją suspausti (nors suspaudimas yra naudingas ir dažnai naudojamas).

    3 dalis. Suderinamumas

    Daugelis įrankių yra platinami šaltiniu arba dvejetainiu formatu .tar.gz arba .tar.bz2, nes tai yra „mažiausias bendras vardiklis“ failo formatas: panašiai kaip dauguma „Windows“ vartotojų turi prieigą prie .zip arba .rar dekompresorių, dauguma „Linux“ įrenginių, netgi pačios paprastiausios, turės prieigą prie bent dervos ir šautuvų, nepriklausomai nuo to, kiek senų ar pared. Net ir „Android“ įmonės gali naudotis šiomis priemonėmis.

    Nauji projektai, nukreipti į auditorijas, kuriose veikia šiuolaikiniai platinimo būdai, gali labai gerai paskirstyti šiuolaikiškesniu formatu, pvz., .Tar.xz (naudojant Xz (LZMA) suspaudimo formatą, kuris suspausto geriau nei gzip arba bzip2), arba .7z, kuris yra panašus į „Zip“ arba „Rar“ failų formatai, nes juo suspausti ir nurodyti kelių failų įterpimo į vieną failą išdėstymas.

    .7z dažniau nenaudojate dėl tos pačios priežasties, kad muzika neparduodama iš interneto atsisiuntimo parduotuvių visiškai naujuose formatuose, pvz., „Opus“ arba „WebM“. Suderinamumas su žmonėmis, turinčiais senų ar labai pagrindinių sistemų.


    Ar ką nors papildyti paaiškinimu? Garsas išjungtas komentaruose. Norite perskaityti daugiau atsakymų iš kitų „tech-savvy Stack Exchange“ vartotojų? Čia rasite visą diskusijų temą.