Mājas lapa » » Kāda ir priekšrocība, lietojot darvas failu formātu šodien?

    Kāda ir priekšrocība, lietojot darvas failu formātu šodien?


    Darījumu arhivēšanas formāts, skaitļošanas gados, ir īsts Metuzala, tomēr šodien tas joprojām ir smags lietojums. Kas padara darvas formātu tik noderīgu ilgi pēc tās izveides?

    Šodienas jautājumu un atbilžu sesija mums dod pieklājību no SuperUser-Stack Exchange apakšnodaļas, kas ir kopienas orientēta Q & A tīmekļa vietņu grupa.

    Jautājums

    SuperUser lasītājs MarcusJ ir ziņkārīgs par darvas formātu un kāpēc mēs to joprojām lietojam pēc visiem šiem gadiem:

    Es zinu, ka dienas laikā lentes arhīviem tika darīts darvas darījums, bet šodien mums ir arhīva 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 stadijās ir izpildīts soda mērs, lai izmantotu gzip vai bzip2 iekapsulētu darvu, salīdzinot ar faila formātu, kas tajā pašā datu struktūrā apvieno un saspiež? Pieņemsim, ka salīdzināmā kompresora darbības laiks ir identisks (piemēram, gzip un deflate ir līdzīgi).
    • Vai ir darvas faila formāta funkcijas, kurām nav citu failu formātu, piemēram, .7z un .zip?
    • Tā kā darva ir tik vecs faila formāts, un mūsdienās pastāv jaunāki failu formāti, kāpēc darvas (kas ir iekapsulētas gzip, bzip2 vai pat jaunajā xz), šodien joprojām tiek plaši izmantotas GNU / Linux, Android, BSD un citās šādās UNIX sistēmās. operētājsistēmām, failu pārsūtīšanai, programmas avotiem un binārajām lejupielādēm, un dažreiz pat kā pakotņu pārvaldnieka formātā?

    Tas ir pilnīgi saprātīgs jautājums; tik daudz ir mainījies skaitļošanas pasaulē pēdējo trīsdesmit gadu laikā, bet mēs joprojām izmantojam darvas formātu. Kas ir stāsts?

    Atbilde

    SuperUser ziedotājs Allquixotic piedāvā ieskatu par darvas formāta ilgmūžību un funkcionalitāti:

    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 tas ir, piemēram, 1 GB gzip saspiestu datu, kas, nesaspiesti, aizņem 2 GB (tādējādi kompresijas pakāpe 50%).

    Veids, kā to izveidot, ja jūs darītu arhivēšanu un kompresiju atsevišķi, būtu:

    tar cf blah.tar faili ... 

    Tas radītu blah.tar kas ir tikai. \ t faili…  nesaspiestā veidā.

    Tad jūs darītu

    gzip blah.tar 

    Tas lasītu satura saturu blah.tar no diska, saspiežot tos caur gzip kompresijas algoritmu, ierakstiet saturu blah.tar.gz, pēc tam atvienojiet (dzēsiet) failu blah.tar.

    Tagad, izņemsimies!

    1. ceļš

    Tev ir blah.tar.gz, vienā veidā vai citā.

    Jūs nolemjat palaist:

    gunzip blah.tar.gz 

    Tas būs

    • LASĪT 1GB saspiestu datu saturu blah.tar.gz.
    • PROCESS saspiestos datus caur gzip dekompresors atmiņā.
    • Tā kā atmiņas buferis aizpilda ar “bloka” vērtību, WRITE uz saspiestos datus failāblah.tar uz diska un atkārto, līdz visi saspiesti dati tiek nolasīti.
    • Atvienojiet (dzēsiet) 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ūru. Iespējams, faila lielums pāris baiti lielāks par visu faila datu summu.

    Tu skrien:

    tar xvf blah.tar 

    Tas būs

    • LASĪT 2GB nesaspiestu datu saturu blah.tar un darva datņu formāta datu struktūras, tostarp informācija par failu atļaujām, failu nosaukumiem, katalogiem utt.
    • WRITE uz diska 2GB datu un metadatu. Tas ietver: datu struktūras / metadatu informācijas tulkošanu, veidojot jaunus failus un direktorijus uz diska, ja nepieciešams, vai pārrakstot esošos failus un direktorijus ar jaunu datu saturu.

    Kopējie dati mēs LASĪT no diska šajā procesā bija 1GB (gunzip) + 2GB (tar) = 3GB.

    Kopējie dati mēs WROTE šajā diskā šajā procesā bija 2GB (gunzip) + 2GB (tar) + daži baiti metadatiem = aptuveni 4GB.

    2. ceļš

    Tev ir blah.tar.gz, vienā veidā vai citā.

    Jūs nolemjat palaist:

    tar xvzf blah.tar.gz 

    Tas būs

    • LASĪT 1GB saspiestu datu saturu blah.tar.gz, vienā blokā, atmiņā.
    • PROCESS saspiestos datus caur gzip dekompresors atmiņā.
    • Tā kā atmiņas buferis piepildīsies, tas būs caurule datus, atmiņā, līdz darva faila formāta parsētājs, kas lasīs informāciju par metadatiem utt. un nesaspiestos faila datus.
    • Tā kā atmiņas buferis piepildās darva failu parsētājs, tas WRITE nesaspiestos datus uz disku, izveidojot failus un direktorijus un aizpildot tos ar nesaspiestu saturu.

    Kopējie dati mēs LASĪT no diska šajā procesā bija 1GB saspiestu datu periods.

    Kopējie dati mēs WROTE šajā diskā šajā procesā bija 2GB nesaspiesti dati + daži baiti metadatiem = aptuveni 2GB.

    Ja ievērojat, diska I / O daudzums 2. ceļš ir identisks uz diska I / O, ko veic, piemēram, Zip vai7-Zip programmām, pielāgojot kompresijas pakāpes atšķirības.

    Ja kompresijas pakāpe ir jūsu bažas, izmantojiet Xz kompresors darva, un jums ir LZMA2'ed TAR arhīvs, kas ir tikpat efektīvs kā visprogresīvākais algoritms 7-Zip :-)

    2. daļa: Funkcijas

    darva saglabā UNIX atļaujas tās metadatos, un tas ir ļoti labi zināms un pārbaudīts, lai veiksmīgi iesaiņotu direktoriju ar visu veidu dažādām atļaujām, simboliskām saitēm utt. Ir vairāk nekā daži gadījumi, kad var būt nepieciešams saspiest vairākus failus. vienā failā vai straumē, bet ne obligāti saspiest to (lai gan saspiešana ir noderīga un bieži tiek izmantota).

    3. daļa: Saderība

    Daudzi rīki tiek izplatīti avota vai binārajā formā kā .tar.gz vai .tar.bz2, jo tas ir "mazākais kopsaucējs" faila formāts: līdzīgi kā lielākā daļa Windows lietotāju ir piekļuve .zip vai .rar dekompresoriem, lielākā daļa Linux instalāciju, pat visvienkāršākā, būs pieejama vismaz darva un gunzip, neatkarīgi no tā, cik vecs vai pared. Pat Android firmwares ir piekļuve šiem rīkiem.

    Jauni projekti, kas vērsti uz auditorijām, kurās darbojas mūsdienīgi sadalījumi, var ļoti labi izplatīt modernākā formātā, piemēram, .tar.xz (izmantojot Xz (LZMA) saspiešanas formātu, kas saspiež labāk nekā gzip vai bzip2), vai .7z, kas ir līdzīgs Zip vai Rar failu formātus, jo tas saspiež un nosaka izkārtojumu vairāku failu iekapsulēšanai vienā failā.

    Jūs neredzat .7z biežāk tādu pašu iemeslu dēļ, ka mūzika netiek pārdota no tiešsaistes lejupielādes veikaliem pavisam jaunos formātos, piemēram, Opus vai WebM videoklipā. Saderība ar cilvēkiem, kas vada senas vai ļoti pamata sistēmas.


    Vai kaut kas jāpievieno paskaidrojumam? Skaņas izslēgšana komentāros. Vai vēlaties lasīt vairāk atbildes no citiem tehnoloģiju gudriem Stack Exchange lietotājiem? Apskatiet pilnu diskusiju pavedienu šeit.