21Aug
Dirvožemio archyvavimo formatas skaičiavimo metais yra tikras "Methuselah", tačiau šiandien jis vis dar yra sunkus. Kas daro "tar" formatą taip naudingą ilgai po jo sukūrimo?
Šiandienos klausimas &Atsakymų sesija ateina pas mus iš "SuperUser" - "Stack Exchange", bendruomenės pagrįstos "Q & A" svetainių grupės pasidalijimo.
Klausimas
SuperUser skaitytojas MarcusJ yra įdomu apie "tar" formatą ir kodėl mes vis dar naudojame jį per visus šiuos metus:
Aš žinau, kad dar kartą buvo sukurta archyvų juosta dar viena diena, tačiau šiandien turime archyvo formato rinkmenas, kurios abisurinkti failus ir atlikti suspaudimą tame pačiame loginio failo formate.
Klausimai:
- Ar agregavimo metu /compression/ dekompresijos stadijoje yra vykdymo banga, kai naudojamas taras, įterptas į gzip arba bzip2, lyginant su failų formatu, kuris agreguoja ir suspaudžia tą pačią duomenų struktūrą?Tarkime, kad palyginamas kompresoriaus veikimo laikas yra identiškas( pvz., Gzip ir Deflate yra panašūs).
- Ar yra darf formato formato funkcijos, kad kitų failų formatų, tokių kaip. 7z ir. zip, neturite?
- Kadangi tar yra toks senas failo formatas ir šiandien yra naujesni failų formatai, kodėl derva( ar įkeliama į gzip, bzip2 ar net naują xz) yra tokia plačiai naudojama šiandien GNU / Linux, Android, BSD ir kt. UNIX operacines sistemas, skirtas failų perkėlimui, programos šaltiniui ir dvejetainiams atsisiuntimams, o kartais net ir paketų tvarkytuvo formatu?
Tai visiškai pagrįstas klausimas;per pastaruosius trisdešimt metų kompiuterių pasaulyje labai pasikeitė, bet vis dar naudojame "tar" formatą.Kokia istorija?
Atsakymas
"SuperUser" autorius Allquixotic siūlo keletą įžvalgų apie tarinio formato ilgaamžiškumą ir funkcionalumą:
1 dalis: našumas
Čia yra dviejų atskirų darbo eigos ir jų veiklos palyginimas.
Turite failą diske blah.tar.gz, ty 1 GB gzip suspaustų duomenų, kurie nesuspaustų užima 2 GB( tokiu būdu suspaudimo lygis yra 50%).
Tokiu būdu, jei norite tai padaryti, jei atliktumėte archyvavimą ir suspaudimą atskirai, būtų:
tar tar cf blah.tar failus. ..Tai sukels blah.tar, kuris yra tik failų sujungimas. .. Nesuspaustos formos.
Tada jūs atliktumėte
gzip blah.tar. Tai skaitys blah.tar turinį iš disko, suspauskite juos gzip kompresijos algoritmu, įrašykite turinį į blah.tar.gz, tada atsaisykite( ištrinkite) failą blah.dervas.
Dabar atskleiskime!
Way 1
Jūs turite blah.tar.gz vienaip ar kitaip.
Jūs nusprendėte paleisti:
gunzip blah.tar.gzTai bus
- PRAŠOME 1GB suspausto duomenų turinio iš blah.tar.gz.
- PROCESS suspaustus duomenis per atmintyje esantį gzip dekompresorių.
- Kadangi atminties buferis užpildo "bloko" vertes duomenis, Įrašykite nesuspaustytus duomenis į diską fileblah.tar ir pakartokite, kol visi suspausti duomenys bus nuskaityti.
- Atšaukti( ištrinti) failą blah.tar.gz.
Dabar turite blah.tar disko, kuris yra nesuspaustas, bet kuriame yra vienas ar keli failai, su labai maža duomenų perdavimo struktūra. Failo dydis tikriausiai yra , pora baitų yra didesnė nei visų failo duomenų suma.
paleidžiate:
tar xvf blah.tarTai bus
- skaitykite 2GB nefasuoto duomenų turinio blah.tar ir dervos formato duomenų struktūras, įskaitant informaciją apie failų leidimus, failų pavadinimus, katalogus ir tt
- WRITE į diską2GB duomenų ir metaduomenų.Tai apima: duomenų struktūros / metaduomenų informacijos vertimą į atitinkamų diskelių ir katalogų sukūrimą, arba perrašymą esamų failų ir katalogų su naujais duomenimis.
Visi duomenys, kuriuos mes SKAITYTI iš disko šiame procese buvo 1 GB( gunzip) + 2 GB( tarui) = 3 GB.
Bendras duomenų, kuriuos mes WROTE įrašėme į šį procesą, buvo 2 GB( gunzip) + 2 GB( už tarą) + keli baitai metaduomenims = apie 4 GB.
Way 2
Jūs turite blah.tar.gz vieną ar kitą.
Jūs nusprendėte paleisti:
tar xvzf blah.tar.gzTai bus
- PRAŠOME PABAIGA 1GB suspausto duomenų turinį iš blah.tar.gz, bloko vienu metu, į atmintį.
- PROCESS suspaustus duomenis per atmintyje esantį gzip dekompresorių.
- Kai atminties buferis užpildo, jis bus vamzdis , kad duomenys atmintyje perduodami į tarformatinio failo formato analizatorių, kuriame bus skaitoma informacija apie metaduomenis ir tt bei nesuspaustų failų duomenys.
- Kadangi atminties buferis užpildo vario parserio failą, jis įrašys nesuspaustų duomenų į diską, sukurdamas failus ir katalogus ir užpildydamas nesuspaustų turinį.
Iš viso duomenų, kuriuos mes READ iš disko šiame procese, buvo 1GB suspaustų duomenų, laikotarpis.
Iš viso duomenų, kuriuos mes WROTE į disko šiame procese buvo 2GB nesuspaustų duomenų + keletą baitų metaduomenų = apie 2GB.
Jei pastebėjote, Way 2 disko įvesties / išvesties kiekis yra identiškas į disko įvesties / išvesties, vykdomos, tarkim, "Zip" arba "7-Zip" programose, koreguojant bet kokius suspaudimo santykio skirtumus.
Ir jei suspaudimo laipsnis yra jūsų rūpestis, naudokite Xz kompresorių, kad įkapsuliuotumėte tarą, ir turite LZMA2'ed TAR archyvą, kuris yra toks pat veiksmingas, kaip ir pažangiausias 7-Zip algoritmas: -)
2 dalis: savybės
tar "saugo" UNIX "leidimus savo failų metaduomenyse ir yra labai gerai žinomas ir išbandytas sėkmingai supakuoti katalogą su įvairiais skirtingais leidimais, simbolinėmis nuorodomis ir tt. Yra daugiau nei keletas atvejų, kai gali prireikti surinkti keletą failųį vieną failą ar srautą, bet nebūtinai suspausti( nors suspaudimas yra naudingas ir dažnai naudojamas).
3 dalis. Suderinamumas
Daugelis įrankių platinami šaltinio arba dvejetainiu formatu kaip. tar.gz arba. tar.bz2, nes tai yra "mažiausias bendrojo vardiklio" failo formatas: daugeliui Windows vartotojų prieiga prie. zip arba. rardekompresoriai, dauguma "Linux" įrenginių, net labiausiai paprastų, turės prieigą prie bent dervos ir gunzipo, nesvarbu, kiek jų yra, ar paruotos. Net "Android" firmware turi prieigą prie šių įrankių.
Nauji projektai, skirti auditorijoms, naudojančioms modernius platinimus, gali labai gerai platinti modernesniu formatu, pvz., ".tar.xz"( naudojant Xz( LZMA) glaudinimo formatą, kuris suspaudžia geriau nei gzip arba bzip2) arba. 7z, kuris yra panašusį ZIP arba RAR failų formatus, nes jis abu suspaudžia ir nurodo maketą, skirtą įvesti kelis failus į vieną failą.
Jūs nematote. 7z dažniau naudojamas dėl tos pačios priežasties, kad muzika nėra parduodama iš internetinių atsisiųstų parduotuvių visiškai naujose formose, tokiose kaip "Opus", arba "WebM" vaizdo įraše. Suderinamumas su žmonėmis, naudojančiais senas ar labai paprastas sistemas.
Ar ką nors įtraukti į paaiškinimą?Garsas išjungtas komentaruose. Norite skaityti daugiau atsakymų iš kitų "Tech-savvy Stack Exchange" vartotojų?Patikrinkite visą diskusijų temą čia.