LINUX.ORG.RU

UPX 1.25(stable)/1.91(devel)


0

0

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

>>> http://upx.sf.net

★★★

Проверено: Demetrio ()

>1.9x умеет сжимать bzImage

Сомневаюсь, что он пожмет bzImage на должном уровне...ну может на 1К
в лучшем случае...

McMCC ★★★
()

>одним из лучших компрессоров исполняемых файлов.

Им частенько сжимают исполяемые файлы вирусов.

Vlad_Ts ★★★★★
()

> 1.9x умеет сжимать bzImage 8)

Он жмет не bzImage, а vmlinuz. Хотя, конечно, если он и лучше жмет, то уж не на столько чтобы бросаться на unstable...

anonymous
()
Ответ на: комментарий от anonymous

1) zImage == vmlinuz

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-нутому).

anonymous
()
Ответ на: комментарий от Nagwal

Жмет он немного лучше особенно тексовые данные типа логов. По всем остальным показателям он сливает, а рюши его нафиг не нужны. Обидно тут другое то что bzip2 и gzip не развиваются :(((

anonymous
()

У upx помнится была беда в том что он загружался в память распаковывал себя в другой кусок пямяти, передовал туда управления а изначально загруженные кусок не освобождал :( Поэтому упакованный upx exe занимал в памяти больше чем не упакованный :(

anonymous
()
Ответ на: комментарий от jackill

> Гм, а если пожать весь кноппикс, может еще что влезет? ;)

Не имеет смысла. IIRC там сжататая файловая система (squashfs).

awn
()
Ответ на: комментарий от Nagwal

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

anonymous
()
Ответ на: комментарий от anonymous

>>>У upx помнится была беда в том что он загружался... У 1.9х эту беду пофиксили - хотя было всё воoбще не так 8)

V0ID ★★★
() автор топика
Ответ на: комментарий от McMCC

>>>Сомневаюсь, что он пожмет bzImage на должном уровне...ну может на 1К

А проверить вместо сомнений - руки не доходят ? 1.90 юзаю с момента его выхода - глюков не замечалось. Обычно выигрыш составляет 10-25% на bzImage (зависит от размера ядра). Зато грузится в реактивном стиле.

V0ID ★★★
() автор топика
Ответ на: комментарий от anonymous

>Ну так и чем лучше рар 7зипа?

Для чего ? rar очень эффективен для сжатия большого кол-ва однотипных файлов (неприрывная архивация). А небольшое кол-во файлов небольшого суммарного размера (до 20 метров) без разницы чем жать, хоть zip :))). [vt]Vitus.

anonymous
()
Ответ на: комментарий от anonymous

2anonymous (*) (07.07.2004 14:50:11):

> Обидно тут другое то что bzip2 и gzip не развиваются :(((

В каком смысле обидно? Морду на Яве для них ещё никто не состряпал? :-D

anonymous
()
Ответ на: комментарий от anonymous

Он наверное имел в виду развитие а-ля rar: новая версия не умеет распаковывать файлы зажатые предыдущей :)

chucha ★★★☆
()
Ответ на: комментарий от anonymous

Так ведь 7зип жмёт круче рар, что вы мне здесь сказки рассказываете про его эффективность, я знаю что иногда bzip2 круче жмёт чем 7zip, если у вас есть свидетельства, что иногда rar жмёт лучше 7zip, примеры в студию!

Да, забыл сказать, 7zip открыт, а rar?

anonymous
()
Ответ на: комментарий от anonymous

rzip вроде неплох.. жмет похуже bzip2 зато гораздо шустрее

ldconfig
()
Ответ на: комментарий от anonymous

>>>V0ID, можете описать как пожать ядро upx?

А чего там описывать?

upx --brute bzImage

Да и весь сказ. (не забудь потом lilo|grub 8)

V0ID ★★★
() автор топика
Ответ на: комментарий от V0ID

Ps : наглядная иллюстрация ( но 30 проходов 8)

/root#upx --brute bzImage

Ultimate Packer for eXecutables

Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002

UPX 1.90 Markus F.X.J. Oberhumer & Laszlo Molnar Nov 11th 2002

File size Ratio Format Name

-------------------- ------ ----------- -----------

1306667 -> 1124531 86.06% bvmlinuz/386 bzImage

Packed 1 file.

WARNING: this is an unstable beta version - use for testing only! Really.

V0ID ★★★
() автор топика
Ответ на: комментарий от anonymous

> Да, забыл сказать, 7zip открыт, а rar?

угу, только толку-то от его открытости? он на com-е писан и не портируется ни под что...

anonymous
()
Ответ на: комментарий от V0ID

Зы еще раз

1.91 делает 33 прохода 8=[]

1306667 -> 1123090 85.95% bvmlinuz/386 bzImage

V0ID ★★★
() автор топика
Ответ на: комментарий от anonymous

>>>он на com-е писан и не портируется ни под что...

Линк на портированые куски я кидал как-то... Но тот же рар, не смотря на имеющуюся линуксовую морду, до сих пор постыдно не может совладать с хард/симлинками. Разве что tar.rar делать - позорюга ...

А так хочется нормального пакера... 8)

V0ID ★★★
() автор топика
Ответ на: комментарий от nickitos

> Посмотрите на виндозный рар-сфикс архив под хекс-редактором, и увидите что это и есть 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-шник делает тоже самое что и раньше - то что он распаковываеться не видно не поощущениям не по требованию места на диске.
Вобщем классная весчь!
Только что зажал им один собственный запускаемый файл - так он его вообще более чем в семь раз ужал. Круто!

unDEFER ★★★★★
()
Ответ на: комментарий от unDEFER

> Только что зажал им один собственный запускаемый файл - так он его вообще более чем в семь раз ужал. Круто!

Соврал, однако.. На самом деле менее чем в четыре раза.. точнее 26.83% получился.. ну, да ладно, всё равно круто!

unDEFER ★★★★★
()
Ответ на: комментарий от V0ID

> Зато грузится в реактивном стиле.

А если им всю систему зажать, то может вообще все приложения будут запускаться "в реактивном стиле"?

unDEFER ★★★★★
()
Ответ на: комментарий от unDEFER

>А если им всю систему зажать, то может вообще все приложения будут >запускаться "в реактивном стиле"

Не так все просто. При запуске исполняемого файла нужно чтобы /tmp
был примонтирован как rw, хотя извратиться можно. Кстати интересная
особенность, можно жать не только бинарники, но и скрипты.

qwe ★★★
()
Ответ на: комментарий от V0ID

>А проверить вместо сомнений - руки не доходят ? 1.90 юзаю с момента его
>выхода - глюков не замечалось. Обычно выигрыш составляет 10-25% на
>bzImage (зависит от размера ядра). Зато грузится в реактивном стиле.

Он жмет только ту часть ядра, которая не пожата, вполне верю, что
кил на 100-150 уменьшиться размер, только под bzImage я немного другое
имел ввиду, а именно ту часть которая пожата bzip2...

McMCC ★★★
()
Ответ на: комментарий от awn

Знаю. Но если бы удалось много сжать, можно было бы его сильно порезать и не ставить на сжатую fs.

jackill ★★★★★
()
Ответ на: комментарий от McMCC

Повторяю: 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.

anonymous
()

Простой вопрос: за счет чего UPX / NRV, являясь чистым вариантом LZSS (LZ77), умудряется сжимать многие файлы лучше bzip2. Результат был получен на русском тексте (для UPX-а предваренным cat <<EOF ). Распаковка проверена ;)

anonymous
()

Предлагаю стартовать проект по добиванию UCL до плотности сжатия NRV, благо лицензия позволяет. Зачем? Для пакования дистрибутивов, чтобы быстро распаковывались. Типа tar.nrv или NRV как тип сжатия внутри RPM.

anonymous
()

Хм, а как upx работает с prelink?

anonymous
()
Ответ на: комментарий от McMCC

>>>а именно ту часть которая пожата bzip2...

У всех бывают заблуждения - главное вовремя от них избавится...

objcopy -O binary -R .note -R .comment -S /usr/src/linux-2.4.26/vmlinux $tmppiggy; \

gzip -f -9 < $tmppiggy > $tmppiggy.gz;

Несмотря на то что оно bzImage - bzip там и не пахнет ...

V0ID ★★★
() автор топика
Ответ на: комментарий от chucha

>>Он наверное имел в виду развитие а-ля rar: новая версия не умеет >>распаковывать файлы зажатые предыдущей :)
Да, зато жмет лучше. Рюши не нужны - нужно лучшее сжатие.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.