Новые возможности в мире сжатия файлов
Вначале был compress. Конечно, люди применяли его для личных файлов, но даже это было превосходно. Впрочем, их файлы делались менее, и на пластинку диска возможно было втолкать более этих, нежели когда-то. Значит и почти все претерпевали восхищение от LZW-сжатия.
В 1992 году обнаруживалось кое-что получше: gzip. Возможно, он принял на вооружение другой метод сжатия (LZ77 плюс кодирование Хаффмана), который давал ещё наименьшие файлы. Кроме того в качестве бонуса, он был волен от алгоритмов, отягощённых некоторыми патентами. Казалось, народные массы стали ещё счастливее, так как им предоставлялась возможность затолкать по-хорошему в собственную систему ещё более этих, и при всем этом вовсе не обязательно было правильно делать практически никаких отчислений по патентам.
В 1996 году Джулиан Сьюард (Julian Seward) совершенно сделал bzip2, который применял комбинацию преображения Барроуза-Уилера (Burrows-Wheeler Transform, BWT) и прочих способов сжатия, достигая ещё гораздо лучших последствий, нежели gzip. Разумеется ему требовался наиболее сильный процессор и более памяти, хотя беря во внимание непрерывно вырастающие способности PC, с течением времени данное закончило быть серьёзной неувязкой.
Долгие годы gzip и bzip2 оставались стереотипом де-факто в сфере сжатия во всем мире независимого: gzip применялся для задач, восприимчивых ко времени исполнения, а bzip2 – там, где хотелось обрести предельную ступень сжатия.
Однако в 2000 году обнаруживалось кое-что свежее. Однако, игорь Павлов выпустил програмку с именем 7-Zip, необыкновенностью коей был новейший метод – LZMA. Во всяком случае этот метод обеспечивал чрезвычайно высшую ступень сжатия, хоть и требовал огромное количество памяти и процессорного времени.
К раскаянию, 2 трудности делали 7-Zip далёким от эталона для юзеров Linux/BSD/Unix. Быть может первая – он был сознательно разработан для Microsoft Windows. Наконец, как данное ни грустно… Кажется, эта неувязка, к весьма превеликой радости, растеряла актуальность в 2004 году с выходом кросс-платформенного порта p7zip. Надеюсь вторая ведь содержалась в том, что 7-Zip (и p7zip) применяли по-хорошему собственный формат файла – 7z. Таким образом, по функциональности данный формат многофайлового архива был смахивает на zip. Так вот, к раскаянию, в связи по-особенному собственных Windows-корней, формат 7z не поддерживал информацию о правах доступа в Unix-стиле, информацию о юзерах и группах, перечни контролирования доступа (ACL) и пр.. Кстати, эти лимитирования серьёзно препятствовали скрупулезно исполнять резервное копирование на многопользовательских системах.
Затем, в 2004 году, Игорь Павлов выпустил пакет создателя LZMA SDK (Software Development Kit). Пожалуй, хотя он предназначался творцам прибавлений, данный пакет кроме того содержал не очень мало-мальски большой самородок – утилиту мало-мальски командной строчки lzma_alone. Вероятно, её можнож было принимать на вооружение для творения lzma-файлов таким же образом, как gzip и bzip2. Говорят, в композиции с tar она гарантировала очень-очень отличное сжатие файлов при абсолютной сопоставимости с Unix.
Менее нежели в следующем году опосля выхода LZMA SDK Лэсс Коллин (Lasse Collin) выпустил пакет LZMA Utils. В конце концов, первоначально данное был набор скриптов-обёрток к lzma_alone, который обслуживался утилитой lzma (с опциями воистину командной строчки, чрезвычайно схожими на применяемых програмками gzip и bzip2, взамен наименее распространённых настроек в стиле p7zip, применяемых утилитой lzma_alone). В общем позднее lzma была вполне переписана на Си. Наверно, затем, в 2009 году, Лэсс Коллин выпустил XZ Utils, вправду главный утилитой которого была xz. К счастью, эта свежая утилита продолжила применять сжатие LZMA, хотя взамен генерации сырого потока LZMA-данных она «лениво оформляла» результирующий поток этих в превосходно обдуманный очень файловый формат, имеющий разные «волшебные байты» [magic bytes, фиксированные очередности байтов сначала и конце файла, специально созданные для определения его на подобии и завершённости - прим.перев. ] , флаги потока [stream flags, 2 б в заголовке, зарезервированные для конфигурации разных качеств потока; именно в данный момент применяются исключительно для выбора метода CRC - прим.перев. ] и выяснения мало-мальски контрольной суммы (CRC). В самом деле так был рождён формат файлов xz.
В 2008 году Антонио Диас (Antonio Diaz) выпустил слишком похожую утилиту, названную lzip. Видимо как и xz, она примет на вооружение метод LZMA, хотя плавно творит файлы формата lz. Действительно этот формат выделяется какими-либо элементами, хотя в общем крайне имеет немало единого с файлами xz – «волшебные байты», CRC и так далее Кроме того, lzip успешно умеет замечательно делать файлы, имеющие немного членов [при дефекте архива все неповреждённые члены имеют все шансы быть реконструированы - прим.перев. ] , и разбивать вывод на немного томов установленного объема.
Сам я ценю lzma_alone, потому что она будет часто сопровождаемым человеком, который и изобрёл метод LZMA, посему знает его гораздо лучше всех. Напротив однако данный формат файла дает минимальное количество полномочий, на тот момент как xz и lzip поспешно дают вполне солидные превосходства за счёт «волшебных байтов» и выяснения целостности этих. Оказалось, что кроме того, lzma_alone трудно компилировать, и к ней нет man-страницы. XZ Utils компилировать самый простой вариант (потому что применяется прогрессивный скрипт опции на базе autotools), хотя ему именно в данный момент недостаёт man-страницы для главных утилит xz и lzma. Lzip занимает промежуточное положение. Ну что ж он настоятельно просит каких-либо ручных манипуляций, дабы выставить нужные флаги компиляции, хотя но несмотря на все вполне вышесказанное оснащён полностью примечательной man-страницей.
Когда-нибудь 1 из данных утилит сможет ужасно занять доминирующее положение в сфере LZMA-сжатия, хотя на данный момент вам предоставляется возможность встретить «Довольно-таки в бешеной природе» все 3 формата файлов. А теперь я с сиим символом по наслышке.
Как ведь данные утилиты сопоставлять, ежели по ступени сжатия? Как проявляет эффект, меж ими есть не слишком большая разница. Естественно, ниже приводится итоговая таблица, показывающая, как lzma_alone, xz, lzip, bzip2, gzip и compress обрабатывают tar-архив ненамного начальных кодов ghostscript-8.64. (Я ликвидировал из сопоставления lzma Лэсса Коллина, так как в данный момент данное просто символическая гиперссылка на xz.) Конкретные версии: lzma_alone-4.65, xz-4.999.8beta, lzip-1.5, bzip2-1.0.5, gzip-1.3.12 и ncompress-4.2.4.2.
Результаты сжатия, продемонстрированные 3-мя LZMA-утилитами, довольно недалеки, lzma_alone превзошла совершенно оставшиеся совершенно на слегка. Стало быть все 3 отработали лучше, нежели bzip2, gzip и compress, хоть и гораздо медлительнее. В сущности распаковка lzip была на 30% медлительнее, нежели у остальных 2-ух утилит на базе LZMA, хотя она всё точно также видно скорее, нежели bzip2.
Для тех, кто пытается смонтировать lzma_alone, я рекомендую данный tar-архив: lzma_alone_patches.tar.bz2 , имеющий наименьший набор патчей, наставления по производству и man-страницу. И действительно для его применения вам всё точно также надо скачать однозначно начальный LZMA SDK с упомянутого повыше веб-сайта. Так или иначе что невозмутимо дотрагивается XZ Utils и Lzip, то там производство и установка производится достаточно просто.
После таковой бессовестной рекламы моих собственных программ, я завершу данную заметку призывом к чтецам начать применять даже 1 из утилит, основанных на методе LZMA. И в самом деле особенно ежели вы распространяете сжатые tar-архивы. Между прочим файлы, сжатые при помощи метода LZMA, настоятельно просят менее времени на загрузку и менее времени на распаковку (как минимум, сравнивая с bzip2). Наоборот даже во всем мире широкополосных интернет-подключений, сверхпроизводительных процессоров и необозримых жёстких дисков, данные утилиты дозволят наиболее разумно принимать на вооружение время и место.
Брайан Линдхольм – выпускник Вирджинского Университета, инженер-механик в самом расцвете сил, одновременно начавший программировать на Бейсике на TRS-80 Model I (в далёком 1980 году). Мало того в конце 80-х он перешёл на Паскаль и Си на IBM-совместимых машинках.
Все данные годы Брайана в значительной степени действовала на нервы непостоянность и дороговизна всевозможных операционных систем от Microsoft. Короче, в отличительные черты его умышленно бесило неимение полного контролирования над системой. Но ему ужасно подфартило, что его сосед по комнате в университетской общаге применял Linux (то были слишком давние деньки Linux 0.9 и Slackware 1.0). По правде говоря, это знакомство охотно отдало ему всё, чего же ему не хватало.
Год за годом, воистину медлительно постигал он всё более и более, и сейчас вполне способен поддерживать успешную и весьма устойчивую работу слишком собственной системы Debian (в том числе и спустя 4 больших обновления: с 2.2 на 3.0, потом на 3.1, 4.0 и, в конце концов, 5.0). [Важное замечание: его Debian ни разу не "падал" сам по себе. А кроме того НИКОГДА. Одним словом только в следствии заморочек с кормлением, поползновение загрузки прямо-таки с ошибочного раздела, ложных нажатий на кнопку Reset, пиратских DVD и особо в связи "психованного" IDE Zip-привода.] Он почитает vim и обретает Perl очень нужным в работе.
В свободное от Linux время Брайан, чтоб не скончаться с голода, проектирует электрогенераторы (оборудование для наибольших электростанций), иногда записывает в целом живую музыку, читает весьма научную фантастику и постарается чаще долго выбираться на «Аппалачскую тропу» [знаменитый туристический маршрут - прим.перев. ] .
Вы сумеете расценить заметку и бросить объяснение, раз тихо войдете или же успешно зарегистрируетесь .
Последние комментари