Desarrolladores de Arch Linux planean usar zstd en pacman
Los desarrolladores de Arch Linux han dado a conocer recientemente mediante un comunicado sobre su intención de habilitar el soporte para el algoritmo de compresión zstd (incluido desde noviembre de 2017 en el Kernel de Linux 4.14) en el administrador de paquetes pacman.
Dado que los desarrolladores de Arch Linux realizaron la comparación de diferentes algoritmos de compresión, al final optaron por planean usar zstd en lugar del algoritmo de compresión predeterminado en devtools. El método de compresión actual es “xz-c-z-“, que es de un solo hilo y lento, por lo que el equipo quiere reemplazarlo con un algoritmo más rápido.
En comparación con el algoritmo xz, el uso de zstd acelerará la compresión y el desempaquetado de paquetes (ya que ofrece gran ventana de búsqueda y una etapa de codificación de entropía rápida, utilizando Finite State Entrop), manteniendo el nivel de compresión. Como resultado, cambiar a zstd aumentará la velocidad de instalación de paquetes.
El algoritmo de compresión zstd ofrece una compresión y descompresión más rápidas, al tiempo que mantiene una relación de compresión comparable con xz. Esto acelerará la instalación del paquete con pacman, sin más inconvenientes. Comentaron en el comunicado los desarrolladores de Arch Linux
El soporte para comprimir paquetes usando zstd que plantean integrar posteriormente, aparecerá en la versión de Pacman 5.2, pero la instalación de dichos paquetes requerirá una versión de zarchd libarchive.
Pacman es el gestor de paquetes de Linux Arch Linux, es capaz de resolver las dependencias, y descargar e instalar automáticamente todos los paquetes necesarios. En teoría, el usuario solo necesita ejecutar una única orden para actualizar por completo el sistema.
Pacman utiliza archivos empaquetados en tar y comprimidos en gzip o xz para todos los paquetes, cada uno de los cuales contiene binarios compilados. Los paquetes son descargados a través de FTP, también se puede utilizar HTTP y archivos locales, dependiendo de cómo esté configurado cada repositorio. Cumple con Linux Arch Build System (ABS) utilizados para crear los paquetes desde el código fuente.
Sobre Zstandard
Zstandard (zstd) se diseñó para proporcionar una relación de compresión comparable a la del algoritmo DEFLATE, pero más rápido, especialmente para la descompresión. Se puede ajustar con niveles de compresión que van desde 5 negativos (el más rápido) a 22 (la velocidad de compresión más lenta, pero la mejor relación de compresión).
El paquete zstd incluye implementaciones paralelas (multiproceso) de compresión y descompresión. A partir de la versión 1.3.2, zstd implementa opcionalmente una búsqueda y deduplicación de muy largo alcance similar a rzip o lrzip.
La velocidad de compresión puede variar en un factor de 20 o más entre los niveles más rápido y más lento, mientras que la descompresión es uniformemente rápida, variando en menos del 20% entre los niveles más rápido y más lento.
Zstd cuenta con un nivel de compresión máximo proporciona una relación de compresión cercana a lzma, lzham y ppmx y funciona mejor que lza o bzip2. Zstandard alcanza la frontera actual de Pareto, ya que se descomprime más rápido que cualquier otro algoritmo disponible actualmente con una relación de compresión similar o mejor.
Los diccionarios pueden tener un gran impacto en la relación de compresión de archivos pequeños, por lo que el algoritmo Zstandard puede usar un diccionario de compresión proporcionado por el usuario. También ofrece un modo de entrenamiento, capaz de generar un diccionario a partir de un conjunto de muestras.
En particular, se puede cargar un diccionario para procesar grandes conjuntos de archivos con redundancia entre archivos, pero no necesariamente dentro de cada archivo, por ejemplo, archivos de registro .
Por lo tanto, antes de comenzar con la distribución de los paquetes comprimidos usando zstd dentro de los canales de Arch Linux los usuarios deben instalar primeramente libarchive al menos la versión 3.3.3-1 (un paquete con esta versión se preparó hace un año, por lo que lo más probable es que la versión requerida de libarchive ya esté instalada).
Los paquetes comprimidos por zstd se enviarán con la extensión “.pkg.tar.zst”.