Zlib

zlib ist eine für die Datenkompression verwendete Softwarebibliothek. zlib wurde von Jean-Loup Gailly und Mark Adler geschrieben und ist eine Abstraktion des DEFLATIONIEREN in ihrem gzip Dateikompressionsprogramm verwendeten Kompressionsalgorithmus. zlib ist auch ein entscheidender Bestandteil von vielen Softwareplattformen einschließlich Linux, Mac OS X und EIN/AUSGABE-STEUERSYSTEMS. Es ist auch in spielenden Konsolen wie die Playstation 3, Wii und Xbox 360 verwendet worden.

Die erste öffentliche Version von zlib, 0.9, wurde am 1. Mai 1995 veröffentlicht und war für den Gebrauch mit der libpng Bildbibliothek ursprünglich beabsichtigt. Es ist kostenlose Software, die laut der Zlib-Lizenz verteilt ist.

Fähigkeiten

Encapsulation

zlib hat Daten zusammengepresst wird normalerweise mit einem gzip oder einem zlib Streifband geschrieben. Das Streifband fasst den Rohstoff kurz zusammen DEFLATIONIEREN Daten durch das Hinzufügen eines Kopfballs und Trailers. Das stellt Strom-Identifizierung und Fehlerentdeckung zur Verfügung, die durch den Rohstoff nicht zur Verfügung gestellt werden, DEFLATIONIEREN Daten.

Der gzip Kopfball ist größer als der zlib Kopfball, weil es einen Dateinamen und andere Dateisysteminformation versorgt. Das ist das im allgegenwärtigen gzip Dateiformat verwendete Kopfball-Format.

Algorithmus

, zlib unterstützt nur einen Algorithmus genannt DEFLATIONIEREN, der eine Schwankung von LZ77 (Lempel-Ziv 1977) ist. Dieser Algorithmus stellt gute Kompression auf einem großen Angebot an Daten mit dem minimalen Gebrauch von Systemmitteln zur Verfügung. Das ist auch der im SCHWIRREN-Archiv-Format verwendete Algorithmus.

Es ist unwahrscheinlich, dass das Zlib-Format jemals erweitert wird, um irgendwelche anderen Algorithmen zu verwenden, obwohl der Kopfball diese Möglichkeit in Betracht zieht.

Quellengebrauch

zlib stellt Möglichkeiten für die Kontrolle des Verarbeiters und Speichergebrauches zur Verfügung. Ein Kompressionsniveau-Wert kann dass Handel - von der Geschwindigkeit mit der Kompression geliefert werden. Es gibt auch Möglichkeiten, um Gedächtnis zu erhalten. Diese sind wahrscheinlich nur in eingeschränkten Speicherumgebungen wie einige eingebettete Systeme nützlich.

Strategie

Die Kompression kann für spezifische Typen von Daten optimiert werden. Wenn Sie die Bibliothek an immer der Kompresse spezifische Typen von Daten verwenden, dann kann das Verwenden einer spezifischen Strategie Kompression und Leistung verbessern. Zum Beispiel, wenn Ihre Daten lange Längen von wiederholten Bytes, der RLE enthalten (Verschlüsselung der Lauf-Länge), kann Strategie gute Ergebnisse mit der höheren Geschwindigkeit geben. Für allgemeine Daten wird die Verzug-Strategie bevorzugt.

Das Fehlerberühren

Fehler in komprimierten Daten können entdeckt und ausgelassen werden. Weiter, wenn Punkte "des vollen Errötens" dem komprimierten Strom geschrieben werden, dann können korrupte Daten ausgelassen werden, und die Dekompression wird am folgenden Erröten-Punkt gleichzeitig wiedersein - obwohl keine Fehlerwiederherstellung der korrupten Daten zur Verfügung gestellt wird. Punkte des vollen Errötens sind für große Datenströme auf unzuverlässigen Kanälen nützlich, wo ein letzter Datenverlust, solcher als in einigen Multimediaanwendungen unwichtig ist. Jedoch kann das Schaffen vieler Erröten-Punkte die Geschwindigkeit sowie den Betrag (Verhältnis) der Kompression betreffen.

Datenlänge

Es gibt keine Grenze zur Länge von Daten, die zusammengepresst oder dekomprimiert werden können. Wiederholte Anrufe zur Bibliothek erlauben unbegrenzten Zahlen von Datenblocks, behandelt zu werden. Ein Hilfscode (Schalter) kann unter der Überschwemmung für lange Datenströme leiden, aber das betrifft die wirkliche Kompression oder Dekompression nicht.

Wenn

man einen langen (oder unendlich) Datenstrom zusammenpresst, würde es ratsam sein, regelmäßige Punkte des vollen Errötens zu schreiben.

Anwendungen

Heute ist zlib etwas eines De-Facto-Standards zum Punkt, dass zlib und DEFLATIONIEREN, werden häufig austauschbar in Standarddokumenten mit Tausenden von Anwendungen verwendet, die sich darauf für die Kompression, irgendein direkt oder indirekt verlassen. Diese schließen ein:

  • Der Linux Kern selbst, wo zlib verwendet wird, um zusammengepresste Netzprotokolle, zusammengepresste Dateisysteme durchzuführen und das Kernimage selbst in der Ladezeit zu dekomprimieren.
  • libpng, die Bezugsdurchführung für das PNG Bildformat, das angibt, DEFLATIONIEREN als die Strom-Kompression für seine bitmap Daten.
  • Libwww, eine API für Webanwendungen wie WWW-Browser.
  • Der HTTP Apachen-Server, der zlib verwendet, um HTTP/1.1 durchzuführen.
  • Der Kunde von OpenSSH und Server, die sich auf zlib verlassen, um die fakultative durch das Sichere Protokoll von Shell angebotene Kompression durchzuführen.
  • Die Sicherheitsbibliotheken von OpenSSL und GnuTLS, die zlib an der Kompresse TLS Verbindungen fakultativ verwenden können.
  • Die FFmpeg Multimediabibliothek, die zlib verwendet, um das DEFLATIONIEREN - zusammengepresste Teile von Strom-Formaten wie Matroska zu lesen und zu schreiben.
  • Die rsync entfernte Datei synchronizer, der zlib verwendet, um fakultative Protokoll-Kompression durchzuführen.
  • Der dpkg und die RPM Paket-Betriebsleiter, die zlib verwenden, um Dateien von komprimierten Softwarepaketen auszupacken.
  • Der Umsturz und die CVS Versionsregelsysteme, die zlib verwenden, um Verkehr zu und von entfernten Behältnissen zusammenzupressen.
  • Das Schwachkopf-Versionsregelsystem, das zlib verwendet, um den Inhalt seiner Datengegenstände zu versorgen (Tropfen, Bäume, begeht und Anhängsel).
  • Der RDBMS von PostgreSQL, der zlib mit dem kundenspezifischen Müllkippe-Format (pg_dump-Fc) für Datenbankunterstützungen verwendet.

zlib wird auch in vielen eingebetteten Geräten wie das iPhone von Apple Inc. und die Playstation von Sony 3 verwendet, weil der Code, liberal lizenzierte tragbar ist, und einen relativ kleinen Speicherfußabdruck hat.

Siehe auch

Links

  • RFC 1950 — ZLIB Komprimiertes Datenformat
  • RFC 1951 — DEFLATIONIEREN Komprimiertes Datenformat
  • RFC 1952 — GZIP Dateiformat

Zombie-Prozess / Z-Maschine
Impressum & Datenschutz