21Aug

Apa Keuntungan Menggunakan Format File Tar Hari Ini?

click fraud protection


Format pengarsipan tar adalah, dalam tahun-tahun komputasi, Metusalah benar-benar masih digunakan sampai saat ini. Apa yang membuat format tar begitu berguna lama setelah awal?

Pertanyaan Hari Ini &Sesi jawaban datang kepada kami atas izin SuperUser - subdivisi dari Stack Exchange, pengelompokan berbasis komunitas dari Q & A situs web.

Pertanyaan Pembaca superuser

MarcusJ penasaran dengan format tar dan mengapa kita masih menggunakannya setelah bertahun-tahun ini:

Saya tahu tar itu dibuat untuk arsip rekaman di hari ke hari, namun hari ini kami memiliki format file arsip yang keduanyafile agregat dan melakukan kompresi dalam format file logis yang sama. Pertanyaan

:

  • Apakah ada hukuman kinerja selama tahap dekompresi /compression/ agregasi untuk menggunakan tar yang dienkapsulasi dalam gzip atau bzip2, bila dibandingkan dengan menggunakan format file yang melakukan agregasi dan kompresi pada struktur data yang sama? Asumsikan runtime kompresor dibandingkan sama( misalnya gzip dan Deflate serupa).
  • instagram viewer
  • Apakah ada fitur format file tar yang format file lainnya, seperti. 7z dan. zip tidak?
  • Karena tar adalah format file lama, dan format file yang lebih baru ada saat ini, mengapa tar( baik yang dienkapsulasi dalam gzip, bzip2 atau bahkan xz baru) yang masih begitu banyak digunakan saat ini di GNU / Linux, Android, BSD, dan lainnyaSistem operasi UNIX, untuk transfer file, sumber program dan unduhan biner, dan kadang-kadang bahkan sebagai format manajer paket?

Itu pertanyaan yang sangat masuk akal;Begitu banyak yang telah berubah di dunia komputasi dalam tiga puluh tahun terakhir tapi kami masih menggunakan format tar. Apa ceritanya?

Jawaban

SuperUser kontributor Allquixotic menawarkan beberapa wawasan tentang umur panjang dan fungsionalitas format tar:

Bagian 1: Kinerja

Berikut adalah perbandingan dua alur kerja terpisah dan apa yang mereka lakukan. Anda memiliki file pada disk blah.tar.gz yang, katakanlah, 1 GB data kompresi gzip yang, jika tidak dikompres, menempati 2 GB( jadi rasio kompresi 50%).

Cara Anda membuat ini, jika Anda ingin melakukan pengarsipan dan kompresi secara terpisah, adalah:

file tar cf blah.tar. ..

Ini akan menghasilkan blah.tar yang merupakan kumpulan file saja.dalam bentuk yang tidak dikompres.

Kemudian anda akan melakukan

gzip blah.tar

Ini akan membaca isi blah.tar dari disk, kompres mereka melalui algoritma kompresi gzip, tulis isinya ke blah.tar.gz, lalu hapus( hapus) file bla.ter.

Sekarang, ayo dekompresi!

Way 1

Anda memiliki blah.tar.gz, dengan satu atau lain cara.

Anda memutuskan untuk menjalankan:

gunzip blah.tar.gz

Ini akan

  • BACA isi data terkompresi 1GB dari blah.tar.gz. PROSES
  • mengkompres data melalui gzip decompressor di memori.
  • Saat buffer memori terisi dengan data "blok", TULIS data yang tidak terkompresi ke dalam fileblah.tar pada disk dan ulangi sampai semua data yang dikompres dibaca.
  • Unlink( hapus) file blah.tar.gz.

Sekarang, Anda memiliki blah.tar pada disk, yang tidak dikompres namun berisi satu atau beberapa file di dalamnya, dengan struktur data sangat rendah. Ukuran file mungkin beberapa byte lebih besar dari jumlah semua data file.

Anda menjalankan:

tar xvf blah.tar

Ini akan

  • BACA isi data terkompresi 2GB blah.tar dan struktur data format file tar, termasuk informasi tentang hak akses file, nama file, direktori, dll.
  • TULIS ke disk2GB data plus metadata. Ini melibatkan: menerjemahkan struktur data / informasi metadata ke dalam membuat file dan direktori baru pada disk yang sesuai, atau menulis ulang file dan direktori yang ada dengan isi data baru.

Total data yang kami asumsikan dari disk dalam proses ini adalah 1GB( untuk gunzip) + 2GB( untuk tar) = 3GB.

Total data yang kami unduh ke ke disk dalam proses ini adalah 2GB( untuk gunzip) + 2GB( untuk tar) + beberapa byte untuk metadata = sekitar 4GB.

Way 2

Anda memiliki blah.tar.gz, dengan satu atau lain cara.

Anda memutuskan untuk menjalankan:

tar xvzf blah.tar.gz

Ini akan

  • BACA isi data terkompresi 1GB dari blah.tar.gz, satu blok pada satu waktu, ke dalam memori. PROSES
  • mengkompres data melalui gzip decompressor di memori.
  • Saat buffer memori terisi, akan menggunakan , data, memori, hingga parser format file tar, yang akan membaca informasi tentang metadata, dll dan data file yang tidak dikompres.
  • Saat buffer memori terisi dalam file parser tar, ia akan MENULIS data yang tidak dikompres ke disk, dengan membuat file dan direktori dan mengisinya dengan isi yang tidak dikompres.

Total data yang kami asumsikan dari disk dalam proses ini adalah 1GB data terkompresi, titik.

Total data yang kami gunakan WROTE ke dalam proses ini adalah data terkompresi 2GB + beberapa byte untuk metadata = sekitar 2GB.

Jika Anda perhatikan, jumlah disk I / O di Way 2 adalah identik ke disk I / O yang dilakukan oleh, katakanlah, program Zip atau7-Zip, menyesuaikan perbedaan dalam rasio kompresi.

Dan jika rasio kompresi menjadi perhatian Anda, gunakan kompresor Xz untuk merangkum tar, dan Anda memiliki arsip TRA LZMA2'ed, yang sama efisiennya dengan algoritma paling canggih yang tersedia untuk 7-Zip: -)

Bagian 2: Fitur

tar menyimpan izin UNIX dalam metadata file-nya, dan sangat terkenal dan diuji karena berhasil mengepak sebuah direktori dengan segala macam perizinan yang berbeda, tautan simbolis, dll. Ada lebih dari beberapa contoh di mana orang mungkin perlu menggandakan sekumpulan fileke dalam satu file atau stream, tapi belum tentu kompres itu( meski kompresi itu berguna dan sering digunakan).

Bagian 3: Kompatibilitas

Banyak alat didistribusikan dalam bentuk sumber atau biner seperti. tar.gz atau. tar.bz2 karena ini adalah format file "common denominator terendah": hampir seperti kebanyakan pengguna Windows yang memiliki akses ke. zip atau. rardekompresor, kebanyakan instalasi Linux, bahkan yang paling dasar sekalipun, akan memiliki akses setidaknya pada tar dan gunzip, tidak peduli seberapa tua atau dikupas. Bahkan Firmware Android pun memiliki akses ke alat ini.

Proyek baru yang menargetkan pemirsa yang menggunakan distribusi modern dapat mendistribusikan dengan sangat baik dalam format yang lebih modern, seperti format. tar.xz( menggunakan format kompresi Xz( LZMA), yang memampatkan lebih baik daripada gzip atau bzip2), atau. 7z, yang serupake format file Zip atau Rar karena keduanya memampatkan dan menentukan tata letak untuk mengenkapsulasi beberapa file ke dalam satu file.

Anda tidak melihat. 7z lebih sering digunakan karena alasan yang sama bahwa musik tidak dijual dari toko unduhan online dalam format baru seperti Opus, atau video di WebM.Kompatibilitas dengan orang-orang yang menjalankan sistem kuno atau sangat mendasar.

Punya sesuatu untuk ditambahkan ke penjelasan? Terdengar dalam komentar. Ingin membaca lebih banyak jawaban dari pengguna Stack Exchange tech-savvy lainnya? Simak thread diskusi selengkapnya disini.