ארכיון GZIP (.gz)
IETF תקןGzip (GZ) הוא י הדחיסה ותבנית הקבצים הסטנדרטית של GNU, המופץ באופן במערכות הפעלה דמויות Unix ובשרתי אינטרנט HTTP לצורך דחיסה מהירה של קבצים ונכסי אינטרנט.
המר TAR ל-GZ
ממיר חינמי מ-TAR ל-GZ פועל בדפדפן. המר קבצים באופן מיידי במכשיר שלך.
בדיקה ומטא-נתונים
מערכות הפעלה ומנתחי קבצים מזהים קבצי GZ על ידי בדיקת רצף הבייטים הבינארי הראשוני:
חתימת כותרת ברמת הבייט (Magic Bytes)
מערכות הפעלה ומנתחי קבצים מזהים קבצי GZ על ידי בדיקת רצף הבייטים הבינארי הראשוני:
חתימת HEX (היסט 0):
1F 8B 08ייצוג ASCII: ..\x08
תקינה: IETF RFC 1952
מפרט טכני
| מבנה המכולה | כותרת בת 10 בתים (ערך קסם 0x1F 0x8B, שיטה 8, דגלים, mtime, OS) ואחריה זרם DEFLATE וכותרת תחתונה בת 8 בתים |
| דחיסה | אלגוריתם DEFLATE (חלון הזזה של LZ77 + קידוד Huffman) |
| סדר בתים (Endianness) | מספרים שלמים בכותרת ובכותרת התחתונה בסדר מהפחות משמעותי ליותר משמעותי |
| מרחבי צבע | לא רלוונטי (מכולת ארכיון) |
| ערוצים ומבנה | זרם בתים דחוס של קובץ יחיד |
| ממדים מרביים | הגודל הלא דחוס מתועד לפי מודולו 2^32 (תומך בזרמים באורך בלתי מוגבל) |
| שקיפות | שימור נתונים ללא אובדן, בדיוק של 100% ברמת הסיביות |
| הזרמה ופרוגרסיביות | הזרמת הפעלה רציפה במעבר יחיד דרך צינורות ורשתות HTTP |
מטריצת השוואה טכנית: GZ מול מתחרים
| תכונה טכנית | GZ (נוכחי) | BZ2 | BROTLI | ZSTD |
|---|---|---|---|---|
| מהירות פריסה | מהירה (~300 מגה-בייט/שנייה) | איטית (~40 מגה-בייט/שנייה) | מהירה מאוד (~400 מגה-בייט/שנייה) | מהירה במיוחד (>1.5 ג'יגה-בייט/שנייה) |
| שימוש נרחב באינטרנט | 100% מכלל הדפדפנים והשרתים | אפס תמיכה בדפדפני אינטרנט | נתמך מעל HTTPS בכל הדפדפנים | תמיכה גדלה והולכת בדפדפנים ובשרתים |
| אריזת ריבוי קבצים | דורש מעטפת TAR (.tar.gz) | דורש מעטפת TAR (.tar.bz2) | זרם גולמי או מעטפת מותאמת אישית | דורש מעטפת TAR (.tar.zst) |
| אימות סכום ביקורת | CRC של 32-ביט (CRC-32) | CRC של 32-ביט לכל בלוק | ללא מובנה בזרם | xxHash של 64-ביט |
מצבי השחתה נפוצים ומדריך שחזור הקסדצימלי (Hex)
שגיאת חילוץ: 'gzip: stdin: unexpected end of file'.
גורם שורש: הפסקה מוקדמת של העברת הקובץ שקטעה את זרם ה-DEFLATE או את שדה ה-CRC32 בן 8 הבתים שבסוף הקובץ.
שחזור: חלץ תוכן חלקי באמצעות 'gzip -d --keep broken.gz' או כלי החילוץ של File2File.app Gzip.
ניתוח אבטחה ווקטורי תקיפה נגד מנתחי פורמטים (parsers)
מנתחי Gzip מעבדים כותרות וזרמי סיביות DEFLATE הנשלטים על ידי המשתמש, ויש להגן עליהם מפני פצצות דחיסה.
ווקטורי תקיפה ידועים
- פצצת דחיסה (פצצת zip) המרחיבה מגה-בייט של נתוני Gzip למאות ג'יגה-בייט של נפח אחסון בדיסק.
- גלישת חוצץ (Buffer overflow) בעת קריאת מחרוזת שם הקובץ המקורי האופציונלי מהכותרת.
- גלישת מספר שלם (Integer overflow) במהלך השוואת בדיקת ה-CRC של 32-ביט.
שיטות מומלצות להגנה: אכוף מכסות שחרור דחיסה קפדניות ומגבלות תקרה של זיכרון בשירותי עיבוד אוטומטיים.
היסטוריה ואבני דרך
יתרונות מרכזיים
- מדד הייחוס האוניברסלי לדחיסת HTTP באינטרנט ('Content-Encoding: gzip') הנתמך על ידי 100% מדפדפני האינטרנט.
- שומר על חותמות הזמן המקוריות של שינוי הקובץ ושמות הקבצים המקוריים האופציונליים בתוך כותרת ה-10 בתים.
- טביעת רגל מעבד (CPU) קלה במהלך שחרור הדחיסה, הפועלת באופן חלק בהתקנים ניידים ובנתבים בעלי הספק נמוך.
מגבלות טכניות וחסרונות
- דחיסת קובץ בודד בלבד: אינו יכול לדחוס מספר קבצים או תיקיות מבלי לארוז אותם תחילה בתוך מעטפת TAR.
- יחס הדחיסה נמוך יותר מאשר אלגוריתמים מודרניים כמו Brotli ו-Zstandard על טקסט אינטרנט מודרני.
- שדה גודל הקובץ הלא דחוס בסיומת הקובץ הוא 32-ביט מודולו 2^32, הגורם לבאגים בתצוגת גלישה בקבצים הגדולים מ-4 GB.
עובדות טכניות מעניינות
- בתי הקסם (magic bytes) 0x1F 0x8B נבחרו משום ש-0x1F היה היסטורית הבייט הראשון של קבצי 'compress' ב-Unix, בעוד ש-0x8B זיהה את Gzip.
- מעל 80% מכלל אתרי האינטרנט ברשת משתמשים בדחיסת Gzip כדי לספק דפי אינטרנט לדפדפנים.
- ז'אן-לופ גאילי כתב את קוד הדחיסה בעוד שמארק אדלר כתב את קוד הפריסה (inflate); שניהם קיבלו את פרס ACM למערכות תוכנה.
שאלות טכניות נפוצות
מדוע איני יכול לדחוס תיקייה באמצעות Gzip?
Gzip תוכנן לדחוס זרם בייטים בודד. כדי לדחוס תיקייה, מערכות יוניקס אורזות תחילה את התיקייה לקובץ .tar יחיד, ואז דוחסות אותו באמצעות Gzip כדי ליצור קובץ .tar.gz.
מה ההבדל בין .gz ל-.zip?
.zip הוא פורמט ארכיון המארז מספר קבצים יחד עם אינדקס ספרייה. .gz דוחס קובץ יחיד בלבד ומצורף בדרך כלל ל-tar במערכות יוניקס.
כיצד אוכל לפענח קובץ .gz ב-Windows או ב-Mac?
השתמש ב-File2File.app כדי לפענח באופן מיידי קבצי .gz ישירות בדפדפן האינטרנט שלך ללא התקנת תוכנה כלשהי.