Inhaltsverzeichnis
PKZIP, PKLITE und Konsorten
Machen Packer Sinn?
Der Portfolio hat nur wenig Haupt- und Nebenspeicher und deshalb ist jede Speicherzelle kostbar. Für die Programmierer à la Klaus Peichl und auch unsere tschechischen Freunde ist es eine Herausforderung Software zu schreiben, die kleiner nicht mehr zu realisieren wäre. Kein aufgeblähtes WINDOOF`97, das m.E. für den normalen Anwender den Zweck eines Airbusses zum Zigarettenholen erfüllt.
Der Portfolio-User muß (wie in der Anfangsphase des PC) um jedes Byte ringen und da gibt es eben Programme, die bereits nicht mehr kleiner zu bekommen sind und solche, die noch jede Menge Programmier-Luft beinhalten. Was kann man tun ??! Klar, den Hauptspeicher usw. erweitern, ODER sich nach geeigneten Pack-Programmen für den Portfolio umsehen.(Am Besten beides )
Zu unterscheiden sind Packprogramme à la PKZIP, die Software in ein statisches Archiv-Format verkleinern, sowie Packer, à la PKLITE, die das Programm zwar packen jedoch LAUFFÄHIG lassen. Aha, aha ! Daneben gibt es noch Programme, COMPAK, die eine Platzersparnis dadurch bewirken, daß mehrere Dateien in einer Überdatei zusammengefast werden. Dies hat den Zweck, daß angebrochene Sektoren auf dem Datenträger verhindert werden, die auf ihre Weise beträchtlich Speicherplatz blockieren können.
Übersicht
Zu 1. Archiv-Packer und Entpacker:
PKZIP, ARJ und LHA laufen zwar auf dem Portfolio (einem aufgerüsteten), erzeugen jedoch schon bei rel. kleinen zu packenden Dateien recht große temporäre Dateien auf Laufwerk C: oder im Arbeitsspeicher und brechen u.U. den Pack-Vorgang mittendrin ab.
Beim Ausstesten von PKZIP (als einem der noch KByte-mäßig kleinen Packprogramme) habe ich folgende Speicherplatzanforderungen festgestellt: PKZIP benötigt ca.
Speicherbedarf | Dateigröße |
---|---|
200KByte | bei Dateien kleiner als 10KByte |
230KByte | zwischen 10 und 30KByte. |
mehr als 288KByte | größer als 40KByte. |
Dazu kommt ja noch der Platz den PKZIP auf einem der Laufwerke benötigt (z.B. auch Foliodrive), sowie der Platz des zu packenden Programms und der nachher gepackten Datei. Wer also auf dem PoFo unbedingt mit PKZIP arbeiten will, der sollte also mind. eine 320KB-Aufrüstung haben.
COMPEXP ist sehr klein (knapp 7 KByte) und ideal für den POFO, liefert aber lange nicht so gute Packraten, wie die „Großen“.
Interessant in diesem Zusammenhang ist jedoch, daß die Entpacker, wie PKUNZIP (25KByte) oder genausogut PKUNZJR (knapp 3KByte !) die gepackten Files (auch größere) problemlos auch auf einem normalen Portfolio wieder ins Originalmaßbekommen. Ein informatik-studierendes Club-Mitglied(Marc Jonas) erklärte mir dazu, daß die Routinen für das Packen und Entpacken zwei „ganz verschiedene Paar Schuhe“ seien. Man kann also seine PoFo-Dateien am Besten auf dem PC packen und auf dem Portfolio nach Bedarf entpacken. Evtl. mit einer kleinen Batch-Datei, die das Entpacken von z.B. einem fixen Laufwerk A: zum beweglichen Laufwerk C: automatisiert. Ich denke da z.B. auch an eine optimale Ausnutzung der Platzverhältnisse auf einer EPROM/OTPROM-Karte. Soweit ich weiß, dürften die genannten Packer auf der PoFo-CD sein, für die, die damit sofort loslegen wollen.
Zu 2.Die EXE-Packer:
Es gibt nicht nur Packer, die Archiv-Dateien erzeugen, sondern auch Pack-Soft, die ein Programm LAUFFÄHIG verkleinern. D.h., das gepackte Programm ist nach dem Packvorgang kein Archiv, sondern lauffähig. Um es vorweg zu sagen, dieser Art zu packen arbeitet nicht mit allen Programmen zusammen (z.B. Windoof läßt sich leider nicht packen…..und wegschmeißen). Man muß es ausprobieren. Z.B. konnte ich mein Crosspoint, meinen GEOS-Loader und viele andere DOS-Soft damit verkleinern. Das Prinzip dieser Packer ist eine kleine Entpack-Routine im Kopf des gepackten Programms, die die ursprüngliche Softare im Arbeitsspeicher des Computers wiederherstellt. Aufmerksame Leser merken es hoffentlich gleich: Der Preis für eine Verkleinerung einer Software (z.B. auf teuren Speichermedien, wie Speicherkarten) wird durch eine Mehrbelastung des Arbeitsspeichers erkauft! Es stellt sich sehr bald die Frage, welcher der bekannten EXE-Packer den der Beste sei und denkt dabei sofort an die größtmögliche Verkleinerung. Zur allg. Überraschung läßt sich das nicht generell sagen ! In einem Fall packt DIET um ein paar hundert BYTE besser, im anderen Fall jedoch PKLITE oder LZEXE. TINYPROG (wenigstens das ist auf der CD) ist in fast allen Fällen DIET, PKLITE und LZEXE knapp unterlegen, aber auch nur fast. Ich konnte z.B. damit die tolle Demo-Soft EYES.COM packen (von 18KByte auf 6KByte), während PKLITE und DIET mir dabei (unter Ausprobieren aller optionalen Schalter) den Dienst total versagten. Devise: Alle haben und alle Ausprobieren.
DIET läuft auch auf dem Portfolio und hat die Möglichkeit resident als TSR alle Dateien, die auf dem PoFo und den festlegbaren Laufwerken existieren lauffähig zu packen, bzw. als ständig aktive Kompressionssoft tätig zu sein. Wolf-Theo konnte mir nur positives darüber berichten. Sinn macht dies jedoch nur auf einem mind. auf 320KB aufgerüsteten Portfolio. Wichtig ist auch, daß wenn der Portfolio abstürzen sollte (und damit dann DIET aus dem Arbeitsspeicher fliegt) alle anderen Dateien nicht mehr nutzbar sind (da in gepacktem Format). Da hilft nur ein neues Installieren von DIET und regelmäßiges Daten-Backup.
PKLITE und TINYPROG laufen nur auf dem PC (SETVER auf dem PoFo klappt nicht). Jedoch die lauffähig gepackten PoFo-Programme laufen auf dem PoFo. LZEXE läuft auf dem Pofo, aber erst nach geraumer Wartezeit.
Bei LZEXE besteht die Besonderheit, daß es nur Programme mit EXE-Endung packen kann. Mit der Software COM2EXE kann man COM-Files in EXE-Files umwandeln und sie dann mit LZEXE komprimieren. Eine weitere Besonderheit von LZEXE ist die Tatsache, daß es keine eingebauten Dekomprimierungsroutinen beinhaltet. Also Achtung! Mit LZEXE bloß keine Originale drauf-los-packen. (Für den Notfall habe ich die Soft UNLZEX, die Wolf-Theo und ich jedoch erst mit Mühe von irgendwoher aus dem Internet gezogen haben. Diese dekomprimiert zwar das File wieder, jedoch NICHT originalgetreu!)
Als kleinen Rekord habe ich mit allen Tricks und erlaubten Schikanen den bekannten Filemanager(FM2.EXE) auf sage und schreibe 5848Byte herunterdrücken können. Download FM.EXE Wer bekommt ihn noch kleiner ??
Zu 3.Sektor-Saver:
COMPAK ist das einzige mir bekannte Programm, das einen Trick ausnutzt, den viele der reinen Softwarefreaks gerne übersehen. Nämlich, das Software auf den physikalischen Speichermedien immer in Sektoren abgelegt wird. Ganz drastisch macht sich das bei Festplatten bemerkbar, die eine Sektorierung von 1KByte und größer haben. Man stelle sich 100 Files vor, die, sagen wir, je nur 100 Byte groß sind.
Nach Adam Riese 100 Files x 100 Byte = ca. 10 KByte. Nicht so auf einer mit 1 KByte sektorierten Festplatte. Da wird nach jedem mit einem File angebrochenen Sektor ein neuer Sektor verwendet. Im ungünstigsten Fall 100 x 1 KByte = ca. 100 KByte. Und dazwischen der leere (Byte)-Weltraum.
COMPAK fasst bis zu 16 Files AUFRUFBAR in EINEM Archiv zusammen und belegt damit zusammenhängende Cluster. Für den Portfolio mit Sektorgrößen zwischen 128/256 und 512Bytes (je nach Speicherkartengröße und Formatiertool) ist das Problem durchaus ernstzunehmen, wenn man einige kleine (256 Byte bis 5 KByte) Programme hat. Wer nur PBASIC oder HYPERLIST (und damit einzelne große Programme) auf seinem PoFo fährt, den wird der Verlust von ein paar Sektor-Byte kaum quälen.
Interessant auch für die ganze EPROM/OTPROM-Optimierung.
So, das wars. Für inhaltliche Fehlerberichtigungen, Ergänzungen, eigene unerwähnte Erfahrungen zu dem Thema sind Eure Beiträge/Leser- und Drohbriefe (bitte an die Redaktion und nicht an mich!) herzlich willkommen.
Stefan Kächele 2.`97