LZO
LZO (abreviatura de Lempel-Ziv-Oberhumer - Lempel-Ziv-Oberheimer) es un algoritmo de compresión de datos diseñado para lograr la máxima velocidad de descompresión a mediados de la década de 1990. El algoritmo comprime datos sin pérdida y su implementación base admite la ejecución de subprocesos múltiples.
Un programa gratuito que implementa LZO es lzop . La biblioteca original fue escrita en ANSI C y está disponible bajo la licencia GPL . También hay implementaciones de LZO en Assembly ( x86 ), Perl , Python , Java y .NET . Código escrito por Markus Oberheimer ( Markus FXJ Oberhumer )
La biblioteca LZO implementa varios algoritmos con las siguientes características.
- El desembalaje es sencillo y muy rápido.
- La descompresión no requiere memoria adicional aparte de los búferes para datos comprimidos y descomprimidos.
- La compresión también es muy rápida.
- La compresión requiere 64 KB de memoria.
- Puede lograr una compresión adicional dedicando un poco más de tiempo a la compresión. En este caso, la velocidad de descompresión no disminuye.
- Hay varios niveles de compresión (con diferentes requisitos de velocidad).
- En particular, se implementa una variante del algoritmo que requiere solo 8 KB de memoria para la compresión.
- El algoritmo es seguro de aplicar en un entorno de subprocesos múltiples.
- El algoritmo comprime y descomprime datos sin pérdida.
La alta velocidad del algoritmo permite que se integre en varios sistemas de alto rendimiento, por ejemplo, en DBMS [1] , sistemas de procesamiento de datos [2] [3] , sistemas de archivos [4] [5] , para desempaquetar kernels de SO en el arranque [6] (incluidos los dispositivos Android de Samsung), sistemas de memoria comprimida [7] [8] . Usado en varios planetas [9] .
El algoritmo es uno de los de descompresión más rápidos junto con el método LZ4 (LZ4 HC) creado sobre esta base, así como una serie de otros algoritmos de compresión: Snappy , FastLZ , LZF [6] .
Entre las deficiencias, se destaca la falta de una especificación única para el formato de flujo comprimido [10] . Hubo un error de desbordamiento de enteros en el código de descompresión original antes de 2014. El uso generalizado del algoritmo ha llevado a la vulnerabilidad potencial de muchos proyectos [9] [11] [12] .
Véase también
Notas
- ↑ Codificación LZO: Amazon Redshift . Consultado el 31 de octubre de 2016. Archivado desde el original el 24 de noviembre de 2016. (indefinido)
- ↑ Parallel LZO: Compresión divisible para Apache Hadoop - Blog de ingeniería de Cloudera (enlace descendente) . Consultado el 31 de octubre de 2016. Archivado desde el original el 1 de noviembre de 2016. (indefinido)
- ↑ Una guía para usar la compresión LZO en Hadoop
- ↑ Rendimiento de compresión Btrfs LZO - Phoronix . Consultado el 31 de octubre de 2016. Archivado desde el original el 14 de abril de 2016. (indefinido)
- ↑ Wiki de compresión-btrfs . Consultado el 31 de octubre de 2016. Archivado desde el original el 12 de junio de 2017. (indefinido)
- ↑ 1 2 Copia archivada (enlace no disponible) . Consultado el 31 de octubre de 2016. Archivado desde el original el 6 de marzo de 2016. (indefinido)
- ↑ Copia archivada . Consultado el 31 de octubre de 2016. Archivado desde el original el 22 de marzo de 2016. (indefinido)
- ↑ Compresión de memoria en el núcleo Archivado el 9 de octubre de 2021 en Wayback Machine , LWN.net
- ↑ 1 2 Raising Lazarus - The 20 Year Old Bug that Went to Mars Archivado el 22 de octubre de 2016 en el blog de investigación Wayback Machine / The Lab Mouse Security. "El algoritmo LZO ha ido al planeta Marte en dispositivos de la NASA varias veces"
- ↑ Formato de transmisión LZO tal como lo entiende el descompresor LZO de Linux Archivado el 9 de junio de 2016 en Wayback Machine , Documentación del kernel de Linux ,
- ↑ Vulnerabilidad de seguridad de larga data encontrada en el algoritmo de compresión LZO | securityweek.com . Consultado el 31 de octubre de 2016. Archivado desde el original el 1 de noviembre de 2016. (indefinido)
- ↑ Vulnerabilidad de veinte años en LZO finalmente parcheada Archivado el 1 de noviembre de 2016 en Wayback Machine / CSO Online
Enlaces