Format arhiviranja tar je, u računalnim godinama, pravi Methuselah, ali još uvijek je u teškom korištenju danas. Što čini format toliko korisno dugo nakon njegova nastanka?
Današnja pitanja i odgovori nam se javljaju zahvaljujući SuperUseru - podjele Stack Exchange-a, zajednice-driven grupiranja Q & A web stranica.
SuperUser čitač MarcusJ znatiželjan je za format tar i zašto ga još uvijek koristimo nakon svih ovih godina:
Znam da je tar za arhive na vrpcu natrag na dan, ali danas imamo arhive formate datoteka koje oba skupljaju datoteke i izvode kompresiju unutar istog logičkog formata datoteka.
Pitanja:
- Postoji li kazna za zaračunavanje / kompresija / dekompresiju za upotrebu katrana obuhvaćena gzipom ili bzipom2, u usporedbi s upotrebom formata datoteke koja agregira i komprimira u istoj strukturi podataka? Pretpostavimo da se runtime kompresora uspoređuju identični (npr. Gzip i Deflate su slični).
- Postoje li značajke formata tar datoteke koji drugi formati datoteka, kao što su .7z i .zip nemaju?
- Budući da je katastar takav stari format datoteka i danas postoje novi formati datoteka, zašto je tar (bez obzira jesu li zabilježeni u gzipu, bzip2 ili čak i novom xz) još uvijek naširoko koristi na GNU / Linuxu, Androidu, BSD i drugim takvim UNIX operacijskih sustava, za prijenos datoteka, izvor programa i binarna preuzimanja, a ponekad i kao oblik upravitelja paketima?
To je savršeno razumno pitanje; toliko se toga promijenilo u računalnom svijetu u proteklih trideset godina, ali još uvijek koristimo format tar. Što je to priča?
SuperUser suradnik Allquixotic pruža uvid u dugovječnost i funkcionalnost tar formata:
Dio 1: Izvedba
Evo usporedbe dvaju odvojenih tijekova rada i onoga što rade.
Imate datoteku na disku
blah.tar.gz
što je, recimo, 1 GB gzip komprimiranih podataka koji, kada nisu komprimirani, zauzimaju 2 GB (tako da omjer kompresije od 50%).Način na koji biste to stvorili, ako biste zasebno obavili arhiviranje i kompresiju, bili bi:
tar cf blah.tar datoteke ...
To bi rezultiralo
blah.tar
što je puka agregacijadatoteka ...
u nekomprimiranom obliku.Onda biste to učinili
gzip blah.tar
Ovo bi pročitalo sadržaj
blah.tar
s diska, stisnuti ih kroz algoritam gzip kompresije, napisati sadržajblah.tar.gz
, pa prekinite vezu (brisanje) datotekeblah.tar
.Sada, otpusti!
Način 1
Imaš
blah.tar.gz
, na ovaj ili onaj način.Odlučite se pokrenuti:
gunzip blah.tar.gz
Ovo će
- PROČITAJTE 1GB komprimirani sadržaj podataka od
blah.tar.gz
.- PROCESI komprimirani podaci kroz
gzip
dekompresora u memoriji.- Budući da se memorijski međuspremnik popunjava podatkom "bloka", unesite nekomprimirane podatke u datoteku
blah.tar
na disku i ponovite sve dok se ne čitaju svi komprimirani podaci.- Prekini vezu (brisanje) datoteke
blah.tar.gz
.Sada, imate
blah.tar
na disku, koji je nekompresiran, ali sadrži jednu ili više datoteka u njemu, s vrlo niskom strukturom podataka iznad glave. Vjerojatno je veličina datotekepar bajtova veća od zbroja svih podataka o datotekama.Ti trči:
tar xvf blah.tar
Ovo će
- Čitajte 2GB nekomprimiranih podataka
blah.tar
ikatran
strukture podataka formata datoteka, uključujući informacije o dozvolama datoteka, nazive datoteka, imenike itd.- PISA na disk 2GB podataka plus metapodatke. To uključuje sljedeće: prevođenje podataka strukture / metapodataka u stvaranje novih datoteka i direktorija na disku prema potrebi ili prepisivanje postojećih datoteka i direktorija s novim sadržajima podataka.
Ukupni podaci miČITATI s diska u ovom procesu bio je 1GB (za gunzip) + 2GB (za tar) = 3GB.
Ukupni podaci miSASTAVILE na disk u ovom procesu je 2GB (za gunzip) + 2GB (za tar) + nekoliko bytes za metapodatke = oko 4GB.
Put 2
Imaš
blah.tar.gz
, na ovaj ili onaj način.Odlučite se pokrenuti:
tar xvzf blah.tar.gz
Ovo će
- PROČITAJTE 1GB komprimirani sadržaj podataka od
blah.tar.gz
, blok odjednom, u memoriju.- PROCESI komprimirani podaci kroz
gzip
dekompresora u memoriji.- Kako se memorijski međuspremnik popunjava, to ćecijev da podaci, u memoriji, do
katran
parsera formata datoteka koji će čitati informacije o metapodacima i sl. te podatke koji nisu komprimirani.- Kako se memorijski memorijski spremnik puni u
katran
file parser, to će WRITE ne komprimirani podaci na disk, stvaranjem datoteka i direktorija i popunjavajući ih s nekompresiranim sadržajem.Ukupni podaci miČITATI s diska u ovom procesu bio je 1 GB komprimiranih podataka, razdoblje.
Ukupni podaci miSASTAVILE na disk u ovom procesu bio je 2GB nekomprimiranih podataka + nekoliko bajtova za metapodatke = oko 2 GB.
Ako primijetite, količina I / O diska u sustavuPut 2 jeidentičan na disk I / O izvode, recimo,
poštanski
ili7-Poštanski
programa, podešavanje za bilo kakve razlike u omjeru kompresije.Ako je vaš omjer kompresije, upotrijebite
xz
kompresor za inkapsulacijukatran
, a imate LZMA2'A TAR arhivu koja je jednako učinkovita kao i najnapredniji algoritam koji je dostupan7-Poštanski
:-)Dio 2: Značajke
katran
pohranjuje UNIX dopuštenja unutar svojih metapodataka datoteka i vrlo je poznat i testiran za uspješno spremanje direktorija sa svim vrstama različitih dozvola, simboličnih veza itd.Postoji više od nekoliko slučajeva u kojima bi se moglo zatrebati gomila datoteka u jednu datoteku ili stream, ali ne nužno ga komprimirati (iako je kompresija korisna i često se koristi).Dio 3: Kompatibilnost
Mnogi alati se distribuiraju u obliku izvora ili binarnog formata kao .tar.gz ili .tar.bz2, jer je format datoteke "najniži zajednički nazivnik": slično kao i većina korisnika sustava Windows imaju pristup .zip ili .rar dekompresorima, većini Linux instalacija, čak i najosnovniji, imat će pristup baru katranu i gunzipu, bez obzira koliko je star ili srušen. Čak i Androidovi firmwares imaju pristup tim alatima.
Novi projekti koji ciljaju publiku koja koristi moderne distribucije može se vrlo dobro distribuirati u suvremenijem formatu, kao što je .tar.xz (koristeći format kompresije Xz (LZMA), koji se komprimira bolje od gzip ili bzip2) ili .7z koji je sličan Zip ili Rar formata datoteka, jer oboje oblaže i određuje izgled za inkapsuliranje više datoteka u jednu datoteku.
Ne vidite .7z češće se koristi iz istog razloga zbog kojeg glazba nije prodana iz online trgovina za preuzimanje u potpuno novim formatima poput Opusa ili videozapisa u WebM-u. Kompatibilnost s ljudima koji rade drevni ili vrlo osnovni sustavi.
Imate li nešto za objašnjenje? Zvuči u komentarima. Želite li pročitati više odgovora od drugih tehnoloških korisnika Stack Exchangea? Pogledajte ovdje cijelu raspravu.