Объяснение и сравнение файлов zip и tar.gz (архивация и алгоритм DEFLATE)

ГлавнаяДругие контенты, Новости, ТехнологииОбъяснение и сравнение файлов zip и tar.gz (архивация и алгоритм DEFLATE)
Объяснение и сравнение файлов zip и tar.gz (архивация и алгоритм DEFLATE)
Объяснение и сравнение файлов zip и tar.gz (архивация и алгоритм DEFLATE)
В этом видео я объясняю сходства и различия между двумя популярными форматами сжатых архивов, zip в Windows и tar.gz в мире *nix. Оба формата обычно используют одно и то же сжатие, а также служат способом сбора файлов в архив, однако есть некоторые фундаментальные различия между тем, как они работают и почему они используются для разных целей.

Я обсуждаю два основных этапа сжатия и линеаризации файлов в архив, и чем каждый этап отличается в двух форматах, а также преимущества и недостатки каждой реализации. Надеюсь, вам понравится видео и вы узнаете что-то новое!

Это еще одно видео, которое местами немного бессвязно (его сократили с более чем 30 минут). Я добавил временные метки, чтобы вы могли легко переходить между интересующими вас разделами. Заранее извиняюсь за обрезанный (и сильно сжатый) звук, он был записан случайно с усилением микрофона на 10 дБ на рекордере MP3 128K, что делает комбинацию сомнительной.

## Временные метки

### Введение
00:00 — Введение
00:19 — Что такое файлы zip и tar?
01:45 — Gzip (и другие компрессоры)
02:45 — Зачем использовать tar вместо zip в Linux?

### В чем разница?
03:48 — Как работает tar?
04:39 — Как работает zip?

### Сравнение
05:09 — Преимущества zip-архива
06:46 — Преимущество tar.gz (и потокового сжатия)
08:30 — Недостатки смолы

### Дальнейшее обучение
09:30 — Заметки о 7zip и .gz.tar
10:40 — Индексированные файлы tar с помощью pixz (и сравнение с 7z)
13:30 — Что следует использовать?

15:10 — Заключение

## Ссылки (раздел «Стань умнее»)

Алгоритм DEFLATE:

Вики: https://en.wikipedia.org/wiki/Deflate
Как работает DEFLATE (хорошее резюме): https://zlib.net/feldspar.html
Полная спецификация: https://datatracker.ietf.org/doc/html/rfc1951

Формат TAR:

Вики: https://en.wikipedia.org/wiki/Tar_(computing)
Страница руководства: https://linux.die.net/man/1/tar
Спецификации формата tar: https://www.gnu.org/software/tar/manual/html_node/Standard.html

Gzip: (на основе DEFLATE)

Вики: https://en.wikipedia.org/wiki/Gzip
Домашняя страница: https://www.gnu.org/software/gzip/

Bzip2:

Вики: https://en.wikipedia.org/wiki/Bzip2.
Домашняя страница: https://www.sourceware.org/bzip2/

Утилиты XZ: (сжатие LZMA2)

Вики: https://en.wikipedia.org/wiki/XZ_Utils
Домашняя страница: https://tukaani.org/xz/

pixz: (параллельно индексированный xz)
https://github.com/vasi/pixz

pigz: (параллельная реализация gz)
https://github.com/madler/pigz

Lzip: (также основан на LZMA2)

Домашняя страница: https://www.nongnu.org/lzip/

Сжатие LZMA2:

Вики: https://en.wikipedia.org/wiki/Lempel%E2%80%93Ziv%E2%80%93Markov_chain_algorithm

Сжатие по стандарту Z: (также известное как zstd)

Вики: https://en.wikipedia.org/wiki/Zstd
Домашняя страница: https://facebook.github.io/zstd/
Источник: https://github.com/facebook/zstd

7zip: (также обычно LZMA)

Вики: https://en.wikipedia.org/wiki/7-Zip
Домашняя страница: https://www.7-zip.org/
Исходный код: https://sourceforge.net/projects/sevenzip/

p7zip (порт POSIX): http://p7zip.sourceforge.net/

Почтовый индекс: (обычно СДУВАТЬ)

Вики: https://en.wikipedia.org/wiki/ZIP_(file_format)
Характеристики: https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT

Dar: (конкурирующий новый формат для tar)
http://dar.linux.free.fr/

## Использованный контент:
Значки Zip и Tar в миниатюре от FlatIcon.
Финальная музыка — We'll Meet Again группы TheFatRat.

## Разъяснения и исправления

Просто чтобы прояснить несколько вещей, прежде чем я получу комментарии: преимущество «только распаковки файла», о котором я упоминал в zip, заключается в том, что zip (и 7z) хранят индекс в начале. Если бы вы использовали .gz.tar, вы бы не получили этого преимущества, так как tar не индексируется. Далее, когда я говорю «индекс файла tar находится в конце», я имею в виду, что если вам нужен список файлов (как это мог бы сделать индекс), вам нужно прочитать архив до конца, как будто там есть индекс (у файлов tar нет индекса, только несколько байт в начале каждого файла). Таким образом, чтобы получить список файлов, вам нужно прочитать эти байты в начале каждого файла, то есть вам нужно прочитать весь архив. Надеюсь, это проясняет ситуацию.

Уточнение: pigz не индексируется, pixz индексируется. Pixz обратно совместим с xz, хотя оба в настоящее время поддерживают многопоточность.

(будет добавлено больше)

Пожалуйста, воспользуйтесь возможностью и поделитесь этим видео с друзьями и семьей, если вы найдете его полезным.

No Comments

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *