gzip - gzip
Autor (es) original (is) | |
---|---|
Desenvolvedor (s) | Projeto GNU |
lançamento inicial | 31 de outubro de 1992 |
Versão estável | 1.11 (GNU Gzip) / 3 de setembro de 2021
|
Repositório | git |
Escrito em | C |
Sistema operacional | Semelhante ao Unix , Plan 9 , Inferno |
Modelo | Compressão de dados |
Licença | GPLv3 |
Local na rede Internet | www |
gzip é um formato de arquivo e um aplicativo de software usado para compactação e descompactação de arquivos . O programa foi criado por Jean-loup Gailly e Mark Adler como um substituto de software livre para o programa de compressão usado nos primeiros sistemas Unix , e destinado ao GNU (o "g" é de "GNU"). A versão 0.1 foi lançada publicamente em 31 de outubro de 1992, e a versão 1.0 foi lançada em fevereiro de 1993.
A descompressão do formato gzip pode ser implementada como um algoritmo de streaming , um recurso importante para aplicativos de protocolos da Web , intercâmbio de dados e ETL (em canais padrão ).
Formato de arquivo
Extensão de nome de arquivo |
.gz
|
---|---|
Tipo de mídia da Internet |
aplicativo / gzip |
Identificador de tipo uniforme (UTI) | org.gnu.gnu-zip-archive |
número mágico | 1f 8b |
Desenvolvido por | Jean-loup Gailly e Mark Adler |
Tipo de formato | Compressão de dados |
Formato aberto ? | sim |
Local na rede Internet |
gzip |
O gzip é baseado no algoritmo DEFLATE , que é uma combinação da codificação LZ77 e Huffman . O DEFLATE foi concebido como um substituto para o LZW e outros algoritmos de compactação de dados sobrecarregados de patente que, na época, limitavam a usabilidade de compactação e outros arquivadores populares.
"gzip" também é frequentemente usado para se referir ao formato de arquivo gzip, que é:
- um cabeçalho de 10 bytes, contendo um número mágico (
1f 8b
), o método de compactação (08
para DEFLATE), 1 byte de sinalizadores de cabeçalho, um carimbo de data / hora de 4 bytes, sinalizadores de compactação e o ID do sistema operacional. - cabeçalhos extras opcionais conforme permitido pelos sinalizadores de cabeçalho, incluindo o nome do arquivo original, um campo de comentário, um campo "extra" e a metade inferior de uma soma de verificação CRC-32 para a seção do cabeçalho.
- um corpo, contendo uma carga compactada DEFLATE
- um rodapé de 8 bytes, contendo uma soma de verificação CRC-32 e o comprimento dos dados originais não compactados, módulo 2 32 .
Embora seu formato de arquivo também permita que vários fluxos sejam concatenados (arquivos gzip são simplesmente descompactados e concatenados como se fossem originalmente um único arquivo), o gzip é normalmente usado para compactar apenas arquivos únicos. Os arquivos compactados são normalmente criados reunindo coleções de arquivos em um único arquivo tar (também chamado de tarball ) e, em seguida, compactando esse arquivo com gzip. O arquivo compactado final geralmente tem a extensão .tar.gz ou .tgz .
O gzip não deve ser confundido com o formato de arquivo ZIP , que também usa DEFLATE. O formato ZIP pode conter coleções de arquivos sem um arquivador externo, mas é menos compacto do que tarballs compactados contendo os mesmos dados, porque ele compacta arquivos individualmente e não pode aproveitar a redundância entre os arquivos ( compactação sólida ).
Implementações
Desenvolvedor (s) | A Fundação NetBSD |
---|---|
Repositório | cvsweb |
Escrito em | C |
Modelo | Compressão de dados |
Licença | Licença BSD simplificada |
Várias implementações do programa foram escritas. O mais comumente conhecido é a implementação do Projeto GNU usando a codificação Lempel-Ziv (LZ77). A versão gzip do OpenBSD é na verdade o programa de compactação , ao qual o suporte para o formato gzip foi adicionado no OpenBSD 3.4. O 'g' nesta versão específica significa grátis . FreeBSD , DragonFly BSD e NetBSD usam uma implementação licenciada por BSD em vez da versão GNU; na verdade, é uma interface de linha de comando para zlib destinada a ser compatível com as opções de implementação GNU. Essas implementações vêm originalmente do NetBSD e oferecem suporte à descompactação de bzip2 e do formato Unix pack .
Um programa de compressão alternativo que atinge uma compressão de 3 a 8% melhor é o Zopfli . Ele atinge compactação compatível com gzip usando algoritmos mais exaustivos, ao custo do tempo de compactação necessário. Não afeta o tempo de descompressão.
pigz
, escrito por Mark Adler, é compatível com gzip e acelera a compactação usando todos os núcleos e threads de CPU disponíveis.
O gzip usa compressão baseada em blocos com blocos de até 64 kilobytes de acordo com a especificação "BZGF".
Recuperação de danos
Os dados em blocos anteriores à primeira parte danificada do arquivo geralmente são totalmente legíveis. Os dados de blocos não demolidos por danos localizados posteriormente podem ser recuperados por meio de soluções alternativas difíceis.
Derivados e outros usos
O utilitário tar incluído na maioria das distribuições Linux pode extrair arquivos .tar.gz passando a opção z , por exemplo, tar -zxf arquivo.tar.gz .
zlib é uma abstração do algoritmo DEFLATE em forma de biblioteca que inclui suporte para o formato de arquivo gzip e um formato de fluxo de dados leve em sua API. O formato de fluxo zlib, DEFLATE, e o formato de arquivo gzip foram padronizados respectivamente como RFC 1950, RFC 1951 e RFC 1952.
O formato gzip é usado na compressão HTTP , uma técnica usada para acelerar o envio de HTML e outros conteúdos na World Wide Web . É um dos três formatos padrão para compactação HTTP, conforme especificado no RFC 2616. Este RFC também especifica um formato zlib (chamado "DEFLATE"), que é igual ao formato gzip, exceto que o gzip adiciona onze bytes de sobrecarga na forma de cabeçalhos e trailers. Ainda assim, o formato gzip às vezes é recomendado em vez do zlib porque o Internet Explorer não implementa o padrão corretamente e não pode lidar com o formato zlib conforme especificado no RFC 1950.
zlib DEFLATE é usado internamente pelo formato Portable Network Graphics (PNG).
Desde o final da década de 1990, o bzip2 , um utilitário de compactação de arquivos baseado em um algoritmo de classificação de blocos, ganhou alguma popularidade como substituto do gzip. Ele produz arquivos consideravelmente menores (especialmente para código-fonte e outros textos estruturados), mas ao custo de memória e tempo de processamento (até um fator de 4).
AdvanceCOMP e 7-Zip podem produzir arquivos compatíveis com gzip, usando uma implementação DEFLATE interna com taxas de compressão melhores do que o próprio gzip - ao custo de mais tempo de processador em comparação com a implementação de referência.
Veja também
- Comparação de arquivadores de arquivo
- Formato de arquivo grátis
- Lista de formatos de arquivo
- Lista de comandos Unix
- Libarc
Notas
Referências
- RFC 1952 - especificação do formato de arquivo GZIP versão 4.3