Co to jest format pliku XZ?
.xz to format pliku skompresowanego archiwum, który wykorzystuje metodę kompresji XZ. Format ten jest natywny dla XZ Utils, wzorcowego narzędzia programistycznego opracowanego w ramach projektu Tukaani (dystrybucja GNU/Linux oparta na Slackware).
XZ i TAR
Archiwum .xz może przechowywać tylko jeden skompresowany strumień i nie posiada własnego drzewa katalogów. Z tego powodu pliki .xz są powszechnie używane w połączeniu z archiwami TAR - TAR zbiera wybrane pliki w jedno archiwum, a następnie stosowany jest algorytm XZ w celu kompresji. Wynikowy plik posiada rozszerzenie .tar.xz lub .txz.
Algorytm kompresji LZMA2
Kompresja XZ opiera się na algorytmie LZMA2 - ewolucji oryginalnego standardu LZMA. Pozwala on na uzyskanie wysokich współczynników kompresji i skutkuje znacznym zmniejszeniem rozmiaru plików: archiwa XZ są zazwyczaj o 30% mniejsze niż GZIP i o 15% mniejsze niż archiwa BZIP2. XZ oferuje kompresję bezstratną (lossless), aby zapobiec utracie jakichkolwiek informacji.
Dodatkowe uwagi
- W porównaniu z innymi metodami kompresji, proces kompresji XZ jest dość wolny, ale dekompresja jest znacznie szybsza.
- Archiwa XZ są szeroko stosowane do dystrybucji pakietów oprogramowania Linux, w tym Slackware oraz większości głównych paczek źródłowych jądra (kernel source tarballs).
- Format
.xzidentyfikuje się stałym 6-bajtowym nagłówkiem magicznym (magic bytes)FD 37 7A 58 5A 00i domyślnie weryfikuje integralność za pomocą sum kontrolnych CRC64 dla każdego bloku i strumienia (obsługiwane są również CRC32 i SHA-256). - Na początku 2024 roku wykryto, że wersje XZ Utils 5.6.0 i 5.6.1 zawierały celowo wstrzyknięty backdoor (CVE-2024-3094) w bibliotece
liblzma. Specyfikacja formatu pliku.xzpozostaje nienaruszona; naruszone zostały jedynie te konkretne paczki kompilacji.
Bezpieczeństwo
RYZYKO: LOWFormat .xz nie zawiera kodu wykonywalnego i nie może zostać „uruchomiony”; ryzyko wynika wyłącznie z zawartości (wypakuj przed zaufaniem). Należy zwrócić uwagę na incydent w łańcuchu dostaw z 2024 r. (CVE-2024-3094): backdoor został wstawiony do kompilacji liblzma w xz 5.6.0/5.6.1 dostarczanej w niektórych kanałach testowych dystrybucji - dotyczy to plików binarnych narzędzi/bibliotek, a nie otrzymywanych plików .xz. Uważaj na fałszywe strony pobierania „xz opener”, które dołączają oprogramowanie reklamowe; korzystaj z 7-Zip/PeaZip z ich oficjalnych stron.
Szczegóły formatu
w pigułceProgramy otwierające pliki XZ
tar -xf file.tar.xz (macOS bsdtar obsługuje xz) lub zainstaluj xz przez Homebrew. xz -d file.xz aby zdekompresować lub tar -xf file.tar.xz dla archiwów tar. Preinstalowany w większości dystrybucji. Szczegóły techniczne
specyfikacja| Algorytm kompresji | LZMA2 (ewolucja LZMA); opcjonalny łańcuch filtrów z filtrami delta i BCJ (branch/call/jump) |
| Struktura kontenera | Nagłówek strumienia → jeden lub więcej skompresowanych bloków → indeks bloków → stopka strumienia |
| Nagłówek magiczny strumienia | FD 37 7A 58 5A 00 - stałe 6 bajtów na offset 0 |
| Stopka magiczna strumienia | 59 5A („YZ”) - zawsze ostatnie 2 bajty każdego strumienia .xz |
| Kolejność bajtów | Little-endian |
| Typ MIME | application/x-xz |
| Sprawdzanie integralności | Sumy kontrolne dla każdego bloku i strumienia; domyślnie CRC64; obsługiwane również CRC32 i SHA-256 |
| Szyfrowanie | Brak - brak wbudowanego szyfrowania; w razie potrzeby zaszyfruj dane przed kompresją |
| Przechowywanie plików | Tylko pojedynczy skompresowany strumień; brak nazw plików i drzewa katalogów (połącz z .tar dla archiwów wieloplikowych) |
| Kodowanie | Binarne |
| Typowy rozmiar po kompresji | Od kilkunastu KB do kilku GB; paczki źródłowe jądra Linux mają zazwyczaj 50-200 MB |
| Współczynnik kompresji vs alternatywy | Zazwyczaj o ok. 30% mniejszy niż gzip i ok. 15% mniejszy niż bzip2 dla kodu źródłowego |
| Uwaga dotycząca bezpieczeństwa | CVE-2024-3094: Paczki XZ Utils 5.6.0/5.6.1 zawierały backdoor w liblzma; specyfikacja formatu pliku .xz nie jest dotknięta |
| Obsługa platform | Linux, BSD, macOS, Windows (przez XZ Utils, 7-Zip, PeaZip, NanaZip, The Unarchiver) |
| Wydano | 2009 (XZ Utils 4.999.x / 5.0; format finalized 2009) |
| Najnowsza wersja | XZ file format 1.0.4 (2009); XZ Utils 5.6.x toolchain |
| Otwarty standard | Tak · bezpłatny (royalty-free) |
| Specyfikacja | tukaani.org |
Konwersje XZ
Pytania i odpowiedzi społeczności
pytania użytkownikówBrak pytań - bądź pierwszą osobą, która zapyta o pliki XZ.
Najczęściej zadawane pytania
Jak otworzyć plik .xz w systemie Windows?
Jaka jest różnica między .xz a .tar.xz?
Czy .xz jest lepszy niż .gz lub .zip?
Czy format pliku xz jest dotknięty backdoorem xz (CVE-2024-3094)?
Jak zdekompresować .xz w systemie Linux?
xz -d file.xz, aby uzyskać oryginalny plik, lub tar -xf file.tar.xz, aby rozpakować archiwum tar. xz jest preinstalowany w większości dystrybucji.