Кабинет (или CAB ) — это формат архивного файла для Microsoft Windows , который поддерживает сжатие данных без потерь и встроенные цифровые сертификаты , используемые для поддержания целостности архива. Кабинетные файлы имеют .cab
расширения имени файла и распознаются по первым четырем байтам (также называемым магическим числом ) MSCF . Кабинетные файлы первоначально были известны как файлы Diamond.
CAB-архив может содержать до 65 535 папок (в отличие от стандартных каталогов операционной системы), каждая из которых может содержать до 65 535 файлов, максимум 4 294 836 225. Внутри каждая папка рассматривается как один сжатый блок , что обеспечивает более эффективное сжатие, чем сжатие каждого файла по отдельности.
Каждая запись в папке должна быть файлом. [1] Из-за такой структуры невозможно хранить пустые папки в CAB-архивах.
Ниже показан пример структуры CAB-файла, демонстрирующий взаимосвязь между папками и файлами:
То, как следует обрабатывать пути, не указано в формате CAB-файла, оставляя это на усмотрение программной реализации:
Формат файла CAB может использовать следующие алгоритмы сжатия :
В CAB-архиве могут быть зарезервированы пустые места в архиве, а также для каждого файла в архиве для некоторых специфических приложений, таких как цифровые подписи или произвольные данные.
Microsoft Windows поддерживает создание файлов CAB-архива с помощью утилиты makecab
командной строки . Он поддерживает извлечение содержимого файлов CAB-архива с помощью проводника , API настройки и команд командной строки expand.exe
, [10] extract.exe
и extrac32.exe
. [11] [12]
Другое известное программное обеспечение с поддержкой архивов CAB включает WinZip , WinRAR или 7-Zip . Вышеупомянутый инструмент cabextract
является обычным инструментом для систем Linux [13] , но он способен только извлекать архивы. Однако этот gcab
инструмент может как извлекать, так и создавать CAB-архивы. [14] Полный список см. в разделе Сравнение форматов архивов файловых архиваторов .
Формат CAB используется в различных технологиях установки Microsoft : к ним относятся установщик Windows , API настройки , установщик устройств, Theme Pack и AdvPack (используется Internet Explorer для установки компонентов ActiveX ). Файлы CAB также часто связаны с самораспаковывающимися программами, такими как IExpress , где исполняемая программа извлекает связанный файл CAB. CAB-файлы также иногда встраиваются в другие файлы. Например, файлы MSI и MSU обычно включают один или несколько встроенных CAB-файлов.
Windows использует формат CAB для архивирования журнала компонентного обслуживания (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 использует вариант формата Microsoft CAB с магическим ключом MSCE\0\0\0 . [19] Обычно сжатие НЕТ, но также можно встретить MSZIP. [20]
Microsoft Publisher имеет функцию «Pack and Go», которая объединяет документ издателя вместе со всеми внешними ссылками в CAB-файл с расширением .PUZ
. Эти файлы предназначены для активации с помощью сопутствующего файла .EXE, который распространяется вместе с файлом .PUZ
. Эти файлы можно открыть с помощью любой программы извлечения CAB-файлов.