Apa Keuntungan Menggunakan Format File Tar Hari Ini?

Daftar Isi:

Apa Keuntungan Menggunakan Format File Tar Hari Ini?
Apa Keuntungan Menggunakan Format File Tar Hari Ini?

Video: Apa Keuntungan Menggunakan Format File Tar Hari Ini?

Video: Apa Keuntungan Menggunakan Format File Tar Hari Ini?
Video: APAKAH OPSI PENGEMBANG BERBAHAYA.? - YouTube 2024, April
Anonim
 Format pengarsipan tar, dalam tahun-tahun komputasi, Metusalah yang sesungguhnya namun masih digunakan saat ini. Apa yang membuat format tar sangat berguna lama setelah dimulai?
Format pengarsipan tar, dalam tahun-tahun komputasi, Metusalah yang sesungguhnya namun masih digunakan saat ini. Apa yang membuat format tar sangat berguna lama setelah dimulai?

Sesi Tanya & Jawab Hari ini hadir untuk memberi kami SuperUser - subdivisi Stack Exchange, pengelompokan situs web Q & A berbasis komunitas.

Pertanyaan

Pembaca SuperUser, MarcusJ ingin tahu tentang format tar dan mengapa kami masih menggunakannya setelah bertahun-tahun:

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?

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

Jawabannya

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

Part 1: Performance

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

You have a file on disk

blah.tar.gz

yaitu, katakanlah, 1 GB data terkompresi gzip yang, saat tidak dikompresi, menempati 2 GB (jadi rasio kompresi 50%).

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

tar cf blah.tar files …

Ini akan menghasilkan

blah.tar

yang merupakan agregasi belaka

files …

dalam bentuk tidak terkompresi.

Maka Anda akan melakukannya

gzip blah.tar

Ini akan membaca isi dari

blah.tar

dari disk, kompres melalui algoritma kompresi gzip, tulis konten ke

blah.tar.gz

lalu batalkan tautan (hapus) file tersebut

blah.tar

Sekarang, mari dekompresi!

Way 1

Kamu punya

blah.tar.gz

dengan satu atau lain cara.

Anda memutuskan untuk menjalankan:

gunzip blah.tar.gz

Ini akan

  • BACA konten data terkompresi 1GB dari

    blah.tar.gz

  • PROSES data terkompresi melalui

    gzip

    dekompresor dalam memori.

  • Saat buffer memori mengisi data “blok”, tuliskan data yang tidak dikompresi ke dalam file

    blah.tar

    pada disk dan ulangi sampai semua data yang dikompresi dibaca.

  • Hapus tautan (hapus) file

    blah.tar.gz

Sekarang kamu punya

blah.tar

pada disk, yang tidak terkompresi tetapi berisi satu atau lebih file di dalamnya, dengan overhead struktur data yang sangat rendah. Ukuran file mungkinbeberapa byte lebih besar dari jumlah semua data file.

Kamu lari:

tar xvf blah.tar

Ini akan

  • BACA konten data 2GB yang tidak dikompresi

    blah.tar

    dan

    tar

    struktur data format file, termasuk informasi tentang izin file, nama file, direktori, dll.

  • TULIS ke disk 2GB data ditambah metadata. Ini melibatkan: menerjemahkan struktur data / informasi metadata ke dalam membuat file baru dan direktori pada disk yang sesuai, atau menulis ulang file dan direktori yang ada dengan konten data baru.

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

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

Way 2

Kamu punya

blah.tar.gz

dengan satu atau lain cara.

Anda memutuskan untuk menjalankan:

tar xvzf blah.tar.gz

Ini akan

  • BACA konten data terkompresi 1GB dari

    blah.tar.gz

    blok pada suatu waktu, ke dalam memori.

  • PROSES data terkompresi melalui

    gzip

    dekompresor dalam memori.

  • Ketika buffer memori terisi, itu akan pipa data itu, di memori, hingga ke

    tar

    parser format file, yang akan membaca informasi tentang metadata, dll. dan data file yang tidak terkompresi.

  • Sebagai buffer memori mengisi di

    tar

    parser file, itu akan MENULIS data tidak terkompresi ke disk, dengan membuat file dan direktori dan mengisinya dengan konten yang tidak terkompresi.

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

Total data kami TULIS ke disk dalam proses ini adalah 2GB data tidak terkompresi + beberapa byte untuk metadata = sekitar 2GB.

Jika Anda perhatikan, jumlah disk I / O masuk Way 2 aku sidentik ke disk I / O dilakukan oleh, katakanlah,

Zip

atau

7-Zip

program, menyesuaikan untuk setiap perbedaan dalam rasio kompresi.

Dan jika rasio kompresi adalah kekhawatiran Anda, gunakan

Xz

kompresor untuk membungkus

tar

dan Anda memiliki arsip TAR LZMA2, yang seefisien algoritma paling canggih yang tersedia

7-Zip

:-)

Bagian 2: Fitur

tar

menyimpan izin UNIX dalam file metadata, dan sangat terkenal dan diuji untuk berhasil mengemas direktori dengan semua jenis izin yang berbeda, tautan simbolis, dll. Ada lebih dari beberapa contoh di mana seseorang mungkin perlu untuk menggandeng sekumpulan file ke dalam satu file atau aliran, tetapi tidak harus memampatkannya (meskipun kompresi berguna dan sering digunakan).

Bagian 3: Kompatibilitas

Banyak alat didistribusikan dalam bentuk sumber atau biner sebagai.tar.gz atau.tar.bz2 karena ini adalah format file "denominator terendah": seperti kebanyakan pengguna Windows memiliki akses ke.zip atau dekompresi.rar, sebagian besar instalasi Linux, bahkan yang paling dasar, akan memiliki akses ke setidaknya tar dan gunzip, tidak peduli berapa lama atau dikupas ke bawah. Bahkan firmware Android memiliki akses ke alat-alat ini.

Proyek baru yang menargetkan pemirsa yang menjalankan distribusi modern dapat didistribusikan dengan sangat baik dalam format yang lebih modern, seperti.tar.xz (menggunakan format kompresi Xz (LZMA), yang memampatkan lebih baik daripada gzip atau bzip2), atau.7z, yang mirip dengan format file Zip atau Rar karena keduanya memadatkan 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 daring dalam format baru seperti Opus, atau video di WebM. Kompatibilitas dengan orang-orang yang menjalankan sistem kuno atau sangat dasar.

Memiliki sesuatu untuk ditambahkan ke penjelasan? Bicaralah di komentar.Ingin membaca lebih banyak jawaban dari pengguna Stack Exchange yang paham teknologi lainnya? Lihat diskusi lengkap di sini.

Direkomendasikan: