Pregunta:
bzip2 había sido un estándar de facto para una compresión bastante fuerte durante muchos años. Yo mismo había escrito el comando bzip2
miles de veces hasta ahora, lo que me hace preguntarme: ¿qué pasó con bzip o bzip1? Google no parece contarme mucho al respecto y parece que podría ser una lección de historia interesante.
Respuesta:
Parece que el bzip
original se bzip
alrededor de 1998 debido a problemas de patentes con la compresión aritmética utilizada en. Un poco de investigación (en realidad solo leyendo Wikipedia) muestra un enlace archivado al sitio web bzip2
de esta época .
Aquí está la sección relevante que detalla esta y otras diferencias:
¿Cómo se relaciona con su oferta anterior (bzip-0.21)?
bzip2 es una versión reescrita y rediseñada de 0.21. Parece superficialmente bastante similar, pero ha sido reescrito casi por completo (varias veces :-). Las diferencias importantes son:
¡Libre de patentes! (Espero; vea la declaración de arriba). bzip-0.21 usó codificación aritmética; bzip2 utiliza la codificación Huffman, que generalmente no se considera problemática desde el punto de vista de la patente. Ambos programas se basan en la transformación de Burrows-Wheeler, pero, a mi leal saber y entender, tampoco está patentado.
Más rápido, especialmente en descompresión. bzip2 se descomprime más de un 50% más rápido que 0.21, principalmente debido al uso de la codificación Huffman. También he mejorado la velocidad de compresión, aunque no tanto, quizás se comprime un 30% más rápido que 0,21.
Recuperación de errores de medios. Ambos programas comprimen datos en bloques, por defecto, de 900k de longitud. Con bzip2, cada bloque se maneja de forma completamente independiente, lleva su propia suma de control y está delimitado por una secuencia de 48 bits. Entonces, si tiene un archivo comprimido dañado, bzip2 puede extraer los bloques comprimidos, detectar cuáles no están dañados y descomprimirlos.
Modo de prueba. Puede probar la integridad de los archivos comprimidos sin tener que descomprimirlos. Debería haber puesto esto en 0.21, de verdad, pero era demasiado vago (+ quemado por la piratería cuando lo publiqué).
Maneja mucho mejor archivos muy repetitivos. Estos archivos son el peor de los casos para cualquier compresor de clasificación de bloques. bzip2 se ejecuta aproximadamente diez veces más rápido que 0.21 para tales archivos.
Soporte para máquinas más pequeñas. bzip2 puede descomprimir cualquier archivo que cree en 2300k, lo que significa que puede descomprimir archivos en máquinas de 4 megas. El uso máximo de memoria durante la compresión también se reduce en aproximadamente 900k en comparación con 0.21, a alrededor de 6400k.
Mejor manejo de la bandera. En particular, se admiten banderas largas (–como –este), lo que facilita su uso.
El mensaje de inicio de una línea que imprimió 0.21, se ha ido. Esta fue la característica de la que más se quejaron los 0.21. Incluso me molesta hoy en día.
Ya no estoy distribuyendo 0.21, porque hacerlo perpetúa los problemas con las patentes, lo que asegura que el programa nunca será ampliamente utilizado. Es una pena, porque es un programa útil y parece que a mucha gente le gusta. Si ya usa 0.21, actualice a bzip2. Desafortunadamente, no puedo hacer que bzip2 pueda descomprimir los archivos .bz de 0.21, ya que eso haría que el ejercicio de evitación de patentes fuera inútil. Sé que cambiar los formatos de archivo es doloroso; a partir de ahora, intentaré realizar más cambios de forma compatible con versiones anteriores.
También es un enlace a una versión de descompresión del código fuente bzip
para cualquiera que quiera jugar con él.