Cabinet (o CAB ) es un formato de archivo comprimido para Microsoft Windows que admite compresión de datos sin pérdida y certificados digitales integrados para mantener la integridad del archivo. Los archivos Cabinet tienen .cabextensiones de nombre de archivo y se reconocen por sus primeros cuatro bytes (también llamados número mágico ) MSCF . Originalmente, los archivos Cabinet se conocían como archivos Diamond.
Diseño
Un archivo CAB puede contener hasta 65.535 carpetas (distintas de los directorios estándar del sistema operativo), cada una de las cuales puede contener hasta 65.535 archivos, para un máximo de 4.294.836.225. Internamente, cada carpeta se trata como un único bloque comprimido , lo que proporciona una compresión más eficiente que la compresión individual de cada archivo.
Cada entrada en una carpeta debe ser un archivo. [ 1 ] Debido a esta estructura, no es posible almacenar carpetas vacías en archivos CAB.
A continuación se muestra un ejemplo de la estructura de un archivo CAB, que ilustra la relación entre carpetas y archivos:
El formato de archivo CAB no especifica cómo deben manejarse las rutas, dejando esa responsabilidad a la implementación del software:
- Algunos programas solo añaden rutas de archivo a los nombres de archivo, como si todos los archivos de un archivo CAB estuvieran en una sola carpeta. IExpress funciona de esta manera, al igual que el Explorador de Windows, que puede abrir archivos CAB como si fueran carpetas.
- Algunos pueden almacenar las rutas y, al extraerlas, crear carpetas según sea necesario. CABARC.EXE y EXTRACT.EXE (herramientas del SDK de Microsoft Cabinet [ 2 ] ), así comolcab[ 3 ] yextracto de cabeza[ 4 ] (herramientas de código abiertode terceros) funcionan de esta manera.
- EXPAND.EXE , solo a partir de la versión 6 (que se incluye desde Windows Vista en adelante) puede extraer archivos a sus rutas. Las versiones anteriores no lo hacen. [ 5 ]
El formato de archivo CAB puede emplear los siguientes algoritmos de compresión :
- DEFLATE : inventado por Phil Katz , el autor del formato de archivo ZIP (específicamente, la encapsulación MSZIP) [ 6 ].
- Compresión cuántica: con licencia de David Stafford, [ 7 ] el autor del archivador cuántico (no disponible en todas las versiones de makecab.exe/diamond.exe) [ 8 ] [ 9 ]
- LZX : inventado por Jonathan Forbes y Tomi Poutanen, entregado a Microsoft cuando Forbes se unió a la compañía.
- NULO: almacenado
Un archivo CAB puede reservar espacios vacíos tanto en el archivo como para cada archivo que contiene, para usos específicos de la aplicación, como firmas digitales o datos arbitrarios.
Implementaciones
Microsoft Windows admite la creación de archivos de archivo CAB mediante la utilidad makecabde línea de comandos . Admite la extracción del contenido de un archivo de archivo CAB mediante el Explorador de archivos , la API de configuración y los comandosexpand.exe de línea de comandos [ 10 ]extract.exe y [ 11 ] [ 12 ]extrac32.exe .
Otros programas conocidos con soporte para archivos CAB incluyen WinZip , WinRAR o 7-Zip . El mencionado cabextractes una herramienta común para sistemas Linux, [ 13 ] pero solo es capaz de extraer archivos. gcabSin embargo, la herramienta puede extraer y crear archivos CAB. [ 14 ] Para obtener una lista completa, consulte Comparación de compresores de archivos § formatos de archivo .
Usos
Diversas tecnologías de instalación de Microsoft utilizan el formato CAB: entre ellas se incluyen Windows Installer , Windows Setup (desde Windows 95 hasta Windows Server 2003 ), Setup API , Device Installer , Theme Pack y AdvPack (utilizado por Internet Explorer para instalar componentes ActiveX ). Los archivos CAB también suelen estar asociados a programas autoextraíbles como IExpress, donde el programa ejecutable extrae el archivo CAB correspondiente. En ocasiones, los archivos CAB también se encuentran incrustados en otros archivos. Por ejemplo, los archivos MSI y MSU suelen incluir uno o más archivos CAB incrustados.
Windows utiliza el formato de gabinete para archivar su registro de Servicio Basado en Componentes (CBS), que se guarda en la carpeta C:\Windows\Logs\CBS . Un error en el proceso de compresión puede provocar la generación descontrolada de archivos de registro inútiles tanto en esa carpeta como en C:\Windows\Temp , lo que puede consumir espacio en disco hasta llenar completamente el disco duro. [ 15 ] [ 16 ] La eliminación de los archivos sin seguir un procedimiento específico [ 16 ] puede provocar que los archivos eliminados se regeneren a un ritmo mayor.
En los sistemas Linux , fwupd utiliza archivos CAB para distribuir actualizaciones de firmware de los proveedores de hardware [ 17 ] que se pueden flashear en memoria no volátil .
Formatos relacionados
La .cabextensión de nombre de archivo también la utilizan otros programas de instalación (por ejemplo, InstallShield ) para sus propios formatos de archivado propietarios. InstallShield utiliza zlib para la compresión (véase Deflate ), pero sus encabezados no son los mismos que los de los archivos CAB de Microsoft, por lo que son incompatibles y no se pueden manipular ni editar con los programas que están hechos para el formato de gabinete estándar. Las utilidades especializadas de terceros, como Unshield, pueden extraer este formato propietario específico. [ 18 ] Este formato tiene un número mágico diferente de ISC( . [ 19 ]
El software Windows CE y Windows Mobile se distribuye como archivos CAB, donde el primer archivo, que termina con la extensión ".000", detalla cómo se instala. [ 20 ]
.msiLos archivos de instalación de Microsoft a veces contienen archivos CAB, pero estos están en formato binario de archivo compuesto (CAB) , que debe decodificarse previamente. lessmsiSe puede utilizar software como [nombre del software] para descomprimir estos archivos.
Microsoft Publisher incluye la función "Empaquetar y listo", que agrupa un documento de Publisher, junto con todos los enlaces externos, en un archivo CAB con .PUZextensión .CAB. Estos archivos se activan con un archivo .EXE complementario que se distribuye junto con el .PUZdocumento. Se pueden abrir con cualquier programa de extracción de archivos CAB.
Véase también
Referencias
- ↑ Formato de gabinete de Microsoft
- ↑ "Kit de desarrollo de software para gabinetes de Microsoft" . Soporte . Microsoft . Consultado el 27 de marzo de 2013 .
- ↑ "lcab" . Freecode . Dice . Consultado el 27 de marzo de 2013 .
- ↑ "cabextract" .
- ↑ " [ No documentado ] [ Errores ] Expand.exe (más información) (Página 1) / Consola CMD de Windows / Foro SS64" . ss64.org . Consultado el 21 de abril de 2018 .
- ↑ " [ MS-MCI ] : Estructura de datos de compresión y descompresión de Microsoft ZIP (MSZIP)" . docs.microsoft.com . 13 de octubre de 2020.
- ↑ Salomon, D. (David) (2007). Compresión de datos : la referencia completa . Library Genesis. Londres : Springer. pág. 187. ISBN 978-1-84628-602-5.
{{cite book}}: CS1 mantenimiento: ubicación del editor ( enlace ) - ↑ "Formato de compresión cuántica" . Matthew Russotto . Archivado del original el 11 de mayo de 2021. Consultado el 29 de marzo de 2022 .
- ↑ "Formato de archivo de gabinete: documentación de especificaciones abiertas" (PDF) . Microsoft Corporation. 4 de marzo de 2011. Archivado (PDF) del original el 18 de noviembre de 2016. Consultado el 15 de febrero de 2023 .
- ↑ expandir – Windows CMD – SS64.com
- ↑ Cómo extraer un archivo CAB usando herramientas de línea de comandos en Windows 10
- ↑ Extrac32 – Descomprimir archivos – Windows CMD – SS64.com
- ↑ Cómo extraer archivos CAB en Linux
- ↑ Proyecto gcab en GNOME
- ↑ "Limpieza de registros de mantenimiento basados en componentes" . Microsoft TechNet . 7 de julio de 2017.
- 1 2 Leonhard, Woody (25 de agosto de 2016). "Un error de compresión de archivos de registro de Windows 7 puede llenar su disco duro" . Computerworld . Archivado del original el 8 de enero de 2019. Recuperado el 8 de enero de 2019 .
- ↑ "LVFS: Proveedores de hardware" . Proyecto de servicio de firmware para proveedores de Linux . Consultado el 3 de mayo de 2022 .
- ↑ "twogood/unshield" . GitHub . Consultado el 21 de abril de 2018 .
- ↑ "kyz/libmspack: doc/magic" . GitHub . 2 de enero de 2022.
- ↑ "Formato de archivo de gabinete de instalación de Windows CE (.CAB)" . cabextract .
Enlaces externos
- SDK de Microsoft Cabinet : las versiones actualizadas de estos recursos están disponibles en el SDK de Microsoft Windows.
- Kit de desarrollo de software para gabinetes (CAB SDK) : descargas de todas las versiones de Microsoft CAB SDK (gratuitas)
- Comandos de Windows
- Formatos de archivo
- Administración de Windows