stringtranslate.com

zip

gzip es un formato de archivo y una aplicación de software que se utiliza 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 publicó por primera vez el 31 de octubre de 1992, seguida de la versión 1.0 en febrero de 1993.

La descompresión del formato gzip se puede implementar como un algoritmo de transmisión , una característica importante para protocolos web , intercambio de datos y aplicaciones ETL (en tuberías 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 con patentes que, en ese momento, limitaban la usabilidad de la utilidad de compresión y otros archivadores populares.

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

gzip se puede combinar con el programa tar para comprimir varios archivos.

Aunque su formato de archivo también permite concatenar múltiples flujos de este tipo ( los archivos comprimidos con gzip simplemente se descomprimen concatenados como si originalmente fueran un solo archivo), [5] gzip normalmente se usa para comprimir solo archivos individuales. [6] Los archivos comprimidos generalmente se crean ensamblando colecciones de archivos en un único archivo tar (también llamado tarball ), [7] 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 utiliza DEFLATE . El formato ZIP puede contener colecciones de archivos sin un archivador externo, pero es menos compacto que los archivos tar comprimidos que contienen los mismos datos, porque comprime los archivos individualmente y no puede aprovechar la redundancia entre archivos ( compresión sólida ). El formato de archivo gzip tampoco debe confundirse con el de la utilidad de compresión, basada en LZW, con extensión .Z ; sin embargo, la utilidad gunzip puede descomprimir archivos .Z. [8]

Implementaciones

Se han escrito varias implementaciones del programa. La más conocida es la implementación del Proyecto GNU utilizando codificación Lempel-Ziv (LZ77). La versión de gzip de OpenBSD es en realidad el programa de compresión , al que se añadió soporte para el formato gzip en OpenBSD 3.4. La 'g' en esta versión específica significa gratis . [9] 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 destinada a ser compatible con las opciones de implementación de GNU. [10] Estas implementaciones provienen originalmente de NetBSD y admiten la descompresión de bzip2 y el formato de paquete Unix .

Un programa de compresión alternativo que logra una compresión entre un 3% y un 8% mejor es Zopfli . Logra una compresión compatible con gzip utilizando 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 utilizando todos los núcleos y subprocesos de CPU disponibles. [11]

Recuperación de daños

Los datos en bloques anteriores a la primera parte dañada del archivo suelen ser completamente legibles. Los datos de los bloques que no fueron demolidos por los daños y que se ubicaron posteriormente pueden recuperarse mediante soluciones alternativas difíciles. [12]

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, tar -zxf file.tar.gz , donde indica la descompresión, significa extracción y especifica el nombre del archivo comprimido que se va a extraer. de. Opcionalmente, ( detallado ) enumera los archivos a medida que se extraen. [13]-z-x-f-v

zlib es una abstracción del algoritmo DEFLATE en forma de biblioteca que incluye soporte tanto para el formato de archivo gzip como para un formato de flujo de datos liviano en su API. El formato de flujo 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 otros contenidos 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 sobrecarga en forma de cabeceras y remolques. Aún así, a veces se recomienda el formato gzip en lugar de zlib porque Internet Explorer no implementa el estándar correctamente y no puede manejar el formato zlib como se especifica en RFC 1950. [14]

zlib DEFLATE se utiliza internamente en 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 código fuente y otro texto estructurado), pero a costa de memoria y tiempo de procesamiento (hasta un factor de 4). [15]

AdvanceCOMP, Zopfli , libdeflate y 7-Zip pueden producir archivos compatibles con gzip, utilizando una implementación DEFLATE interna con mejores relaciones de compresión que el propio gzip, a costa de más tiempo de procesador en comparación con la implementación de referencia. [ cita necesaria ]

Una investigación publicada en 2023 mostró que técnicas simples de compresión sin pérdidas, como gzip, podrían combinarse con un clasificador de k-vecino más cercano para crear una alternativa atractiva a las redes neuronales profundas para la clasificación de texto en el procesamiento del lenguaje natural . Se ha demostrado que este enfoque iguala y en algunos casos supera a los enfoques convencionales como BERT debido a los bajos requisitos de recursos, por ejemplo, sin necesidad de hardware GPU . [dieciséis]

Ver también

Notas

  1. ^ Jim Meyering (19 de agosto de 2023). "Gzip-1.13 lanzado [estable]" . Consultado el 20 de agosto de 2023 .
  2. ^ Los tipos de medios 'application/zlib' y 'application/gzip'. Grupo de Trabajo de Ingeniería de Internet. doi : 10.17487/RFC6713 . RFC 6713 . Consultado el 1 de marzo de 2014 .
  3. ^ Deutsch, L. Peter (mayo de 1996). "Especificación de formato de archivo GZIP versión 4.3". Grupo de Trabajo de Ingeniería de Internet. doi : 10.17487/RFC1952 . Consultado el 23 de julio de 2019 .
  4. ^ Jean-loup Gailly. "GNUGzip". Gnu.org . Archivado desde el original el 15 de octubre de 2015 . Consultado el 11 de octubre de 2015 .
  5. ^ "GNU Gzip: uso avanzado". Gnu.org . Archivado desde el original el 24 de diciembre de 2012 . Consultado el 28 de noviembre de 2012 .
  6. ^ "¿Puede gzip comprimir varios archivos en un solo archivo?". Gnu.org . Archivado desde el original el 22 de julio de 2010 . Consultado el 27 de enero de 2010 .
  7. ^ "tarball, The Jergon File, versión 4.4.7". Catb.org . Archivado desde el original el 20 de marzo de 2017 . Consultado el 27 de enero de 2010 .
  8. ^ "GNU Gzip". El sistema operativo GNU y el movimiento del software libre . 5 de febrero de 2023 . Consultado el 3 de abril de 2024 . Actualmente, gunzip puede descomprimir archivos creados por gzip, zip, comprimir o empaquetar. La detección del formato de entrada es automática.
  9. ^ "Página de manual de OpenBSD gzip (1)". Openbsd.org . OpenBSD . Consultado el 4 de febrero de 2018 .
  10. ^ "gzip". Man.freebsd.org. 9 de octubre de 2011. Archivado desde el original el 17 de diciembre de 2019 . Consultado el 1 de marzo de 2014 .
  11. ^ Mark Adler (2017). "pigz: una implementación paralela de gzip para máquinas modernas multiprocesador y multinúcleo". zlib.net . Archivado desde el original el 18 de diciembre de 2018 . Consultado el 23 de diciembre de 2018 .
  12. ^ Recuperar un archivo .gz dañado - Jean-loup Gailly, GZip.org
  13. ^ "Cómo extraer/descomprimir archivos tar.gz desde la línea de comandos de Linux". Base de conocimientos de phoenixNAP . 14 de noviembre de 2019 . Consultado el 12 de enero de 2022 .
  14. ^ Lawrence, Eric (21 de noviembre de 2014). "Comprimir la Web". Blogs de MSDN > IEInternals . Microsoft . Archivado desde el original el 28 de octubre de 2015 . Consultado el 2 de noviembre de 2015 .
  15. ^ "Herramienta de comparación: 7-zip, bzip2 y gzip". compresiónratings.com . Archivado desde el original el 1 de noviembre de 2014 . Consultado el 1 de noviembre de 2014 .
  16. ^ Jiang, Zhiying; Yang, Mateo; Tsirlin, Mijaíl; Tang, Rafael; Dai, Yiqin; Lin, Jimmy (julio de 2023). "Clasificación de texto de "bajos recursos": un método de clasificación sin parámetros con compresores". Hallazgos de la Asociación de Lingüística Computacional: ACL 2023 . Toronto, Canadá: Asociación de Lingüística Computacional: 6810–6828. doi : 10.18653/v1/2023.findings-acl.426 . S2CID  260668487.

Referencias

enlaces externos