Инструкция
1
Общий принцип работы большинства архиваторов основан на алгоритме, который в 80-х годах прошлого века разработали исследователи А. Лампель и Я. Зив. Созданный Зивом и Лампелем алгоритм позволяет вычислять повторяющийся в файле код и таким образом снижать его размер. Для этого составляется словарь из последовательностей данных. Например, в бинарном коде файла содержится следующая комбинация: 10111011101110110011. Нетрудно заметить, что код 1011 в ней повторяется несколько раз. Архиватор определяет такой код и записывает в архив его только один раз, а при разархивировании снова подставляет код в нужные места файла.
2
Насколько хорошо архиватор будет сжимать файл, зависит от размера исходного словаря. Если словарь будет слишком большим, это скажется на размере архива. Если размер словаря будет слишком мал - в созданном архиве могут возникнуть ошибки. Повысить степень сжатия файла можно при помощи энтропийного кодирования (т.н. метод Хаффмана). При энтропийном кодировании повторяющиеся бинарные куски записываются с помощью короткого кода. В современных архиваторах энтропийное кодирование используется, как дополнительный способ кодирования.
3
В Unix-системах наиболее популярным архиватором является gzip. Этот архиватор сжимает данные без потерь и базируется на алгоритме Deflate. Сжатие файлов здесь происходит в два подхода - сначала заменяются повторяющиеся куски кода, а затем символы в них заменяются на новые символы по методу Хаффмана. Архиваторы для Unix-систем обладают рядом недостатков. Они ориентированы в первую очередь на архивы, состоящие их множества файлов, поэтому разархивирование одного файла происходит с трудом. Это происходит потому, что Unix-архиваторы рассматривают архив, как непрерывный массив данных всех упакованных в него файлов. Архив формируется на основе информации, содержащейся в каждом файле.
4
В Windows-системах распространены такие архиваторы, как WinZip, 7-zip и WinRAR. В отличие от Unix-систем, эти архиваторы ориентированы на работу как с отдельными файлами, так и с непрерывными архивами, состоящими из множества файлов. Большинство современных Windows-архиваторов «понимают» множество архивных форматов, поддерживают шифрование и способны упаковывать очень большие файлы (например, максимальный размер файла для архиватора WinRAR составляет более восьми миллиардов гигабайт).