If-Koubou

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

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


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:

Es zinu, ka dienas laikā ir izveidota lentu arhīvu darva, taču šodien mums ir arhīvu failu formāti, kas apvieno failus un veic saspiešanu tajā pašā loģiskā faila formātā.

Jautājumi:

  • Vai agregācijas / saspiešanas / dekompresijas posmos agregācijas / kompresijas / dekompresijas posmos ir izpildes sods par gripas vai bzip2 iekapsulētā taru izmantošanu, salīdzinot ar tāda faila formāta izmantošanu, kas apvieno un saspiežas tajā pašā datu struktūrā? Pieņemsim, ka salīdzināmā kompresora darbības laiks ir identisks (piemēram, gzip un Deflate ir līdzīgi).
  • Vai ir darf formāta formāta funkcijas, ka citos failu formātos, piemēram, .7z un .zip nav?
  • Tā kā tar ir tik vecs faila formāts un šodien ir jaunāki failu formāti, kāpēc dars (vai tas ir iekapsulēts gzip, bzip2 vai pat jaunajā xz) joprojām tiek plaši izmantots šodien GNU / Linux, Android, BSD un citos šādos UNIX operētājsistēmas, failu pārsūtīšanai, programmas avota un bināro lejupielādi, un dažreiz pat kā paketes pārvaldnieka formātu?

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ē:

1.daļa: veiktspēja

Šeit ir divu atsevišķu darbplūsmu salīdzinājums un tas, ko viņi dara.

Jums ir fails 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 faili ... 

Tas radītu situācijublah.tar kas ir tikai apvienošanāsfaili ... nesaspiests formā.

Tad jūs darītu

gzip blah.tar 

Tas varētu izlasīt satura saturublah.tar no diska, saspiest tos ar gzip kompresijas algoritmu, rakstīt saturu uzblah.tar.gz, tad atsaista (dzēš) failublah.tar.

Tagad atlaidīsim!

Ceļš 1

Tev irblah.tar.gz, vienā veidā vai citā.

Jūs nolemjat palaist:

gunzip blah.tar.gz 

Tas būs

  • IZLASIET 1GB saspiestu datu saturublah.tar.gz.
  • PROCESS saspiestos datus, izmantojotgzip 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) failublah.tar.gz.

Tagad jums irblah.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 saturublah.tar undarva 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 mumsLasīt no diska šajā procesā bija 1 GB (par gunzip) + 2 GB (taram) = 3 GB.

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

2. ceļš

Tev irblah.tar.gz, vienā veidā vai citā.

Jūs nolemjat palaist:

tar xvzf blah.tar.gz 

Tas būs

  • IZLASIET 1GB saspiestu datu saturublah.tar.gz, bloks vienlaikus, atmiņā.
  • PROCESS saspiestos datus, izmantojotgzip dekompresors atmiņā.
  • Tā kā atmiņas buferis aizpilda, tas būscaurule ka dati, atmiņā, līdzdarva faila formāta parsētājs, kurš izlasīs informāciju par metadatus utt. un nesaspiestajiem faila datiem.
  • Tā kā atmiņas buferis aizpildadarva faila parsētājs, tā RAKSTS nesaspiesti dati uz disku, izveidojot failus un direktorijus un aizpildot tos ar nesaspiestu saturu.

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

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

Ja pamanāt, diska I / O daudzums ir2. ceļš iridentisks uz diska I / O veic, teiksim,Zip vai7-zip programmas, pielāgojot jebkurai kompresijas pakāpes atšķirībām.

Un ja saspiešanas koeficients ir jūsu rūpes, izmantojietXz kompresors iekapsulētdarva, un jums ir LZMA2'ed TAR arhīvs, kas ir tikpat efektīvs kā vismodernākais algoritms, kas pieejams7-zip :-)

2.daļa: Funkcijas

darva saglabā UNIX atļaujas savos faila metadatos, un tā ir ļoti labi zināma un pārbaudīta, lai veiksmīgi iepakotu direktoriju ar visu veidu dažādām atļaujām, simboliskajām saitēm utt.Ir vairāk nekā daži gadījumi, kad vienam failam vai straumei var būt nepieciešams ielīmēt virkni failu, taču tas nav obligāti jāsaspiež (lai arī kompresija ir noderī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.