XZ embedded bug unpacking linux-3.8.tar.xz

Michael Tokarev mjt at tls.msk.ru
Thu Feb 28 07:54:29 UTC 2013


28.02.2013 04:22, Antonio Diaz Diaz wrote:
[]
> The history in a nutshell: "In 2008, Antonio Diaz released lzip, which uses a proper container format with checksums and magic numbers instead of the raw LZMA data stream, providing a complete Unix-style solution for using LZMA. Nevertheless, LZMA Utils was extended to have similar features and then renamed to XZ Utils"[3].

Oh.  I remember that 2008 year (or a bit before) when kernel folks discussed which
format to use for kernel.org archives and leaned towards lzma, and I pointed out
that it does not have any checksums.  I guess it was a starting point for xz and
lzip.

For some reason I haven't heard of lzip at all until now.  I remember when xz come
out, I looked at it and noticed its complexity and lack of stable format, exactly
as you describe, but that didn't rang any bells for me and eventually it become a
widely known and accepted format.

So, I become curious how lzip behaves.  And I immediately gave it a very quick try.

CPU: AMD AthlonII X2 260, 3.2GHz (2 cores)
file: 1Gb (1073741824 bytes), an image of a small linux virtual machine.

 .lz:  273684804, real 11m53.112s, user 20m30.563s
 .xz:  266670056, real 11m8.190s,  user 10m45.835s

This is the default compression level.

WOW.  So, 2-thread plzip is about TWO TIMES solwer than single-thread xz when
compressing, making parallel plzip on 2 cores to be as fast as xz.  lz produces
slightly larger result.

Are you sure the stream and compression algorithm are the same? :)

Thanks,

/mjt


More information about the busybox mailing list