Cabinet (или CAB ) — это формат архивных файлов для Microsoft Windows , который поддерживает сжатие данных без потерь и встроенные цифровые сертификаты, используемые для поддержания целостности архива. Файлы Cabinet имеют .cab
расширения имен файлов и распознаются по первым четырем байтам (также называемым их магическим числом ) MSCF . Изначально файлы Cabinet назывались Diamond-файлами.
Архив CAB может содержать до 65 535 папок (в отличие от стандартных каталогов операционной системы), каждая из которых может содержать до 65 535 файлов, что составляет максимум 4 294 836 225. Внутри каждая папка рассматривается как один сжатый блок , что обеспечивает более эффективное сжатие, чем индивидуальное сжатие каждого файла.
Каждая запись в папке должна быть файлом. [1] Из-за этой структуры невозможно хранить пустые папки в архивах CAB.
Ниже показан пример структуры CAB-файла, демонстрирующий связь между папками и файлами:
В формате CAB-файла не указано, как следует обрабатывать пути, и это остается на усмотрение программной реализации:
Формат файла CAB может использовать следующие алгоритмы сжатия :
Архив CAB может резервировать пустые места в архиве, а также для каждого файла в архиве для некоторых специфических для приложений целей, таких как цифровые подписи или произвольные данные.
Microsoft Windows поддерживает создание архивных файлов CAB с помощью утилиты makecab
командной строки . Поддерживает извлечение содержимого архивных файлов CAB с помощью File Explorer , Setup API и с помощью команд командной строки expand.exe
, [10] extract.exe
и extrac32.exe
. [11] [12]
Другие известные программы с поддержкой архивов CAB включают WinZip , WinRAR или 7-Zip . Вышеупомянутый cabextract
является распространенным инструментом для систем Linux, [13] но он способен только извлекать архивы. gcab
Однако этот инструмент может как извлекать, так и создавать архивы CAB. [14] Полный список см. в разделе Сравнение архиваторов файлов § форматы архивов .
Формат CAB используется в различных технологиях установки Microsoft : к ним относятся Windows Installer , Windows Setup (от Windows 95 до Windows Server 2003 ), Setup API , Device Installer, Theme Pack и AdvPack (используется Internet Explorer для установки компонентов ActiveX ). Файлы CAB также часто связаны с самораспаковывающимися программами, такими как IExpress , где исполняемая программа извлекает связанный файл CAB. Файлы CAB также иногда встраиваются в другие файлы. Например, файлы MSI и MSU обычно включают один или несколько встроенных файлов CAB.
Windows использует формат CAB для архивации своего журнала Component-Based Servicing (CBS), который хранится в папке C:\Windows\Logs\CBS . Ошибка в процессе сжатия может привести к неконтролируемому созданию бесполезных файлов журнала как в этой папке, так и в C:\Windows\Temp , что может занять дисковое пространство до полного заполнения жесткого диска. [15] [16] Удаление файлов без соблюдения определенной процедуры [16] может привести к тому, что удаленные файлы будут восстанавливаться с повышенной скоростью.
В системах Linux CAB-архивы используются fwupd для распространения обновлений прошивки от поставщиков оборудования [17] , которые можно записать в энергонезависимую память .
Расширение .cab
имени файла также используется другими программами-установщиками (например, InstallShield ) для их собственных форматов архивирования. InstallShield использует zlib для сжатия (см. Deflate ), но их заголовки не такие, как у файлов Microsoft CAB, поэтому они несовместимы и не могут быть изменены или отредактированы программами, созданными для стандартного формата CAB. Специализированные сторонние утилиты, такие как Unshield, могут извлекать этот конкретный фирменный формат. [18] Этот формат имеет другое магическое число ISC( . [19]
Программное обеспечение Windows CE распространяется в виде CAB-файлов, где первый файл внутри, заканчивающийся расширением «.000», описывает, как он устанавливается. [20]
Файлы Microsoft Installer .msi
иногда содержат CAB-файлы, но сами находятся в формате Compound File Binary Format , который необходимо сначала декодировать. lessmsi
Для распаковки этих файлов можно использовать программное обеспечение, например.
Microsoft Publisher имеет функцию "Pack and Go", которая объединяет документ издателя вместе со всеми внешними ссылками в файл CAB с .PUZ
расширением. Эти файлы должны активироваться с помощью сопутствующего файла .EXE, который распространяется вместе с .PUZ
файлом. Эти файлы можно открыть с помощью любой программы извлечения файлов CAB.