После двухлетнего затишья была продолжена работа над одним из лучших компрессоров исполняемых файлов. Доступен вариант для линукса,выни,доса и даже для атари. 1.9x умеет сжимать bzImage 8)
2) 1.9x отличается от 1.11 тем, что действительно жмет bzImage (zImage грузит сжатый образ в Real Memory, а bzImage - с 1 MiB, вот и все отличие)
3) жмет лучше, чем gzip; распаковщик много меньше и быстрее. Для сжатия zImage/bzImage вначале распаковывает gzip, потом сжимает собой, заменяет распаковщик и переписывает bootsector/setup. У меня 800kiB ядро уменьшилось на 80kib, кажется.
4) для 386 - это ощутимый выигрыш в скорости загрузки, для загрузочной дискеты - ощутимая экономия места. Насчет unstable - вы можете проверить единожды создаваемую загрузочную дискету, и, если она не грузится, вернуться к обычному bzImage (не UPX-нутому).
Жмет он немного лучше особенно тексовые данные типа логов. По всем остальным показателям он сливает, а рюши его нафиг не нужны. Обидно тут другое то что bzip2 и gzip не развиваются :(((
У upx помнится была беда в том что он загружался в память распаковывал себя в другой кусок пямяти, передовал туда управления а изначально загруженные кусок не освобождал :( Поэтому упакованный upx exe занимал в памяти больше чем не упакованный :(
лучше чего? если зипа, то сжатие лучшее, если не ошибаюсь там какие то оптимизации под определённые типы сжимаемых файлов есть. ну а сжиматели бинариков сжимают их лучше, т.к. адаптированы на сжатие типичных для них последовательностей. ну вообще то это разные классы програм, одни для сжатия (архивация, обмен файлами и тд), другие для прозрачного запуска уменьшеных бинариков (расход CPU вместо большего размера файла)
>>>Сомневаюсь, что он пожмет bzImage на должном уровне...ну может на 1К
А проверить вместо сомнений - руки не доходят ? 1.90 юзаю с момента его выхода - глюков не замечалось. Обычно выигрыш составляет 10-25% на bzImage (зависит от размера ядра). Зато грузится в реактивном стиле.
Для чего ? rar очень эффективен для сжатия большого кол-ва однотипных файлов (неприрывная архивация). А небольшое кол-во файлов небольшого суммарного размера (до 20 метров) без разницы чем жать, хоть zip :))). [vt]Vitus.
Так ведь 7зип жмёт круче рар, что вы мне здесь сказки рассказываете про его эффективность, я знаю что иногда bzip2 круче жмёт чем 7zip, если у вас есть свидетельства, что иногда rar жмёт лучше 7zip, примеры в студию!
>>>он на com-е писан и не портируется ни под что...
Линк на портированые куски я кидал как-то... Но тот же рар, не смотря на имеющуюся линуксовую морду, до сих пор постыдно не может совладать с хард/симлинками. Разве что tar.rar делать - позорюга ...
> Посмотрите на виндозный рар-сфикс архив под хекс-редактором, и увидите что это и есть UPX !!!
На самом деле, интересное наблюдение!
Только, что проверил и расжал один такой winrar sfx-архив. В нём был Pascal запакован:
$ upx -d Pascal.exe
Ultimate Packer for eXecutables
Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
UPX 1.91 beta Markus F.X.J. Oberhumer & Laszlo Molnar Jun 30th 2004
File size Ratio Format Name
-------------------- ------ ----------- -----------
1387096 <- 1342552 96.79% win32/pe Pascal.exe
Unpacked 1 file.
Вот, так - winrar использует upx, чтобы зажимать собственный расжимальшик :-)
Однако, они не дают использовать главную фичу upx. После сжатия exe-шник делает тоже самое что и раньше - то что он распаковываеться не видно не поощущениям не по требованию места на диске.
Вобщем классная весчь!
Только что зажал им один собственный запускаемый файл - так он его вообще более чем в семь раз ужал. Круто!
>А если им всю систему зажать, то может вообще все приложения будут >запускаться "в реактивном стиле"
Не так все просто. При запуске исполняемого файла нужно чтобы /tmp
был примонтирован как rw, хотя извратиться можно. Кстати интересная
особенность, можно жать не только бинарники, но и скрипты.
>А проверить вместо сомнений - руки не доходят ? 1.90 юзаю с момента его
>выхода - глюков не замечалось. Обычно выигрыш составляет 10-25% на
>bzImage (зависит от размера ядра). Зато грузится в реактивном стиле.
Он жмет только ту часть ядра, которая не пожата, вполне верю, что
кил на 100-150 уменьшиться размер, только под bzImage я немного другое
имел ввиду, а именно ту часть которая пожата bzip2...
Повторяю: UPX жмет ту часть [b]zImage, которая была пожата gzip, предварительно ее распаковав. Bzip2 в bzImage _не_используется_ !!!
По поводу RAR и bzip2:
1) RAR 2.90+ (метод ppmd) требует для распаковки памяти, которой нет на моей 386й
2) не используйте tar.bz2, используйте tar.ppm ;))) PPMD, используемый RAR-ом, чудесно собирается и работает под Unix. Такой же Unix-фильтр, как и gzip или bzip2.
Простой вопрос: за счет чего UPX / NRV, являясь чистым вариантом LZSS (LZ77), умудряется сжимать многие файлы лучше bzip2. Результат был получен на русском тексте (для UPX-а предваренным cat <<EOF ). Распаковка проверена ;)
Предлагаю стартовать проект по добиванию UCL до плотности сжатия NRV, благо лицензия позволяет. Зачем? Для пакования дистрибутивов, чтобы быстро распаковывались. Типа tar.nrv или NRV как тип сжатия внутри RPM.
>>Он наверное имел в виду развитие а-ля rar: новая версия не умеет >>распаковывать файлы зажатые предыдущей :)
Да, зато жмет лучше. Рюши не нужны - нужно лучшее сжатие.