gzip - gzip

gzip
Gzip-Logo.svg
Originale forfattere
Udvikler (er) GNU -projekt
Første udgivelse 31. oktober 1992 ; 28 år siden ( 1992-10-31 )
Stabil udgivelse
1.11 (GNU Gzip) / 3. september 2021 ; 43 dage siden ( 2021-09-03 )
Depot git .savannah .gnu .org /cgit /gzip .git
Skrevet i C
Operativ system Unix-lignende , Plan 9 , Inferno
Type Datakomprimering
Licens GPLv3
Internet side www .gnu .org /software /gzip /

gzip er et filformat og et softwareprogram, der bruges til filkomprimering og dekomprimering . Programmet blev oprettet af Jean-loup Gailly og Mark Adler som en gratis softwareerstatning for komprimeringsprogrammet , der blev brugt i tidlige Unix- systemer, og beregnet til brug af GNU ("g" er fra "GNU"). Version 0.1 blev først offentliggjort den 31. oktober 1992, og version 1.0 fulgte i februar 1993.

Dekompressionen af gzip -formatet kan implementeres som en streaming -algoritme , en vigtig funktion for webprotokoller , dataudveksling og ETL (i standardrør ) applikationer.

Filformat

gzip
Filnavn udvidelse
.gz
Internetmedietype
applikation/gzip
Uniform Type Identifier (UTI) org.gnu.gnu-zip-arkiv
Magisk nummer 1f 8b
Udviklet af Jean-loup Gailly og Mark Adler
Type format Datakomprimering
Åbent format ? Ja
Internet side gzip .org (forældet)

gzip er baseret på DEFLATE -algoritmen, som er en kombination af LZ77- og Huffman -kodning . Deflate var tænkt som en erstatning for LZW og andre patentansøgninger -encumbered datakomprimering algoritmer , som på det tidspunkt, begrænset anvendeligheden af komprimere og andre populære archivers.

"gzip" bruges ofte også til at henvise til gzip -filformatet, som er:

  • et 10-byte header, der indeholder et magisk tal ( 1f 8b), komprimeringsmetoden ( 08for DEFLATE), 1-byte af headerflag, et 4-byte tidsstempel, komprimeringsflag og operativsystem-id.
  • ekstra ekstra overskrifter som tilladt af overskriftsflagene, inklusive det originale filnavn, et kommentarfelt, et "ekstra" felt og den nederste halvdel af en CRC-32 kontrolsum for overskriftssektionen.
  • en krop, der indeholder en DEFLATE-komprimeret nyttelast
  • en 8-byte footer indeholdende en CRC-32 checksum og længden af den oprindelige ukomprimerede data, modulo 2 32 .
Targzip.svg

Selvom dets filformat også gør det muligt at sammenkoble flere sådanne streams (gzipped -filer dekomprimeres simpelthen, som om de oprindeligt var en fil), bruges gzip normalt til at komprimere kun enkeltfiler. Komprimerede arkiver oprettes typisk ved at samle samlinger af filer i et enkelt tjærearkiv (også kaldet tarball ) og derefter komprimere det arkiv med gzip. Den sidste komprimerede fil har normalt udvidelsen .tar.gz eller .tgz .

gzip skal ikke forveksles med ZIP -arkivformatet, som også bruger DEFLATE. ZIP -formatet kan indeholde samlinger af filer uden en ekstern arkiver, men er mindre kompakt end komprimerede tarballer, der indeholder de samme data, fordi det komprimerer filer individuelt og ikke kan drage fordel af redundans mellem filer ( solid komprimering ).

Implementeringer

NetBSD Gzip / FreeBSD Gzip
Udvikler (er) NetBSD Foundation
Depot cvsweb .netbsd .org /bsdweb .cgi /src /usr .bin /gzip /
Skrevet i C
Type Datakomprimering
Licens Forenklet BSD -licens

Der er skrevet forskellige implementeringer af programmet. Den mest kendte er GNU-projektets implementering ved hjælp af Lempel-Ziv- kodning (LZ77). OpenBSD 's version af gzip er faktisk komprimeringsprogrammet , hvortil der blev tilføjet understøttelse af gzip -formatet i OpenBSD 3.4. 'G' i denne specifikke version står for gratis . FreeBSD , DragonFly BSD og NetBSD bruger en BSD-licenseret implementering i stedet for GNU-versionen; det er faktisk en kommandolinjegrænseflade til zlib beregnet til at være kompatibel med GNU-implementeringens muligheder. Disse implementeringer kommer oprindeligt fra NetBSD og understøtter dekomprimering af bzip2 og Unix -pakkeformatet .

Et alternativt komprimeringsprogram, der opnår 3-8% bedre komprimering, er Zopfli . Det opnår gzip-kompatibel komprimering ved hjælp af mere udtømmende algoritmer på bekostning af den nødvendige komprimeringstid. Det påvirker ikke dekomprimeringstiden.

pigz, skrevet af Mark Adler, er kompatibel med gzip og fremskynder komprimering ved hjælp af alle tilgængelige CPU -kerner og tråde.

gzip bruger blokbaseret komprimering med blokke på op til 64 kilobyte i overensstemmelse med "BZGF" -specifikationen.

Genopretning af skader

Data i blokke forud for den første beskadigede del af arkivet er normalt fuldt læsbare. Data fra blokke, der ikke er revet ned af skader, der er fundet bagefter, kan genvindes gennem vanskelige løsninger.

Derivater og andre anvendelser

Den tjære nytte inkluderet i de fleste Linux-distributioner kan udtrække tar.gz filer ved at vælte z mulighed, for eksempel, tjære -zxf file.tar.gz .

zlib er en abstraktion af DEFLATE -algoritmen i biblioteksform, der inkluderer support både til gzip -filformatet og et let datastrømformat i dets API. Zlib -streamformatet, DEFLATE og gzip -filformatet blev standardiseret henholdsvis som RFC 1950, RFC 1951 og RFC 1952.

Gzip -formatet bruges i HTTP -komprimering , en teknik, der bruges til at fremskynde afsendelsen af HTML og andet indhold på World Wide Web . Det er et af de tre standardformater til HTTP -komprimering som specificeret i RFC 2616. Denne RFC specificerer også et zlib -format (kaldet "DEFLATE"), som er lig med gzip -formatet bortset fra at gzip tilføjer elleve bytes overhead i form af skæreborde og trailere. Alligevel anbefales gzip -formatet undertiden over zlib, fordi Internet Explorer ikke implementerer standarden korrekt og ikke kan håndtere zlib -formatet som angivet i RFC 1950.

zlib DEFLATE bruges internt i formatet Portable Network Graphics (PNG).

Siden slutningen af ​​1990'erne har bzip2 , et filkomprimeringsværktøj baseret på en blok-sorteringsalgoritme, fået en vis popularitet som gzip-erstatning. Det producerer betydeligt mindre filer (især til kildekode og anden struktureret tekst), men på bekostning af hukommelse og behandlingstid (op til en faktor 4).

AdvanceCOMP og 7-Zip kan producere gzip-kompatible filer ved hjælp af en intern DEFLATE-implementering med bedre komprimeringsforhold end gzip selv-på bekostning af mere processortid i forhold til referenceimplementeringen.

Se også

Noter

Referencer

  • RFC 1952 - GZIP -filformatspecifikation version 4.3

eksterne links