ארכיון BZIP2 (.bz2)

Bzip2 תקן

Bzip2 (BZ2) הוא כלי דחיסה ופורמט קבצים קלאסי של יוניקס ללא פטנטים, שנוצר על ידי ג'וליאן סיוורד (Julian Seward), ומנצל את התמרת בורווס-ווילר (Burrows-Wheeler) כדי להשיג דחיסה הדוקה משמעותית בהשוואה ל-Gzip הקלאסי.

בדיקה ומטא-דאטה

מערכות הפעלה ומנתחי קבצים מזהים קבצי BZ2 על ידי בדיקת רצף הבייטים הבינארי הראשוני:

בחר או גרור קבצים לכאן

המרה פרטית ב-100% בתוך הדפדפן - הקבצים לעולם אינם עוזבים את המכשיר שלך

או הדבק Ctrl+V
הבטחת פרטיות ללא העברה ברשת: 0 בייט הועלו לשרתים חיצוניים. כל העיבוד מתבצע באופן מקומי בארגז החול של הדפדפן שלך.

חתימת כותרת ברמת הבייט (Magic Bytes)

מערכות הפעלה ומנתחי קבצים מזהים קבצי BZ2 על ידי בדיקת רצף הבייטים הבינארי הראשוני:

חתימת HEX (היסט 0):

42 5A 68

ייצוג ASCII: BZh

תקינה: Bzip2 Open Source Standard

מפרט טכני

ארכיטקטורת מעטפתStream header ('BZh' + block size digit 1-9) followed by compressed data blocks and 32-bit CRC
דחיסהBurrows-Wheeler Transform (BWT), Move-to-Front (MTF) transform, and Huffman coding
סדר בתים (Endianness)Big-Endian bitstream framing
מרחבי צבעN/A (Byte Compression Stream)
ערוצים ומבנהSingle-file compressed byte stream
ממדים מרבייםUnbounded stream length (supports arbitrary file sizes)
שקיפות100% bit-exact lossless data preservation
הזרמה ופרוגרסיביותSequential block-by-block streaming with independent per-block CRC checksums

מטריצת השוואה טכנית: BZ2 מול מתחרים

תכונה טכניתBZ2 (נוכחי)GZXZZSTD
אלגוריתם ליבההתמרת בורווס-ווילר (BWT)Deflate (LZ77 + האפמן)LZMA / LZMA2אנטרופיית מצבים סופיים + LZ77
דחיסה לעומת Gzipקטן ב-10% - 20% מ-Gzipתקן בסיסקטן ב-20% - 30% מ-Gzipקטן ב-10% - 20% מ-Gzip
מהירות פריסהאיטי (~30-50 מגה-בייט לשנייה)מהיר (~300 מגה-בייט לשנייה)בינוני (~100 מגה-בייט לשנייה)מהיר במיוחד (>1.5 גיגה-בייט לשנייה)
בדיקות שלום של בלוקיםCRC של 32 סיביות לכל בלוקCRC32 של זרם יחידCRC64 של זרםxxHash64 של זרם

מצבי שיחשות נפוצים ומדריך שחזור הקסדצימלי (Hex)

החילוץ מתבטל עם השגיאה 'bzip2: Data integrity error when decompressing'.

גורם שורש: סיביות הפוכות בבלוק דחוס הגורמות למטריצת התמורה ההפוכה של BWT להיכשל באימות CRC32.

התאוששות: השתמש בכלי 'bzip2recover' כדי להציל בלוקים שלא ניזוקו המקיפים את המגזר הפגום.

ניתוח אבטחה ווקטורי התקפה על מנתחים (Parsers)

יישומי Bzip2 כוללים מיון זרמי סיביות מורכב וניתוח טבלאות האפמן שחוו בעבר פגמי גלישת מספרים שלמים.

ווקטורי תקיפה ידועים

  • גלישת מספרים שלמים בהקצאת מערך מיון BWT (למשל CVE-2016-3189).
  • כתיבה מחוץ לגבולות במהלך הרכבת טבלת פענוח האפמן.
  • מניעת שירות באמצעות דפוסי קלט פתולוגיים הגורמים לזמני מיון BWT ריבועיים במקרה הגרוע ביותר.

השיטות המומלצות להגנה:

היסטוריה ואבני דרך

2019פדריקו מֵנָה קווינטרו (Federico Mena Quintero) מודרניזציה של תחזוקת בסיס הקוד של bzip2 במסגרת bzip3 ויוזמות קוד פתוח מודרניות.
2000שוחררה גרסה 1.0, המייצבת את פורמט bzip2 בכל הפצות לינוקס ומנהלי החבילות.
1996ג'וליאן סיוורד משחרר את bzip2 0.15 כדי להחליף את פורמט bzip המוקדם שהיו לו בעיות פטנט.

יתרונות מרכזיים

  • עולה בעקביות על Gzip הקלאסי ב-10% עד 20% בקובצי tar של קוד מקור, יומני מערכת ומסדי נתונים טקסטואליים.
  • ארכיטקטורת בלוקים עצמאית (100k עד 900k) כוללת בדיקות שלום מסוג CRC של 32 סיביות לכל בלוק לבדיקת תקינות איתנה.
  • זמינות מקומית אוניברסלית בכל הפצות שורת הפקודה של Linux, BSD ו-macOS.

מגבלות טכניות וחסרונות

  • מהירויות דחיסה ופריסה איטיות משמעותית בהשוואה לאלגוריתמים מודרניים כמו Zstandard.
  • דחיסת קובץ יחיד בלבד: דורש שיוך ל-TAR (‎.tar.bz2) כדי לארוז קבצים או ספריות מרובים.
  • שימוש גבוה יותר במעבד במהלך הפריסה בהשוואה ל-Gzip או ל-Zstd.

עובדות טכניות מעניינות

  • בייטים קסמים 'BZh' מייצגים את 'Burrows-Wheeler Zip Huffman', ואחריהם ספרה ('1' עד '9') המציינת את גודל הבלוק במאות קילו-בטים (למשל 'BZh9' = 900 קילו-בייט).
  • קוד המקור של ליבת לינוקס הופץ אך ורק בפורמט ‎.tar.bz2 במשך למעלה מ-10 שנים לפני המעבר ל-‎.xz.
  • התמרת בורווס-ווילר אינה דוחסת נתונים ישירות; היא מתמירה את סדר התווים כך שאותיות זהות מתקבצות יחד, מה שהופך אותן לדחיסות בקלות על ידי קידוד האפמן.

שאלות טכניות נפוצות

מה ההבדל בין .gz ל-.bz2?

.bz2 משתמש בהמרת Burrows-Wheeler כדי להשיג גדלי קבצים קטנים יותר מאשר .gz, אך לוקח לו יותר זמן לדחוס ולפענח.

מדוע ל-bzip2 יש פקודת 'bzip2recover'?

מכיוון ש-bzip2 דוחס נתונים בבלוקים עצמאיים של 900 קילו-בייט, שלכל אחד מהם יש קוד CRC משלו, bzip2recover יכול לחלץ בלוקים שלא נפגעו גם אם חלק מהקובץ מושחת.

כיצד אוכל לחלץ קובץ .tar.bz2?

ניתן לפרוס קבצי .tar.bz2 ישירות בדפדפן האינטרנט שלך באמצעות File2File.app מבלי להריץ כלי שורת פקודה.