Packer-Kurs 1/2

von
Andreas Schlick

Einführung:
Dieser Kurs widmet sich in zwei Teilen den Packern/Archivern. Im ersten Teil werden die meistverbreitetsten Packer kurz vorgestellt und ein Geschwindigkeitsvergleich gemacht. Im zweiten Teil geht es um die Bedienung und die Optionen.

  1. Auflistung und Geschwindigkeitsvergleich
  2. Bedienung und Optionen

LhA

Der Standard-Packer auf dem Amiga ist wohl LhA. Die meistgenutzte Portierung stammt von Stefan Boberg. Leider entwickelt er den Amiga-Port nicht mehr weiter, so daß die letzte Version V1.38 (unregistriert) von 1992 ist.

Der Unix-LhA-Sourcecode ist zwar frei erhältlich, so daß ein einfaches recompilen kein Problem sein sollte, allerdings hatte Stefan die Amiga-Versionen noch stark optimiert. Des weiteren unterstützt diese Portierung noch die Amiga-Dateikommentare und Schutzbits.

LhA ist Shareware. Leider gab Stefan Boberg trotz eingestellter Entwicklung den Key nicht frei. Ob überhaupt noch Registrierungen angenommen werden, ist mir nicht bekannt, jedoch halte ich es für sehr unwahrscheinlich. [Die Entwicklung wird mittlerweile von dritter Seite weitergeführt; d.Chefred.]

Ein Zusatztool zu LhA bzw. als Feature der registrierten Version gibt es noch LhASFX, mit dem man SelFeXtracting (zu Deutsch: selbstentpackende) Archive erstellen kann. Jedoch soll die verwendete Routine des Tools fehlerhaft sein, so daß ich von der Verwendung stark abraten würde.

Archiv-Endungen: .lha

LZX

LZX hätte der Standard-Packer werden können. Leider verkaufte der Entwickler Jonathan Forbes (zusammen mit Tomi Poutanen) den Algorithmus und damit verlor leider der Amiga (mal wieder) ein wirklich gutes Programm. Insbesondere der LZX-2 Algorithmus wäre sehr interessant geworden. Wer die Käufer waren, überlasse ich der Phantasie des nicht-informierten Lesers. :-) oder meines Erachtens eher ;-((

Vor ein paar Tagen konnte J. Forbes jedoch zumindest überredet werden, das LZX-Keyfile der Allgemeinheit zur Verfügung zu stellen, so daß auch die registrierte Version von LZX benutzt werden kann. Die letzte Version ist V1.21(r).

Archiv-Endungen: .lzx

ZIP

Auf dem PC eigentlich DER Standardarchiver. Seine Packraten sind sehr gut. Der ZIP-Algorithmus hat verschiedene Anwendung gefunden, einmal als der hier erwähnte Archiver, des weiteren noch in GZIP und für den Amiga gibt es zusätzlich die ebenfalls erwähnenswerte XPKGZIP.library für das bekannte XPK-Paket.

Archiv-Endungen: .zip

GZip/Tar

Dieses Gespann stammt aus der Unix-Welt. Tar ist ein reiner Filearchiver ohne Kompression. Mit Hilfe von tar werden die verschiedene Files zusammengefügt (nein, es ist kein Join-Kommando). Das entstehende Tar-Archive wird dann meist mit GZip gepackt.

Die umgekehrte Reihenfolge (erst GZip, dann Tar) ist weniger sinnvoll, da dann GZip nur fileweise komprimieren kann, während sonst ja ein fileübergreifendes Komprimieren stattfindet, was teilweise zu erheblich besseren Kompressionsraten führen kann.

Aufgrund der Unix-Abstammung sind auch die Amiga-Portierungen etwas umständlich zu bedienen. Die Bedienung und Optionen werden im zweiten Kursteil besprochen.

Falls jemand einen einfachen Entpacker für Tar/GZIP Archive benötigt, sollte er sich UnTGZ von Oliver Wagner anschauen.

Archiv-Endungen: .tgz
.tar.gzip

compress

Eine weitere Unix-Abstammung, die jedoch nur einen einfachen Algorithmus zum Komprimieren benutzt. Eine Amiga-Portierung existiert, jedoch läßt sich der Unix-Sourcecode auch portieren.

Archiv-Endungen: .Z

Arj

Arj ist ein im PC-Sektor recht verbreiteter Packer. Für den Amiga gibt es jedoch nur einen Entpacker. Arj wurde 1990-93 von Robert Jung entwickelt, die Amiga-Protierung stammt von Andreas Kleinert.

Archiv-Endungen: .arj

RAR

Und noch ein aktueller PC-Archiver, für den es nur ein Unpack-Programm für den Amiga gibt. Das UnRAR stammt von Eugene Roshal und die Amiga-UnRAR-Portierung von Andrea Vallinotto - unterstützt jedoch keine SFX-Archive.

Archiv-Endungen: .rar

XPK

Eigentlich nicht direkt in diese Gruppe gehört das XPK-Paket, das aber doch erwähnenswert ist. :)

Das XPK-Paket bietet mit der XPKMaster.library eine einheitliche Schnittstelle für Programmierer zu den Sublibraries, die dann die einzelnen Komprimierungs- und Verschlüsselungsalgorithemen implementieren.

Dadurch läßt sich ein Programm relativ einfach für viele verschiedene Komprimierungen anpassen und dann kann der User je nach Ausstattung und Vorliebe einen Packer aussuchen. Einige bekannte Beispiel für die XPK-Sublibraries sind:

zoo

Zu den alten Vertretern der Archiver zählt zoo. Von der Verwendung von zoo ist sehr abzuraten, stattdessen sollte LhA oder LZX verwendet werden. Die PC-Version stammt von Rahul Dhesi (1988), die Amiga-Portierung machte J. Brian Walters.

Archiv-Endungen: .zoo

arc

Ein *sehr* alter Archiver, der vermutlich aus der Zeit von 1985/86/87 stammt. Wer noch arc-Files bei sich rumliegen hat, wird vermutlich diesen Artikel nicht brauchen und besser darüber Bescheid wissen, als ich. :)

Autoren: Raymond S. Brand und/oder System Enhancement Associates

Archiv-Endungen: .arc

DMS

DMS, das Disk-Masher-System, ist kein Filearchiver, sondern, wie der Name schon sagt, für ganze Disketten da. DMS packt eine Diskette blockweise. Es gibt verschiedene Versionen von DMS. Die Hauptunterscheidung bestehen zwischen der älteren, orginalen Version von SDS Software und der späteren, als DMS-Professional bezeichneten, von ParCon.

Da DMS (Pro) ganze Diskette packt und die Disketten-Struktur beibehält, wurde er hauptsächliche für Demos und Raubkopien verwendet, da er manche Kopierschutzmechanismen umging. Ob DMS Pro von ParCon-Software eine legale Fortführung von DMS ist, ist dem Autor nicht bekannt.

Da zur heutigen Festplatten-Zeit Programme sowieso auf Festplatte installierbar sein müssen, ist von der Verwendung von DMS abzuraten, da für Filearchive LhA/LZX besser geeignet sind. Auch von der Verwendung der FMS (File-Masher-System) und SFX-Funktion des DMS Pro ist abzuraten.

Archiv-Endungen: .dms


Geschwindigkeitsvergleich

Zum Abschluß noch ein Geschwindigkeitsvergleich. Der Test wurde auf einem A2000/040/33MHz gemacht. Die Größe der verwendeten Daten stehen dabei. Zum Test habe ich nur die am häufigsten verwendeten Archiver genommen, für die eine Amiga-Portierung existiert.


PackenEntpacken
LhA LZX ZIP GZip LhA LZX ZIP GZip
Text (30 KB) 3 sec
33%
3 sec
33%
3 sec
33%
3 sec
33%
1 sec 1 sec 1 sec 1 sec
Text (1.2 MB) 36 sec
50%
70 sec
38%
50 sec
41%
51 sec
41%
17 sec 12 sec 15 sec 15 sec
GIF 2 sec
100%
2 sec
100%
2 sec
100%
2 sec
100%
1 sec 1 sec 2 sec 2 sec
jpeg 13 sec
100%
10 sec
99%
8 sec
100%
7 sec
100%
6 sec 4 sec 4 sec 4 sec
Binär (51 KB) 3 sec
40%
5 sec
33%
4 sec
38%
3 sec
38%
2 sec 1 sec 2 sec 1 sec
Binär (759 KB) 24 sec
56%
34 sec
49%
33 sec
54%
29 sec
55%
14 sec 13 sec 11 sec 10 sec
Alle Dateien (ca. 2.3 MB) 67 sec
51%
120 sec
48%
91 sec
51%
k.A. 39 sec 32 sec 39 sec k.A.

Anmerkung:
Die oben angegebenen Werte können nur als Näherung gelten. Beim Packen wurde jedesmal der beste Packalgorithmus, der zur Verfügung stand, verwendet. Bei einer geringeren Packratio ist z.B. LZX schneller und kann mit LhA konkurrieren. Weiterhin kam es beim Entpacken der Zip-Archive manchmal zu Checksummenfehlern. Ob dies an einem Fehler im Zip, UnZip liegt oder ein Bedienungsfehler vorlag, war nicht festzustellen. Der Autor vermutet, daß ein Bug im verwendeten Zip-Programm vorliegt (nicht mit GZip zu verwechseln!).


Prev Inhaltsverzeichnis Next
©`97Der AmZeiger