Kāda ir priekšrocība, izmantojot Tar failu formātu šodien?

Satura rādītājs:

Kāda ir priekšrocība, izmantojot Tar failu formātu šodien?
Kāda ir priekšrocība, izmantojot Tar failu formātu šodien?

Video: Kāda ir priekšrocība, izmantojot Tar failu formātu šodien?

Video: Kāda ir priekšrocība, izmantojot Tar failu formātu šodien?
Video: Windows 10 Accessibility Features Empower Everyone - YouTube 2024, Aprīlis
Anonim
 Darvas arhivēšanas formāts skaitļošanas gados ir patiess Metusāls, bet šodien tas joprojām ir smagā lietošanā. Kas padara tar formātu tik noderīgu ilgu laiku pēc tā izveidošanas?
Darvas arhivēšanas formāts skaitļošanas gados ir patiess Metusāls, bet šodien tas joprojām ir smagā lietošanā. Kas padara tar formātu tik noderīgu ilgu laiku pēc tā izveidošanas?

Šodienas jautājumu un atbilžu sesija mums priecājas par SuperUser - Stack Exchange dalību, kas ir kopienas vadīta Q & A tīmekļa vietņu grupa.

Jautājums

SuperUser lasītājs MarcusJ ir interesanti par tar formātu un kāpēc mēs to joprojām izmantojam pēc visiem šiem gadiem:

I know that tar was made for tape archives back in the day, but today we have archive file formats that both aggregate files and perform compression within the same logical file format.

Questions:

  • Is there a performance penalty during the aggregation/compression/decompression stages for using tar encapsulated in gzip or bzip2, when compared to using a file format that does aggregation and compression in the same data structure? Assume the runtime of the compressor being compared is identical (e.g. gzip and Deflate are similar).
  • Are there features of the tar file format that other file formats, such as.7z and.zip do not have?
  • Since tar is such an old file format, and newer file formats exist today, why is tar (whether encapsulated in gzip, bzip2 or even the new xz) still so widely used today on GNU/Linux, Android, BSD, and other such UNIX operating systems, for file transfers, program source and binary downloads, and sometimes even as a package manager format?

Tas ir pilnīgi saprātīgs jautājums; pēdējos trīsdesmit gados tik daudz ir mainījusies skaitļošanas pasaulē, bet mēs joprojām izmantojam tar formātu. Kāds ir stāsts?

Atbilde

SuperUser veicinātājs Allquixotic piedāvā kādu ieskatu tar formāta ilgmūžībā un funkcionalitātē:

Part 1: Performance

Here is a comparison of two separate workflows and what they do.

You have a file on disk

blah.tar.gz

proti, 1 GB gzip-saspiestu datu, kas, nesaspiesti, aizņem 2 GB (tā saspiešanas koeficients ir 50%).

Veids, kā jūs to izveidojat, ja vēlaties atsevišķi arhivēt un saspiest, ir:

tar cf blah.tar files …

Tas radītu situāciju

blah.tar

kas ir tikai apvienošanās

files …

nesaspiests formā.

Tad jūs darītu

gzip blah.tar

Tas varētu izlasīt satura saturu

blah.tar

no diska, saspiest tos ar gzip kompresijas algoritmu, rakstīt saturu uz

blah.tar.gz

tad atsaista (dzēš) failu

blah.tar

Tagad atlaidīsim!

Ceļš 1

Tev ir

blah.tar.gz

vienā veidā vai citā.

Jūs nolemjat palaist:

gunzip blah.tar.gz

Tas būs

  • IZLASIET 1GB saspiestu datu saturu

    blah.tar.gz

  • PROCESS saspiestos datus, izmantojot

    gzip

    dekompresors atmiņā.

  • Tā kā atmiņas buferis aizpilda datus ar "bloka" vērtību, RAKSTIET nesaspiestos datus failā

    blah.tar

    uz diska un atkārtojiet, līdz visi saspiestie dati tiek nolasīti.

  • Atsaistīt (dzēst) failu

    blah.tar.gz

Tagad jums ir

blah.tar

uz diska, kas ir nesaspiests, bet tajā ir viens vai vairāki faili ar ļoti zemu datu struktūras pieskaitāmās izmaksas. Iespējams, ir faila lielumspāris baitus lielāks par visu failu datu summu.

Tu skrien:

tar xvf blah.tar

Tas būs

  • NOLASĪT 2 GB nesaspiestu datu saturu

    blah.tar

    un

    tar

    faila formāta datu struktūras, tostarp informācija par failu atļaujām, failu nosaukumiem, direktorijām utt.

  • RAKSTIET disku, lai iegūtu 2 GB datu un metadatus. Tas ietver: datu struktūras / metadatu informācijas tulkošanu, ja nepieciešams, izveidojot jaunus failus un direktorijus, vai pārrakstot esošos failus un direktorijus ar jaunu datu saturu.

Kopējie dati mums Lasīt no diska šajā procesā bija 1 GB (par gunzip) + 2 GB (taram) = 3 GB.

Kopējie dati mums WROTE uz diska šajā procesā bija 2GB (par gunzip) + 2 GB (par darvu) + daži baiti par metadatus = apmēram 4 GB.

2. ceļš

Tev ir

blah.tar.gz

vienā veidā vai citā.

Jūs nolemjat palaist:

tar xvzf blah.tar.gz

Tas būs

  • IZLASIET 1GB saspiestu datu saturu

    blah.tar.gz

    bloks vienlaikus, atmiņā.

  • PROCESS saspiestos datus, izmantojot

    gzip

    dekompresors atmiņā.

  • Tā kā atmiņas buferis aizpilda, tas būs caurule ka dati, atmiņā, līdz

    tar

    faila formāta parsētājs, kurš izlasīs informāciju par metadatus utt. un nesaspiestajiem faila datiem.

  • Tā kā atmiņas buferis aizpilda

    tar

    faila parsētājs, tā RAKSTS nesaspiesti dati uz disku, izveidojot failus un direktorijus un aizpildot tos ar nesaspiestu saturu.

Kopējie dati mums Lasīt no diska šajā procesā bija 1GB saspiestu datu periodu.

Kopējie dati mums WROTE uz diska šajā procesā bija 2GB nesaspiesti dati + daži baiti metadatiem = aptuveni 2 GB.

Ja pamanāt, diska I / O daudzums ir 2. ceļš iridentisks uz diska I / O veic, teiksim,

Zip

vai

7-Zip

programmas, pielāgojot jebkurai kompresijas pakāpes atšķirībām.

Un ja saspiešanas koeficients ir jūsu rūpes, izmantojiet

Xz

kompresors iekapsulēt

tar

un jums ir LZMA2'ed TAR arhīvs, kas ir tikpat efektīvs kā vismodernākais algoritms, kas pieejams

7-Zip

:-)

2.daļa: Funkcijas

tar

saglabā UNIX atļaujas savos faila metadatos un ir ļoti labi pazīstams un pārbaudīts, vai katalogs ir veiksmīgi iepakots, izmantojot dažāda veida atļaujas, simboliskas saites u.tml. Dažādos gadījumos var rasties vairāki gadījumi, kad var būt nepieciešams ielādēt vairākus failus vienu failu vai plūsmu, bet tas ne vienmēr ir saspiests (lai gan kompresija ir lietderīga un bieži vien tiek izmantota).

3.daļa: savietojamība

Daudzi rīki tiek izplatīti avota vai bināro formā kā.tar.gz vai.tar.bz2, jo tas ir "zemākais kopsaucējs" faila formāts: tāpat kā lielākajai daļai Windows lietotāju ir pieejami.zip vai.rar dekompresori, lielākā daļa Linux instalāciju, pat visvienkāršākā, būs pieejams vismaz tar un gunzip, neatkarīgi no tā, cik vecs vai sagriezts. Pat šiem Android ierīcēm ir piekļuve šiem rīkiem.

Jauni projekti, kuru mērķauditorija tiek izmantota mūsdienu izplatīšanai, ļoti labi var izplatīties mūsdienīgākā formātā, piemēram,.tar.xz (izmantojot Xz (LZMA) kompresijas formātu, kas saspiež labāk nekā gzip vai bzip2) vai.7z, kas ir līdzīgs Zip vai Rar failu formāti, jo tas gan saspiež un konkretizē izkārtojumu, lai iekļautu vairākus failus vienā failā.

Jūs neredzat.7z biežāk tiek izmantots tāda paša iemesla dēļ, ka mūzika netiek pārdota no tiešsaistes lejupielādes veikaliem pavisam jaunos formātos, piemēram, Opus vai video WebM. Savietojamība ar cilvēkiem, kuri darbojas vecās vai ļoti vienkāršās sistēmās.

Vai kaut ko pievienot paskaidrojumam? Skatieties komentāros.Vēlaties lasīt citas atbildes no citiem tehnoloģiju savvy Stack Exchange lietotājiem? Šeit skatiet pilnu diskusiju pavedienu.

Ieteicams: