1
24617

Архиватор - это просто! Как уменьшить файл

Что такое архиваторы, зачем они нужны и как научиться с ними работать? Разобраться Вам поможет этот компас!

на сайте с 5 мая 2008

Что это такое и с чем его едят?

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

Решение напрашивается само собой - как-то уменьшить размер файлов. Для этого нужно поместить их в архив. Архив - это специальный файл-контейнер, в котором заключен один или несколько файлов, обычно несколько, причём любого содержания: музыка, документы, какие-либо программы, даже... другие архивы.

В чём же особенность такого "супер-файла"? Архив позволяет уменьшить размер файлов, которые в него поместили! Проще всего это представить так: чемодан (архив), набили листками (файлами). Чемодан закрывают и сжимают с боков. Теперь он стал гораздо меньше занимать места, а до этого его бока раздувались. Но и после этой процедуры мы можем спокойно открыть чемодан и достать из него нужный нам лист.

Программы-архиваторы используют специальные алгоритмы сжатия, каждая программа использует свой способ уменьшения размера. Как это выглядит? Например, у нас есть набор букв "паааадцбааааав". А теперь мы решили испытать на нём свой алгоритм сжатия: вместо "аааа" напишем "4а", а вместо "ааааа" напишем "5а", где число перед символом "а" показывает, сколько раз подряд он встречается "а" в нашей строчке. Получаем: "п4адцб5ав" - эта строка уже меньше на 5 символов. Конечно, этот пример слишком искусственный, но зато он наглядно показывает принцип действия архиватора.

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

Кроме сжатия файла, архиватор должен ещё сохранить и данные о нём: имя, дату изменения, права доступа к нему и прочее, для песни - исполнителя, альбом и т.д. В архив можно поместить как один файл, так и несколько, причём можно заархивировать целую папку, вместе с содержащимися в ней файлами и другими папками, если они там присутствуют.

Ну и, конечно, кто-то должен уметь выполнять обратную операцию: извлечение файлов из архива. Эту процедуру выполняет распаковщик, который в подавляющем большинстве случаев объёдинён в одно целое с программой-архиватором.

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

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

Ещё одним интересным моментом является то, что архивация файлов проходит значительно медленнее, чем обратная операция. И если подумать, в этом нет ничего странного.

Характеристики архиваторов

Архиваторы можно разделить по двум основным критериям:

(Эти критерии являются взаимно обратными, то есть, чем выше скорость сжатия, тем слабее сожмётся файл, и наоборот).

  • По степени сжатия;
  • По скорости сжатия.

Архив

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

Многотомный архив

Сам архив также можно разделить на несколько частей - отдельных файлов, называемых томами.

Это бывает полезным при переносе большого количества данных и ограничении размера одной части, например, носителя данных (дискета, диск) или отправки электронного письма e-mail (при ограничении размера файла, который можно приложить к письму). Для распаковки многотомного архива обычно требуются все его части.

Непрерывный архив

Непрерывный архив (англ. solid archive) - это архив, при упаковке которого файлы сжимаются после их объединения в один большой непрерывный поток данных и при упаковке каждого файла (не считая первый) используется информация, содержащаяся в предыдущих файлах.

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

Однако у непрерывного архива есть свои недостатки. Его изменение, то есть добавление и удаление из него файлов, происходит медленнее. Извлечение отдельного файла, содержащегося в середине или конце непрерывного архива, тоже занимает больше времени, потому что для этого приходится анализировать все предыдущие упакованные файлы. Если непрерывный архив будет повреждён, то кроме файла, на данные которого приходится повреждение, не удастся извлечь и все файлы, следующие после него. Поэтому при создании непрерывных архивов желательно добавлять информацию для восстановления.

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

Многотомные и самораспаковывающиеся архивы также могут быть непрерывными.

Самораспаковывающийся архив

Самораспаковывающийся архив (англ. self-extracting archive, сокращённо «SFX archive») - файл, компьютерная программа, объединяющая в себе архив и исполняемый код для его распаковки.

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

Часто самораспаковывающиеся архивы используют для создания простейших инсталляторов - программ, выполняющих установку программного обеспечения на компьютер, когда для установки не требуется настраивать какие-то параметры операционной системы.

Защищённый архив

Архив можно защитить с помощью шифрования. Универсальные архиваторы обычно используют шифрование с паролем.

Есть 2 варианта защиты архива паролем. Можно защитить только файлы, когда открыть архив может каждый, но извлечь или просмотреть определённый файл сможет лишь тот, кто знает пароль, а также защитить архив полностью, когда открыть архив (и просмотреть список содержащихся в нём файлов) можно только после ввода пароля.

Метаданные

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

  • Имена файлов;
  • Права на доступ к файлам;
  • Размеры файлов;
  • Даты изменения и создания файлов;
  • Контрольные суммы файлов, для проверки их целостности после распаковки;
  • Размер и контрольную сумму самого архива;
  • Данные для восстановления (если они добавлялись);
  • Цифровая подпись создателя архива (если добавлялась).

Форматы архивов

Мы рассмотрим только 3 самых распространённых формата архивов: ZIP, RAR и 7Z.

  • ZIP;
  • RAR;
  • 7Z;
  • ARC;
  • ARJ;
  • JAR;
  • TAR.

ZIP

Добавление файла в ZIP-архив с использованием встроенных возможностей в Windows Vista
ZIP - первый среди самых популярных форматов сжатия данных и архивации файлов.

Файл в этом формате обычно имеет расширение .zip. Может хранить в сжатом или несжатом виде один или несколько файлов.

ZIP был разработан Филом Кацем для использования в программе PKZIP. Впоследствии появилось множество других утилит, работающих с этим форматом и сейчас он поддерживается практически всеми популярными архиваторами, а также используется как встроенный формат для сжатия файлов в операционной системе Windows (в версиях XP и Vista) - создания так называемых "Сжатых ZIP-папок", по сути обыкновенных архивов, сжатых в формате ZIP.

На текущий момент существует множество алгоритмов компрессии, выигрывающих у ZIP и в скорости, и в компрессии, и в количестве предоставляемых дополнительных возможностей. Несмотря на это, он является самым популярным методом сжатия данных.

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

RAR

Программа WinRAR
RAR - распространённый формат сжатия данных.

Формат разработан российским программистом Евгением Рошалом (отсюда и название RAR: Roshal Archiver). Метод сжатия автор держит в секрете, он так и остаётся закрытым, хотя исходный код распаковщика выпущен под лицензией для свободного использования в допустимых рамках.

Архивы в данном формате имеют расширение .rar. Создаются и открываются с помощью "родной" программы WinRAR, автором которой является Евгений Рошал. Но начиная с версии 3.40 в пункте меню "О программе..." уже можно увидеть такой текст "Авторские права: Александр Рошал".

Александр Рошал - брат Евгения, который являясь разработчиком и автором программы, переписал свои авторские права на брата, так как именно тот занимается рекламой и продажей WinRAR, так как программа распространяется по shareware-лицензии, то есть бесплатно можно использовать её лишь 30 дней пробного испытательного периода, а затем придётся купить лицензию.

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

Формат позволяет создавать многотомные, непрерывные и самораспаковывающиеся архивы, добавлять информацию для восстановления, блокировать архив для предотвращения модификации особо ценных данных, защищать архив паролем.

Что интересно, взломать архив RAR, защищённый паролем, практически невозможно! Если подбирать все возможные комбинации символов, которые может содержать пароль, то можно продолжать эту так называемую "грубую атаку"... тысячу лет! Но есть возможность осуществить эту операцию в разумные сроки, если количество символов в пароле не очень большое, около 5. Ходят слухи, что сам автор программы не может взломать архивы в своём формате, однако другие источники утверждают, что секрет давно выкуплен у автора ФБР.

Также можно взломать пароль на квантовом компьютере за 1 секунду... Но пока ещё не было создано ни одного экземпляра такой вычислительной машины.

Другой интересной особенностью RAR является то, что он позволяет обрабатывать файлы практически неограниченного размера (до 8 эксабайт, что равносильно 8 589 934 591 Гбайт), тогда как размер одного файла в архиве ZIP не может превышать 2 Гбайт. Обратите внимание, что старые файловые системы не поддерживают файлы размером более 4 Гбайт, поэтому при работе с такими файлами вы должны использовать файловую систему NTFS.

7Z

Программа 7-zip
7Z - новый формат сжатия данных. Используется для сжатия в программе 7-zip.

Автор формата и программы - Игорь Павлов, тоже наш соотечественник, российский разработчик :-). По всей видимости, он внимательно наблюдал за историей развития RAR, в результате чего появился конкурент этому формату - 7Z.

Формат является открытым, имеет расширяемую архитектуру и может использовать различные алгоритмы сжатия: LZMA, BZip2, Deflate и другие.

Программа 7-zip распространяется абсолютно бесплатно и имеет открытый исходный код, что делает её прекрасной альтернативой платной WinRAR. При этом она умеет открывать и RAR-архивы, а также ZIP и другие, а создавать - архивы в форматах 7Z, ZIP, TAR, BZIP2 и GZIP.

Одним из многих достоинств программы является её компактность.

Очень высокая степень сжатия в новом формате 7Z благодаря использованию усовершенствованного алгоритма Лемпела-Зива делает его явным конкурентом RAR! Архивы в 7Z получаются с меньшими размерами, чем архивы других форматов (в большинстве случаев). Для форматов ZIP и GZIP степень сжатия на 2—10 % выше, чем у PKZip и WinZip. В формате можно создавать самораспаковывающиеся архивы (для формата 7Z) и многотомные архивы (в настоящее время за исключением самораспаковывающихся).

Присутствует возможность шифрования архивов алгоритмом AES с длиной ключа 256 бит (для формата 7Z).

Правда, у формата есть и недостатки: сжатие данных происходит на треть медленнее, чем во многих популярных архиваторах, при сжатии некоторых мультимедиа‐данных уступает RAR’у. Оборванный архив (например, при скачивании его из интернета и обрыве соединения) невозможно открыть и просмотреть его содержимое, как в RAR.

Когда писались эти строки, последней версией программы 7-zip была 4.57 (06.12.2007).
А как раз 5 мая 2008 года (дата создания этого компаса) появилась новая бета-версия 7-Zip 4.58 beta.

Полезные ссылки

Комментарии

6 мая 2008 в 01:44
 
более доступного описания принципов архивирования не видел :)

7zip рулит :) так же очень радует что 7zip и WinRAR признаны во всём мире лучшими архиваторами.

Оставить комментарий

Поделиться с друзьями

Share on Twitter