← ST-Computer 05 / 2001

UPX

Software

Wenn sich ein Programm "Ultimativ" nennt, sollte es schon einiges bieten. UPX tritt an um zu beweisen, das es den Begriff "Ultimativ" zu recht fĂŒhrt.

Bei UPX handelt es sich nicht etwa um ein Entspannungsprogramm fĂŒr UPS-Boten oder den besten Kumpel von Eminem und Dr. Dre, sondern um einen sogenannten "Executable Packer". Seinen Anfang nahm UPX auf der PC-Plattform unter DOS, Windows und Linux. Schon lange bevor UPX fĂŒr den Atari umgesetzt wurde, konnte es allerdings Atari-Programme verkleinern. UPX steht fĂŒr "Ultimate Packer for eXecutables".

Executable Packer

Wer Packer hört, wird zuerst vor allem an ZIP und LHarc denken. Diese bezeichnet man auch als Archivierer. Exe-Packer gehen jedoch einen anderen Weg. Ihr Ziel ist es, mehr Platz auf der Festplatte zu schaffen, ohne dass der Anwender seine Arbeitsweise Ă€ndern muß. Dazu wird eine Programmdatei mit dem Exe-Packer behandelt. Der Packer verkleinert das Programm und hĂ€ngt eine kleine Routine an, die das Programm im Speicher entpackt, sobald es gestartet wird. Je nach Geschwindigkeit dieser Routine kann das Starten von Programmen sogar schneller gehen.
ZIP und LHarc werden durch einen Exe-Packer allerdings nicht ersetzt, denn beinahe jedes Programm wird begleitet von Hypertexten, Ressource-Dateien etc. .

Exe-Packer auf dem Atari

Ihren Anfang nahmen diese Packer sicherlich in der Szene. Durch sie paßten mehrere Spiele auf eine Diskette und es war noch Platz fĂŒr Intros. Exe-Packer, die sich mehr an Anwender richteten, ließen etwas lĂ€nger auf sich warten: PFXPAK, Turbo Packer und der Branch Always Packer.

UPX

UPX ist unter allen Betriebssystemen ein Kommandozeilentool. Die zu packende Programm-Datei wird einfach auf UPX gezogen und schon wird es gepackt. Den Programm-Typ (Atari/TOS, Win32 etc. ) ermittelt UPX selber - die Atari-Version kann z.B. auch Win32-Dateien packen. Die Orginal-Datei wird dabei ĂŒberschrieben.
NatĂŒrlich stellt UPX auch diverse Optionen zur VerfĂŒgung. Komprimierte Dateien lassen sich wieder entpacken und die KompressionsstĂ€rke kann verĂ€ndert werden. FĂŒr manche Programm-Typen stehen zusĂ€tzliche Optionen zur VerfĂŒgung: so sollte man bei DOS-Programmen bedenken, das mit UPX gepackte Programme erst ab einem 80286 entpackt werden können. Erst ein zusĂ€tzlicher Parameter macht das Programm 8086 kompatibel.

KompatibilitÀt

Der Dekomprimierer, der an jedes Programm angehĂ€ngt wird, ist praktisch ein eigenstĂ€ndiges Programm - und als solches kann es AbstĂŒrzen, wenn es mit einer bestimmten Computer-Hardware/Software nicht zurechtkommt. Ein Beispiel dafĂŒr ist der Turbo Packer, der von der Zeitschrift TOS veröffentlicht wurde. Dieser konnte ĂŒber ein residentes Auto-Ordner-Programm auch Dateien packen, die nicht ausfĂŒhrbar sind. Das klappte zwar auf einem STE, aber leider war eben dieses Programm nicht mit dem Falcon kompatibel. Leider konnten die Dateien auch nicht wieder in den Ursprungszustand versetzt werden, denn dazu brauchte man besagtes Auto-Ordner-Programm.
Genau aus diesem - autobiografischen - Grund wurde UPX auf diversen Systemen getestet. Neben dem Falcon und diversen Atari-Emulatoren wurden mit UPX gepackte Programme auch auf dem Milan gestartet: es traten keinerlei AbstĂŒrze auf. Damit bestĂ€tigt UPX den guten Eindruck, den es schon auf dem PC hinterlassen hat: auch dort ist es im tĂ€glichen Einsatz. Probleme gibt es mit selbstmodifizierender Software und mit Ă€lteren Virenkillern.

Geschwindigkeit

Das Komprimieren von Programmdateien erfordert schon etwas Rechenleistung, obwohl UPX auch nicht sehr viel langsamer ist als bspw. ST-Zip. Das Dekomprimieren lÀuft hingegen sehr schnell ab und fÀllt eigentlich nie auf. Positiv im Vergleich zu Szene-Packern ist, das auf Werbung verzichtet wurde - man bleibt also von Meldungen wie "Packed with UPX" verschont.

Effekt

In der Praxis erreicht UPX Packraten von 50-70%. Auch bei kleineren Programmen lohnt sich die Komprimierung. Einige Test-Komprimierungen verdeutlichen dies:

Programm Original Gepackt ergo!pro 175 KB 68 KB GEM-Sarien 210 KB 136 KB HTML-Help 212 KB 77 KB Light of Adamas 355 KB 179 KB MAME32 (Windows) 11,7 MB 2,49 MB Smurf 199 KB 101 KB WDIALOG 86 KB 41 KB

Fazit

UPX trĂ€gt das "Ultimativ" völlig zu Recht. Es ist ein geniales StĂŒck Software, das auf keiner Festplatte fehlen sollte. Die KB/MB-Zahlen der gepackten Programme rufen teilweise unglĂ€ubiges Staunen hervor, aber tatsĂ€chlich setzt UPX in Sachen KompatibilitĂ€t, StabilitĂ€t und Geschwindigkeit neue MaßstĂ€be. Durch die VerfĂŒgbarkeit auf mehreren Plattformen ist zudem sichergestellt, das sich die Programme immer sowohl packen als auch entpacken lassen.

Mia Jaap