Каково преимущество использования формата тонового файла сегодня?

Оглавление:

Каково преимущество использования формата тонового файла сегодня?
Каково преимущество использования формата тонового файла сегодня?

Видео: Каково преимущество использования формата тонового файла сегодня?

Видео: Каково преимущество использования формата тонового файла сегодня?
Видео: Что если не активировать Windows, как долго она проработает и будет ли нормально работать? - YouTube 2024, Апрель
Anonim
 Формат архивации архивации - это, в вычислительные годы, настоящий Мафусал, но он все еще используется в настоящее время. Что делает формат tar столь полезным долго после его создания?
Формат архивации архивации - это, в вычислительные годы, настоящий Мафусал, но он все еще используется в настоящее время. Что делает формат tar столь полезным долго после его создания?

Сегодняшняя сессия вопросов и ответов приходит к нам благодаря SuperUser - подразделению Stack Exchange, основанной на сообществах сайтам Q & A.

Вопрос

Считыватель SuperUser MarcusJ интересуется форматом tar и почему мы все еще используем его после всех этих лет:

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?

Это вполне разумный вопрос; так много изменилось в вычислительном мире за последние тридцать лет, но мы по-прежнему используем формат tar. В чем дело?

Ответ

SuperUser contributor Allquixotic предлагает некоторое представление о долговечности и функциональности формата 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

который, скажем, 1 ГБ сжатых данных gzip, который при несжатом состоянии занимает 2 ГБ (поэтому степень сжатия составляет 50%).

Способ создания этого, если вы собираетесь делать архивирование и сжатие отдельно, будет следующим:

tar cf blah.tar files …

Это приведет к

blah.tar

который является простым агрегатом

files …

в несжатой форме.

Тогда вы будете делать

gzip blah.tar

Это означало бы содержание

blah.tar

с диска, сжать их через алгоритм сжатия gzip, записать содержимое в

blah.tar.gz

затем отсоединить (удалить) файл

blah.tar

Теперь давайте разложим!

Способ 1

У тебя есть

blah.tar.gz

так или иначе.

Вы решили запустить:

gunzip blah.tar.gz

Это будет

  • ПРОЧИТАЙТЕ сжатые данные сжатого содержимого 1 ГБ

    blah.tar.gz

  • ПРОЦЕССА сжатые данные через

    gzip

    декомпрессора в памяти.

  • Поскольку буфер памяти заполняет «ценность блока», WRITE несжатые данные в файл

    blah.tar

    на диске и повторять до тех пор, пока не будут прочитаны все сжатые данные.

  • Отключить (удалить) файл

    blah.tar.gz

Теперь у вас есть

blah.tar

на диске, который несжатый, но содержит один или несколько файлов в нем, с очень низкими издержками структуры данных. Размер файла, вероятно,пару байт чем сумма всех файлов данных.

Ты бежишь:

tar xvf blah.tar

Это будет

  • ПРОЧИТАЙТЕ 2 ГБ несжатого содержимого данных

    blah.tar

    и

    tar

    файловых форматов, включая информацию о разрешениях файлов, именах файлов, каталогах и т. д.

  • ЗАПИСЬ на диск 2 ГБ данных плюс метаданные. Это включает в себя: перевод информации о структуре данных / метаданных в создание новых файлов и каталогов на диске по мере необходимости или переписывание существующих файлов и каталогов с новым содержимым данных.

Все данные мы ЧИТАТЬ с диска в этом процессе было 1 ГБ (для gunzip) + 2 ГБ (для tar) = 3 ГБ.

Все данные мы НАПИСАЛ на диск в этом процессе было 2 ГБ (для gunzip) + 2 ГБ (для tar) + несколько байтов для метаданных = около 4 ГБ.

Путь 2

У тебя есть

blah.tar.gz

так или иначе.

Вы решили запустить:

tar xvzf blah.tar.gz

Это будет

  • ПРОЧИТАЙТЕ сжатые данные сжатого содержимого 1 ГБ

    blah.tar.gz

    блок за раз, в память.

  • ПРОЦЕССА сжатые данные через

    gzip

    декомпрессора в памяти.

  • По мере заполнения буфера памяти он будет труба эти данные в памяти до

    tar

    синтаксический анализатор формата файла, который будет считывать информацию о метаданных и т. д. и данные несжатого файла.

  • Поскольку буфер памяти заполняется в

    tar

    файловый парсер, он будет записывать несжатые данные на диск, создавая файлы и каталоги и заполняя их несжатым содержимым.

Все данные мы ЧИТАТЬ с диска в этом процессе было 1 ГБ сжатых данных, период.

Все данные мы НАПИСАЛ на диск в этом процессе было 2 ГБ несжатых данных + несколько байтов для метаданных = около 2 ГБ.

Если вы заметили, количество дискового ввода-вывода в Путь 2 являетсяидентичный к дискретному вводу-выводу, выполняемому, скажем,

Zip

или же

7-Zip

программ, регулирующих любые различия в степени сжатия.

И если степень сжатия является вашей проблемой, используйте

Xz

компрессор для инкапсуляции

tar

и у вас есть архив TAR LZMA2, который так же эффективен, как и самый продвинутый алгоритм, доступный для

7-Zip

:-)

Часть 2: Особенности

tar

хранит разрешения UNIX в своих метаданных файла и хорошо известна и проверена для успешной упаковки каталога со всеми различными разрешениями, символическими ссылками и т. д. Существует более чем несколько примеров, когда может потребоваться объединить кучу файлов в один файл или поток, но не обязательно сжимать его (хотя сжатие полезно и часто используется).

Часть 3: Совместимость

Многие инструменты распространяются в исходной или двоичной форме как.tar.gz или.tar.bz2, потому что это формат «наименьшего общего знаменателя»: как и большинство пользователей Windows имеют доступ к распаковкам.zip или.rar, большинству установок Linux, даже самые простые, будут иметь доступ, по крайней мере, к tar и gunzip, независимо от того, сколько лет или пошло. Даже прошивки для Android имеют доступ к этим инструментам.

Новые проекты, предназначенные для аудиторий, работающих в современных дистрибутивах, могут очень распространяться в более современном формате, таком как.tar.xz (с использованием формата сжатия Xz (LZMA), который сжимается лучше, чем gzip или bzip2) или.7z, что аналогично Zip или Rar, так как он сжимает и задает макет для инкапсуляции нескольких файлов в один файл.

Вы не видите.7z чаще используются по той же причине, что музыка не продается из магазинов онлайн-загрузки в совершенно новых форматах, таких как Opus, или видео в WebM. Совместимость с людьми, использующими древние или очень простые системы.

Есть что добавить к объяснению? Звучит в комментариях.Хотите узнать больше ответов от других пользователей Windows? Посмотрите здесь полную дискуссионную тему.

Рекомендуемые: