Gzip

Compartir Imprimir Citar
Herramienta de compresión/decompresión de archivos GNU

gzip es un formato de archivo y una aplicación de software utilizada para la compresión y descompresión de archivos. El programa fue creado por Jean-loup Gailly y Mark Adler como un reemplazo de software gratuito para el programa de compresión utilizado en los primeros sistemas Unix, y destinado a ser utilizado por GNU (de donde se deriva la "g" de gzip). La versión 0.1 se lanzó públicamente por primera vez el 31 de octubre de 1992, y la versión 1.0 siguió en febrero de 1993.

La descompresión del formato gzip se puede implementar como un algoritmo de transmisión, una función importante para los protocolos web, el intercambio de datos y las aplicaciones ETL (en conductos estándar).

Formato de archivo

gzip se basa en el algoritmo DEFLATE, que es una combinación de codificación LZ77 y Huffman. DEFLATE fue pensado como un reemplazo para LZW y otros algoritmos de compresión de datos gravados por patentes que, en ese momento, limitaban la usabilidad de compress y otros archivadores populares.

"gzip" a menudo también se usa para referirse al formato de archivo gzip, que es:

Targzip.svg

Aunque su formato de archivo también permite la concatenación de varios flujos de este tipo (los archivos comprimidos con gzip simplemente se descomprimen concatenados como si fueran originalmente un solo archivo), gzip se usa normalmente para comprimir solo archivos individuales. Los archivos comprimidos generalmente se crean ensamblando colecciones de archivos en un solo archivo tar (también llamado tarball) y luego comprimiendo ese archivo con gzip. El archivo comprimido final suele tener la extensión .tar.gz o .tgz.

gzip no debe confundirse con el formato de archivo ZIP, que también usa DEFLATE. El formato ZIP puede contener colecciones de archivos sin un archivador externo, pero es menos compacto que los tarballs comprimidos que contienen los mismos datos, porque comprime archivos individualmente y no puede aprovechar la redundancia entre archivos (compresión sólida).

Implementaciones

Se han escrito varias implementaciones del programa. El más conocido es la implementación del Proyecto GNU utilizando la codificación Lempel-Ziv (LZ77). La versión de gzip de OpenBSD es en realidad el programa de compresión, al que se agregó soporte para el formato gzip en OpenBSD 3.4. La 'g' en esta versión específica significa gratis. FreeBSD, DragonFly BSD y NetBSD utilizan una implementación con licencia BSD en lugar de la versión GNU; en realidad es una interfaz de línea de comandos para zlib que pretende ser compatible con las opciones de implementación de GNU. Estas implementaciones provienen originalmente de NetBSD y admiten la descompresión de bzip2 y el formato de paquete de Unix.

Zopfli es un programa de compresión alternativo que logra una compresión entre un 3 y un 8 % mejor. Logra una compresión compatible con gzip usando algoritmos más exhaustivos, a expensas del tiempo de compresión requerido. No afecta el tiempo de descompresión.

pigz, escrito por Mark Adler, es compatible con gzip y acelera la compresión al utilizar todos los núcleos y subprocesos de CPU disponibles.

Recuperación de daños

Los datos en bloques anteriores a la primera parte dañada del archivo suelen ser totalmente legibles. Los datos de los bloques no demolidos por daños que se ubican posteriormente pueden recuperarse mediante soluciones alternativas difíciles.

Derivados y otros usos

La utilidad tar incluida en la mayoría de las distribuciones de Linux puede extraer archivos.tar.gz pasando la opción z, por ejemplo, archivo tar -zxf.tar.gz, donde -z indica la descompresión, -x significa extracción y -f especifica el nombre del archivo comprimido. archivo de almacenamiento para extraer. Opcionalmente, -v (verbose) enumera los archivos a medida que se extraen.

zlib es una abstracción del algoritmo DEFLATE en forma de biblioteca que incluye compatibilidad con el formato de archivo gzip y un formato de flujo de datos ligero en su API. El formato de transmisión zlib, DEFLATE y el formato de archivo gzip se estandarizaron respectivamente como RFC 1950, RFC 1951 y RFC 1952.

El formato gzip se utiliza en la compresión HTTP, una técnica utilizada para acelerar el envío de HTML y otro contenido en la World Wide Web. Es uno de los tres formatos estándar para la compresión HTTP como se especifica en RFC 2616. Este RFC también especifica un formato zlib (llamado "DEFLATE"), que es igual al formato gzip excepto que gzip agrega once bytes de gastos generales en forma de encabezados y remolques. Aún así, a veces se recomienda el formato gzip sobre zlib porque Internet Explorer no implementa el estándar correctamente y no puede manejar el formato zlib como se especifica en RFC 1950.

zlib DEFLATE es utilizado internamente por el formato Portable Network Graphics (PNG).

Desde finales de la década de 1990, bzip2, una utilidad de compresión de archivos basada en un algoritmo de clasificación de bloques, ha ganado cierta popularidad como reemplazo de gzip. Produce archivos considerablemente más pequeños (especialmente para el código fuente y otro texto estructurado), pero a costa de la memoria y el tiempo de procesamiento (hasta un factor de 4).

AdvanceCOMP y 7-Zip pueden producir archivos compatibles con gzip mediante una implementación interna DEFLATE con mejores índices de compresión que el mismo gzip, a costa de más tiempo de procesador en comparación con la implementación de referencia.