gzip é tanto um software para compactação de arquivos que serve de implementação de referência quanto o formato do arquivo compactado que este gera. Este software foi desenvolvido por Jean-loup Gailly e Mark Adler com algoritmos livres para substituir o compress, que utilizava algoritmos patenteados.
Formato
A geração do gzip é baseada no algoritmo DEFLATE que por sua vez é uma combinação de LZ77 e da codificação de Huffman. A descrição deste algoritmo encontra-se na RFC 1951.
O formato do arquivo gzip é descrito na RFC 1952, é identificado pela extensão .gz e possui o seguinte formato:
Cabeçalho de 10 bytes contendo os números mágicos 0x1f 0x8b seguidos pelo número da versão e a data e hora, outros cabeçalhos opcionais contendo, por exemplo, o nome do arquivo original, corpo do arquivo contendo os dados comprimidos pelo algoritmo DEFLATE, terminador de 8 bytes com um checksum CRC-32 e o tamanho do arquivo original descomprimido, módulo 2^32.
Apesar da possibilidade de concatenar múltiplos arquivos, em geral gzip é utilizado para comprimir apenas um arquivo cujo nome recebe a extensão .gz após sua própria extensão. Os usuários deste programa contornam esta limitação utilizando o utilitário tar para primeiramente agrupar múltiplos arquivos em um único, que em seguida é comprimido pelo gzip. Este arquivo é identificado pelas extensões .tar.gz ou .tgz, também chamado de tarball.
Outros usos
Para tornar o uso do algoritmo DEFLATE mais genérico, os desenvolvedores do gzip também construíram a biblioteca zlib que foi disseminada para várias plataformas.
O formato é utilizado para o envio de HTTP comprimido, uma técnica que torna o envio de HTML mais veloz ao comprimi-lo. A compressão também faz parte do formato de arquivo de imagens chamado Portable Network Graphics identificado pela extensão .png.
Ligações externas
Categoria:Software do Projeto GNU Categoria:Compactadores de arquivo Categoria:Formatos digitais