UPX

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
Aus: ST-Computer 05 / 2001, Seite 48

Links

Copyright-Bestimmungen: siehe Über diese Seite