stringtranslate.com

Кабинет (формат файла)

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.

Смотрите также

Ссылки

  1. ^ Формат Microsoft Cabinet
  2. ^ "Microsoft Cabinet Software Development Kit". Поддержка . Microsoft . Получено 27 марта 2013 г. .
  3. ^ "lcab". Freecode . Dice . Получено 27 марта 2013 г. .
  4. ^ "cabextract".
  5. ^ "[Недокументированное] [Ошибки] Expand.exe (подробнее об этом) (страница 1) / Windows CMD Shell / Форум SS64". ss64.org . Получено 21 апреля 2018 г. .
  6. ^ "[MS-MCI]: Структура данных сжатия и распаковки Microsoft ZIP (MSZIP)". docs.microsoft.com . 13 октября 2020 г.
  7. ^ Salomon, D. (David) (2007). Сжатие данных: полный справочник. Library Genesis. Лондон: Springer. стр. 187. ISBN 978-1-84628-602-5.
  8. ^ "Формат квантового сжатия". Мэтью Руссотто . Архивировано из оригинала 11 мая 2021 г. Получено 29 марта 2022 г.
  9. ^ "Формат файла CABINET – Документация открытых спецификаций" (PDF) . Корпорация Microsoft. 4 марта 2011 г. Архивировано (PDF) из оригинала 18 ноября 2016 г. Получено 15 февраля 2023 г.
  10. ^ развернуть – Windows CMD – SS64.com
  11. ^ Как извлечь CAB-файл с помощью инструментов командной строки в Windows 10
  12. ^ Extractc32 – Распаковка файлов – Windows CMD – SS64.com
  13. ^ Как извлечь CAB-файлы в Linux [ постоянная мертвая ссылка ]
  14. ^ Проект gcab в GNOME
  15. ^ «Очистка журналов обслуживания на основе компонентов». Microsoft TechNet . 7 июля 2017 г.
  16. ^ ab Leonhard, Woody (25 августа 2016 г.). «Ошибка сжатия файла журнала Windows 7 может заполнить ваш жесткий диск». Computerworld . Архивировано из оригинала 8 января 2019 г. . Получено 8 января 2019 г. .
  17. ^ "LVFS: Поставщики оборудования". Linux Vendor Firmware Service Project . Получено 3 мая 2022 г.
  18. ^ "twogood/unshield". GitHub . Получено 21 апреля 2018 г. .
  19. ^ "kyz/libmspack: doc/magic". GitHub . 2 января 2022 г.
  20. ^ "Формат файла CAB для установки Windows CE (.CAB)". cabextract .

Внешние ссылки