Para distribuir arquivos pela Internet, as seguintes ações geralmente são uma prioridade:
- Taxa de compactação (isto é, quão pequeno o compressor faz os dados);
- Tempo de descompressão (requisitos de CPU);
- Requisitos de memória de descompactação; e
- Compatibilidade (como o programa de descompressão é difundido)
Memória de compressão & Os requisitos de CPU não são muito importantes, porque você pode usar uma grande máquina rápida para isso e só precisa fazer isso uma vez.
Comparado ao bzip2, o xz tem uma melhor taxa de compactação e menor (melhor) tempo de descompressão. No entanto, nas configurações de compactação normalmente usadas, é necessária mais memória para descompactar [1] e é um pouco menos difundida. O Gzip usa menos memória que qualquer um deles.
Assim, os arquivos em formato gzip e xz são postados, permitindo que você escolha:
- Precisa descomprimir em uma máquina com muito memória limitada (< 32 MB): gzip. Dado, não é muito provável quando se fala de fontes do kernel.
- Precisa descomprimir as ferramentas mínimas disponíveis: gzip
- Deseja economizar tempo de download e / ou largura de banda: xz
Não há realmente uma combinação realista de fatores que levariam você a escolher o bzip2. Então está sendo eliminado.
Eu olhei para comparações de compressão em uma postagem no blog . Eu não tentei replicar os resultados, e suspeito que alguns deles tenham mudado (principalmente, eu espero que xz
tenha melhorado, já que é o mais novo.)
(Existem alguns cenários específicos onde uma boa implementação do bzip2 pode ser preferível a xz: o bzip2 pode comprimir um arquivo com muitos zeros e sequências de DNA genômicas melhor que xz. Versões mais recentes do xz agora têm um modo de bloqueio (opcional) que permite a recuperação de dados após o ponto de corrupção e compressão paralela e descompressão [em teoria]. Anteriormente, apenas o bzip2 oferecia isso. [2] No entanto, nenhum deles é relevante para a distribuição do kernel)
1: no tamanho do arquivo, xz -3
está em torno de bzip -9
. Então o xz usa menos memória para descomprimir. Mas xz -9
(como, por exemplo, usado para tarballs do kernel Linux) usa muito mais do que bzip -9
. (E até xz -0
precisa de mais de gzip -9
).
2: Mudança no Sistema F21: lbzip2 como implementação padrão do bzip2