Co to jest format pliku BZ2?
.bz2 to format plików skompresowanych generowany przez narzędzie bzip2. W przeciwieństwie do pełnego archiwum, kompresuje on pojedynczy plik lub strumień danych - gdy zachodzi potrzeba spakowania wielu plików, są one najpierw łączone w archiwum TAR, a następnie wspólnie kompresowane, tworząc pakiety .tar.bz2 (lub .tbz2) spotykane w dystrybucjach Linux i projektach open-source.
Jakie dane zawiera plik .bz2?
Pliki .bz2 przechowują dane skompresowane przy użyciu potoku algorytmów bezstratnych:
- Transformata Burrowsa-Wheelera (BWT) - reorganizuje bloki danych w celu zgrupowania powtarzających się sekwencji bajtów
- Transformata Move-to-front - wykorzystuje lokalność danych wytworzoną przez BWT
- Kodowanie długości serii (RLE) - skraca długie ciągi identycznych bajtów
- Kodowanie Huffmana - koduje entropijnie wynikowy strumień symboli
Rozmiary bloków wahają się od 100 KB do 900 KB i są wybierane w momencie kompresji; domyślne polecenie bzip2 używa bloków 900 KB (sygnatura pliku BZh9). Każdy blok posiada własną sumę kontrolną CRC-32, a druga suma CRC na poziomie strumienia obejmuje cały plik. Narzędzie bzip2recover pozwala odzyskać nienaruszone bloki z częściowo uszkodzonego archiwum.
.bz2 w systemach uniksopodobnych
Pliki .bz2 są zazwyczaj spotykane w systemach Linux, macOS i innych środowiskach uniksopodobnych, gdzie bzip2 i bunzip2 są standardowymi narzędziami wiersza poleceń. Format ten jest powszechnie używany do dystrybucji kodów źródłowych oprogramowania na tych platformach.
Obsługa w systemie Windows
W systemie Windows pliki .bz2 są obsługiwane przez narzędzia takie jak 7-Zip, WinRAR i PeaZip. Samo narzędzie bzip2 jest również dostępne jako otwarta kompilacja dla Windows. W porównaniu do plików .gz, .bz2 zazwyczaj osiąga lepszy stopień kompresji tekstu i kodu źródłowego, kosztem wolniejszej kompresji i dekompresji. Nowsze formaty, takie jak .xz, często przewyższają bzip2 zarówno pod względem stopnia kompresji, jak i szybkości, jednak pakiety .tar.bz2 pozostają szeroko stosowane w dystrybucji oprogramowania open-source. Pliki .bz2 mogą również służyć do tworzenia kopii zapasowych różnych danych, takich jak kolekcje zdjęć czy biblioteki dokumentów.
Bezpieczeństwo
RYZYKO: LOWFormat bzip2 jest otwarty i bezpieczny, a plik .bz2 to tylko skompresowane dane, które nie mogą same się uruchomić. Obowiązują zwykłe środki ostrożności dotyczące archiwów: plik .bz2/.tar.bz2 z niezaufanego źródła może zawierać pliki wykonywalne lub skrypty ujawnione dopiero po wypakowaniu, więc należy przeskanować zawartość przed uruchomieniem czegokolwiek. Dwie uwagi techniczne: malutki plik .bz2 może rozrosnąć się do ogromnych rozmiarów („bomba dekompresyjna”) - należy uważać na podejrzanie małe archiwa; a plik .tar.bz2 może zawierać ścieżki „../” (ataki path-traversal / „tar slip”), więc niezaufane tarballe należy wypakowywać do pustego folderu. Nowoczesne programy wypakowujące chronią przed oboma tymi zagrożeniami.
Szczegóły formatu
w pigułceProgramy otwierające pliki BZ2
Szczegóły techniczne
specyfikacja| Typ MIME | application/x-bzip2 (również application/x-bzip, application/bzip2) |
| Magiczne bajty | 42 5A 68 („BZh”) na offsecie 0, po których następuje cyfra ASCII „1”-„9” kodująca rozmiar bloku (np. BZh9 = bloki 900 KB) |
| Kodowanie | Binarne - upakowany bitowo strumień skompresowany |
| Potok kompresji | Transformata Burrowsa-Wheelera → move-to-front → kodowanie długości serii → kodowanie Huffmana (wszystkie etapy bezstratne) |
| Rozmiar bloku | Wybieralny od 100 KB (poziom 1) do 900 KB (poziom 9); domyślnie 900 KB; większe bloki poprawiają stopień kompresji, ale wymagają więcej pamięci RAM |
| Użycie pamięci | Kompresja: około 10-krotność rozmiaru bloku; dekompresja: ~3,5 MB niezależnie od wybranego rozmiaru bloku |
| Sprawdzanie integralności | Suma kontrolna CRC-32 na każdy skompresowany blok plus połączona suma CRC na poziomie strumienia weryfikowana przy dekompresji |
| Znacznik bloku | Każdy blok BWT zaczyna się od 48-bitowej stałej pi 0x314159265359, używanej przez bzip2recover do lokalizowania bloków w uszkodzonych plikach |
| Model kontenera | Samodzielny strumień skompresowany bez wewnętrznej tabeli nazw plików ani struktury katalogów; wiele plików wymaga opakowania TAR |
| Kompresja równoległa | Standardowy bzip2 jest jednowątkowy; pbzip2 i lbzip2 paralelizują kompresję na poziomie bloków w systemach wielordzeniowych |
| Odzyskiwanie bloków | bzip2recover skanuje surowe bajty w poszukiwaniu 48-bitowych znaczników bloków i zapisuje każdy nienaruszony blok do oddzielnego, możliwego do odzyskania pliku .bz2 |
| Stopień kompresji vs. gzip | Zazwyczaj o 10-15% mniejszy niż .gz w przypadku tekstu i kodu źródłowego; dekompresja jest 2-6 razy wolniejsza |
| Powiązane platformy | Linux, macOS, Unix/BSD natywnie; Windows przez 7-Zip, WinRAR, PeaZip; CLI bzip2 dostępny dla wszystkich głównych systemów |
| Typowe zastosowania | Tarballe ze źródłami Linux/Unix (.tar.bz2), pakiety dystrybucyjne oprogramowania, zrzuty baz danych i skompresowane archiwa logów |
| Wydano | 1996 (bzip 0.21); bzip2 1.0 released 2000 |
| Najnowsza wersja | bzip2 1.0.8 (2019); format itself unchanged |
| Otwarty standard | Tak · bezpłatny (royalty-free) |
| Specyfikacja | sourceware.org |
Konwersje BZ2
Pytania i odpowiedzi społeczności
pytania użytkownikówBrak pytań - bądź pierwszą osobą, która zapyta o pliki BZ2.