.GZ вариант №
Файл GZ представляет собой сжатый архив, созданный с использованием стандартного алгоритма сжатия gzip (GNU zip). Он может содержать несколько сжатых файлов, каталогов и файлов-заглушек. Этот формат изначально был разработан для замены форматов сжатия в системах UNIX. и по-прежнему является одним из наиболее распространенных типов архивов в системах Linux. Такие приложения, как WinZip, могут открывать файлы GZ для просмотра их содержимого как в Windows, так и в MacOS.
Формат файла GZ — дополнительная информация
Gzip использует алгоритм DEFLATE для сжатия архива и отличается от формата архива ZIP применением алгоритма сжатия ко всему архиву. а не отдельные файлы. Спецификации формата файла GZIP версии 4.3, опубликованные Инженерной группой Интернета (IETF), содержат подробную информацию о формате файла. Формат файла состоит из:
- Заголовок файла
- Дополнительные заголовки
- Сжатые данные
- Нижний колонтитул файла
Заголовок файла GZ
Заголовок файла GZ состоит из 10 байтов следующим образом:
| Смещение | Размер | Значение | Описание |
|---|---|---|---|
| 0 | 2 | 0x1f 0x8b | Магическое число, определяющее тип файла |
| 2 | 1 | Метод сжатия * 0-7 (зарезервировано) * 8 (дефляция) | |
| 3 | 1 | Флаги файлов | |
| 4 | 4 | 32-битная метка времени | |
| 8 | 1 | Флаги сжатия | |
| 9 | 1 | Идентификатор операционной системы |
Флаги файлов
| Значение | Идентификатор | Описание |
|---|---|---|
| 0x01 | FTEXT | Если установлено, несжатые данные должны обрабатываться как текст, а не как двоичные данные. Этот флаг указывает на преобразование конца строки для кросс-платформенных текстовых файлов, но не обеспечивает его принудительное выполнение. |
| 0x02 | FHCRC | Файл содержит контрольную сумму заголовка (CRC-16) |
| 0x04 | FEXTRA | Файл содержит дополнительные поля |
| 0x08 | FNAME | Файл содержит исходную строку имени файла |
| 0x10 | FCOMMENT | Файл содержит комментарий |
| 0x20 | Зарезервировано | |
| 0x40 | Зарезервировано | |
| 0x80 | Зарезервировано |
Операционная система
| Значение | Описание |
|---|---|
| 0 | Файловая система FAT (MS-DOS, OS/2, NT/Win32) |
| 1 | Амига |
| 2 | VMS (или OpenVMS) |
| 3 | Юникс |
| 4 | ВМ/CMS |
| 5 | Условия использования Atari |
| 6 | Файловая система HPFS (OS/2, NT) |
| 7 | Макинтош |
| 8 | Z-система |
| 9 | КП/М |
| 10 | ТОПС-20 |
| 11 | Файловая система NTFS (NT) |
| 12 | QDOS |
| 13 | Желудь РИСКОС |
| 255 | неизвестно |
Дополнительные заголовки GZ
Необязательные дополнительные заголовки обозначаются флагами файла и включают такую информацию, как исходное имя файла, дополнительные поля, комментарии и контрольная сумма заголовка.
Сжатые данные
Этот раздел содержит сжатые данные с использованием алгоритма сжатия DEFLATE.
Нижний колонтитул файла GZ
Нижний колонтитул файла имеет размер 8 байт и содержит следующую информацию.
| Смещение | Размер | Описание |
|---|---|---|
| 0 | 4 | Контрольная сумма (CRC-32) |
| 4 | 4 | Значение размера несжатых данных в байтах |
Использованная литература
- gzip — Википедия
- RFC1952: Спецификация формата файла GZIP, подготовлено IETF.