맨위로가기

캐비닛 (파일 포맷)

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

CAB(Cabinet) 파일 형식은 Microsoft에서 개발한 보관 파일 형식이다. 최대 65,535개의 폴더를 포함할 수 있으며, 각 폴더는 최대 65,535개의 파일을 포함하여 총 4,294,836,225개의 파일을 저장할 수 있다. 내부적으로 각 폴더는 단일 압축 블록으로 처리되어 효율적인 압축을 제공하며, DEFLATE, 퀀텀 압축, LZX, NULL 등 다양한 압축 알고리즘을 지원한다. CAB 파일은 다양한 Microsoft 설치 기술, CBS 로그 보관, 그리고 리눅스 시스템에서의 펌웨어 업데이트 배포 등 다양한 용도로 사용된다. Windows는 makecab 유틸리티를 통해 CAB 파일을 생성하고, 파일 탐색기, 설정 API, 명령줄 도구를 통해 내용을 추출할 수 있다.

더 읽어볼만한 페이지

  • 아카이브 포맷 - ARJ
    ARJ는 다양한 소프트웨어 유틸리티에서 압축 해제가 가능한 파일 포맷으로, macOS에서는 독립 실행형 유틸리티를 통해 압축을 해제할 수 있다.
  • 아카이브 포맷 - JAR (파일 포맷)
    JAR (Java ARchive)는 자바 런타임 환경에서 애플리케이션 배포를 위해 사용되는 ZIP 기반의 파일 포맷으로, 자바 클래스 파일과 매니페스트 파일을 포함하여 메타데이터와 실행 정보를 관리하며, 압축 및 전자 서명을 지원하고 실행 가능한 JAR 파일을 통해 애플리케이션을 간편하게 실행할 수 있게 한다.
  • 윈도우 관리 - 블루스크린
    블루스크린은 윈도우 운영체제에서 발생하는 치명적인 오류로, 컴퓨터 작동을 멈추고 파란색 화면에 오류 메시지를 표시하며, 하드웨어 또는 소프트웨어 문제로 인해 발생하고, 시스템 복원, 안전 모드 부팅 등의 방법으로 대처한다.
  • 윈도우 관리 - 파워셸
    파워셸은 마이크로소프트에서 개발한 작업 자동화 솔루션으로, 명령줄 셸과 스크립트 언어의 기능을 결합하여 윈도우 시스템 관리를 위해 설계되었으며, .NET 프레임워크 기반의 객체 지향적 특징을 갖고 다양한 플랫폼에서 자동화 스크립트 작성 및 실행, 시스템 구성 관리 등에 활용된다.
캐비닛 (파일 포맷) - [IT 관련 정보]에 관한 문서
기본 정보
유형아카이브 파일 포맷
확장자.cab
MIME 형식application/vnd.ms-cab-compressed
Uiniform Type Identifier (UTI)public.archive.cab
public.data
public.archive
소유자마이크로소프트
매직 넘버MSCF
상세 정보
개발자마이크로소프트
사용설치 소프트웨어
장치 드라이버
기타 마이크로소프트 윈도우 구성 요소 설치
컨테이너여러 파일 및 폴더
압축 알고리즘LZX
DEFLATE
양자화 코덱
특징디지털 인증서 지원
무결성 검사
기타
비고마이크로소프트 윈도우에서 주로 사용
다양한 압축 알고리즘 지원

2. 디자인

CAB 아카이브는 효율적인 데이터 압축 및 저장을 위해 설계되었다. 내부적으로 폴더와 파일의 관계, 경로 처리 방법, 사용 가능한 압축 알고리즘, 추가 기능 등을 포함한다. 이러한 디자인 요소들은 CAB 파일 형식을 다양한 용도로 활용할 수 있게 해준다.

하위 섹션인 "구조", "압축 알고리즘", "추가 기능"에서 이미 자세하게 다루고 있으므로, 해당 섹션들에서는 더 자세한 내용을 확인할 수 있다.

2. 1. 구조

CAB 아카이브는 최대 65,535개의 "폴더"(표준 운영 체제 디렉토리와 구별됨)를 포함할 수 있으며, 각 폴더는 최대 65,535개의 파일을 포함할 수 있어 총 4,294,836,225개의 파일을 저장할 수 있다. 내부적으로 각 폴더는 단일 압축 블록으로 처리되어 각 파일을 개별적으로 압축하는 것보다 더 효율적인 압축을 제공한다.

폴더의 모든 항목은 파일이어야 한다.[1] 이 구조로 인해 CAB 아카이브에 빈 폴더를 저장하는 것은 불가능하다.

다음은 폴더와 파일 간의 관계를 보여주는 CAB 파일 구조의 예이다.

  • CAB 파일
  • * 첫 번째 폴더
  • ** Records/Student_01.tsv
  • ** Records/Photos/Student_01.jpg
  • * 두 번째 폴더
  • ** Records/Student_02.tsv
  • ** Records/Photos/Student_02.jpg


경로를 처리하는 방법은 CAB 파일 형식에 지정되어 있지 않으므로 소프트웨어 구현에 따라 다르다.

  • 일부는 파일 이름을 파일 경로에만 추가하여 CAB 아카이브의 모든 파일이 단일 폴더에 있는 것처럼 처리한다. IExpress는 이러한 방식으로 작동하며, CAB 아카이브를 폴더로 열 수 있는 Microsoft Windows 탐색기도 마찬가지이다.
  • 일부는 경로를 저장하고 추출 시 필요에 따라 폴더를 생성할 수 있다. CABARC.EXE 및 EXTRACT.EXE(Microsoft Cabinet SDK의 도구)[2]뿐만 아니라 lcab[3] 및 cabextract[4](타사 오픈 소스 도구)도 이러한 방식으로 작동한다.
  • EXPAND.EXE는 버전 6부터(Windows Vista 이상에 포함됨) 파일 경로로 파일을 추출할 수 있다. 이전 버전은 그렇게 하지 않는다.[5]


CAB 파일 형식은 다음 압축 알고리즘을 사용할 수 있다.

  • DEFLATE: ZIP 파일 형식의 저자 필 커츠가 발명했다(특히 MSZIP 캡슐화).[6]
  • 퀀텀 압축: 퀀텀 아카이버의 저자인 데이비드 스태포드로부터 라이선스를 받았다.[7](makecab.exe/diamond.exe의 모든 버전에서 사용할 수 없음)[8][9]
  • LZX: 조나단 포브스와 토미 포우타넨이 발명했으며, 포브스가 회사에 입사하면서 마이크로소프트에 제공되었다.
  • NULL: 저장됨


CAB 아카이브는 디지털 서명 또는 임의의 데이터와 같은 일부 응용 프로그램별 용도로 아카이브 내와 아카이브의 각 파일에 빈 공간을 예약할 수 있다.

2. 2. 압축 알고리즘

CAB 파일 형식은 다음 압축 알고리즘을 사용할 수 있다.

  • DEFLATE: ZIP 파일 형식의 저자 필 커츠가 발명했다(특히 MSZIP 캡슐화).[6]
  • 퀀텀 압축: 퀀텀 아카이버의 저자인 데이비드 스태포드로부터 라이선스를 받았다.[7]
  • LZX: 조나단 포브스와 토미 포우타넨이 발명했으며, 포브스가 회사에 입사하면서 마이크로소프트에 제공되었다.
  • NULL: 저장됨

2. 3. 추가 기능

CAB 아카이브는 최대 65,535개의 "폴더"(표준 운영 체제 디렉토리와 구별됨)를 포함할 수 있으며, 각 폴더는 최대 65,535개의 파일을 포함할 수 있어 총 4,294,836,225개의 파일을 저장할 수 있다. 내부적으로 각 폴더는 단일 압축 블록으로 처리되어 각 파일을 개별적으로 압축하는 것보다 더 효율적인 압축을 제공한다.

폴더의 모든 항목은 파일이어야 한다.[1] 이 구조로 인해 CAB 아카이브에 빈 폴더를 저장하는 것은 불가능하다.

다음은 폴더와 파일 간의 관계를 보여주는 CAB 파일 구조의 예이다.

  • CAB 파일
  • * 첫 번째 폴더
  • ** Records/Student_01.tsv
  • ** Records/Photos/Student_01.jpg
  • * 두 번째 폴더
  • ** Records/Student_02.tsv
  • ** Records/Photos/Student_02.jpg


경로를 처리하는 방법은 CAB 파일 형식에 지정되어 있지 않으므로 소프트웨어 구현에 따라 다르다.

  • 일부는 파일 이름을 파일 경로에만 추가하여 CAB 아카이브의 모든 파일이 단일 폴더에 있는 것처럼 처리한다. IExpress는 이러한 방식으로 작동하며, CAB 아카이브를 폴더로 열 수 있는 Microsoft Windows 탐색기도 마찬가지이다.
  • 일부는 경로를 저장하고 추출 시 필요에 따라 폴더를 생성할 수 있다. CABARC.EXE 및 EXTRACT.EXE(Microsoft Cabinet SDK의 도구)[2]뿐만 아니라 lcab[3] 및 cabextract[4](타사 오픈 소스 도구)도 이러한 방식으로 작동한다.
  • EXPAND.EXE는 버전 6부터(Windows Vista 이상에 포함됨) 파일 경로로 파일을 추출할 수 있다. 이전 버전은 그렇게 하지 않는다.[5]


CAB 파일 형식은 다음 압축 알고리즘을 사용할 수 있다.

  • DEFLATE: ZIP 파일 형식의 저자 필 커츠가 발명했다(특히 MSZIP 캡슐화).[6]
  • 퀀텀 압축: 퀀텀 아카이버의 저자인 데이비드 스태포드로부터 라이선스를 받았다.[7] (makecab.exe/diamond.exe의 모든 버전에서 사용할 수 없음)[8][9]
  • LZX: 조나단 포브스와 토미 포우타넨이 발명했으며, 포브스가 회사에 입사하면서 마이크로소프트에 제공되었다.
  • NULL: 저장됨


CAB 아카이브는 디지털 서명 또는 임의의 데이터와 같은 일부 응용 프로그램별 용도로 아카이브 내와 아카이브의 각 파일에 빈 공간을 예약할 수 있다.

3. 구현

마이크로소프트 윈도우를 비롯한 여러 소프트웨어에서 캐비닛(CAB) 파일 포맷을 구현하여 사용한다. 윈도우는 명령줄 인터페이스 유틸리티 `makecab`를 사용하여 CAB 파일을 만들고, 파일 탐색기, 설정 API, 명령줄 명령어 `expand.exe`[10], `extract.exe` 및 `extrac32.exe`[11][12]를 통해 내용을 추출한다. WinZip, WinRAR, 7-Zip과 같은 소프트웨어도 CAB 파일을 지원한다. 리눅스에서는 `cabextract` (추출 전용)[13] 또는 `gcab` (추출 및 생성)[14] 도구를 사용한다. 더 자세한 내용은 파일 압축 프로그램 비교 문서를 참고할 수 있다.

3. 1. 윈도우 지원

마이크로소프트 윈도우는 `makecab` 명령줄 인터페이스 유틸리티를 사용하여 CAB 보관 파일을 만들 수 있도록 지원한다. 파일 탐색기, 설정 API, 그리고 명령줄 명령어 `expand.exe`[10], `extract.exe` 및 `extrac32.exe`를 사용하여 CAB 보관 파일의 내용을 추출하는 것을 지원한다.[11][12]

WinZip, WinRAR 또는 7-Zip 등도 CAB 보관 파일을 지원하는 잘 알려진 소프트웨어이다.

3. 2. 기타 소프트웨어

마이크로소프트 윈도우는 `makecab` 명령줄 인터페이스 유틸리티를 사용하여 CAB 보관 파일을 만들 수 있도록 지원한다. 파일 탐색기, 설정 API, 그리고 명령줄 명령어 `expand.exe`[10], `extract.exe`[11] 및 `extrac32.exe`[12]를 사용하여 CAB 보관 파일의 내용을 추출하는 것을 지원한다.

CAB 보관 파일 지원을 제공하는 다른 잘 알려진 소프트웨어로는 WinZip, WinRAR 또는 7-Zip 등이 있다. 앞서 언급한 `cabextract`는 리눅스 시스템에서 흔히 사용되는 도구[13]이지만, 보관 파일의 추출만 가능하다. 그러나 `gcab` 도구는 CAB 보관 파일을 추출하고 생성할 수 있다.[14]

4. 용도

마이크로소프트의 다양한 설치 기술에서 CAB 형식이 사용된다. CAB 파일은 IExpress와 같이 자체 압축 해제 프로그램과 연결되어 사용되기도 한다. MSI 및 MSU 파일처럼 다른 파일에 포함되는 경우도 있다.

리눅스 시스템에서는 fwupd를 통해 펌웨어 업데이트를 배포하는데 CAB 아카이브가 사용된다. 하드웨어 공급업체가 제공하는 이 업데이트는 비휘발성 메모리에 플래시될 수 있다.[17]

4. 1. 윈도우 설치 기술

다양한 마이크로소프트 설치 기술은 CAB 형식을 사용한다. 여기에는 윈도우 인스톨러, 윈도우 설정 (윈도우 95부터 윈도우 서버 2003까지), 설정 API, 장치 설치 관리자, 테마 팩 및 AdvPack (인터넷 익스플로러에서 ActiveX 구성 요소를 설치하는 데 사용)이 포함된다. CAB 파일은 실행 프로그램이 관련된 CAB 파일을 추출하는 IExpress와 같은 자체 압축 해제 프로그램과도 자주 관련이 있다. CAB 파일은 다른 파일에 포함되는 경우도 있는데, 예를 들어 MSI 및 MSU 파일은 일반적으로 하나 이상의 내장 CAB 파일을 포함한다.[15][16]

윈도는 캐비닛 형식을 사용하여 구성 요소 기반 서비스 (CBS) 로그를 보관하며, 이는 C:\Windows\Logs\CBS 폴더에 보관된다. 압축 프로세스에 버그가 발생하면 해당 폴더와 C:\Windows\Temp 폴더 모두에서 쓸모없는 로그 파일이 무분별하게 생성되어 하드 드라이브가 완전히 채워질 때까지 디스크 저장 공간을 소비할 수 있다.[15][16] 특정 절차를 따르지 않고 파일을 삭제하면 삭제된 파일이 더 빠른 속도로 다시 생성될 수 있다.[16]

4. 2. 기타 용도

다양한 마이크로소프트 설치 기술은 CAB 형식을 사용한다. 여기에는 윈도우 인스톨러, 윈도우 설정 (윈도우 95부터 윈도우 서버 2003까지), 설정 API, 장치 설치 관리자, 테마 팩 및 AdvPack (인터넷 익스플로러에서 ActiveX 구성 요소를 설치하는 데 사용)이 포함된다. CAB 파일은 실행 프로그램이 관련된 CAB 파일을 추출하는 IExpress와 같은 자체 압축 해제 프로그램과도 자주 관련이 있다. CAB 파일은 다른 파일에 포함되는 경우도 있다. 예를 들어, MSI 및 MSU 파일은 일반적으로 하나 이상의 내장 CAB 파일을 포함한다.

윈도우는 캐비닛 형식을 사용하여 구성 요소 기반 서비스 (CBS) 로그를 보관하며, 이는 `C:\Windows\Logs\CBS` 폴더에 보관된다. 압축 프로세스에서 버그가 발생하면 해당 폴더와 `C:\Windows\Temp` 폴더 모두에서 쓸모없는 로그 파일이 무분별하게 생성되어 하드 드라이브가 완전히 채워질 때까지 디스크 저장 공간을 소비할 수 있다.[15][16] 특정 절차를 따르지 않고 파일을 삭제하면[16] 삭제된 파일이 더 빠른 속도로 다시 생성될 수 있다.

리눅스 시스템에서 CAB 아카이브는 fwupd에서 펌웨어 업데이트를 배포하는 데 사용되며, 하드웨어 공급업체에서 제공하는 이 업데이트는 비휘발성 메모리에 플래시될 수 있다.[17]

5. 관련 형식

InstallShield 같은 다른 설치 프로그램에서도 자체적인 독점 보관 형식으로 `.cab` 파일 확장자를 사용한다. InstallShield는 압축을 위해 zlib(Deflate 참조)를 사용하지만, 헤더가 Microsoft CAB 파일과 다르므로 호환되지 않아 표준 캐비닛 형식으로 제작된 프로그램으로 조작하거나 편집할 수 없다. Unshield와 같은 특수 타사 유틸리티는 이 특정 독점 형식을 추출할 수 있다.[18] 이 형식은 ISC라는 다른 매직 넘버를 가지고 있다.[19]

윈도우 CE 소프트웨어는 확장자가 ".000"으로 끝나는 내부 첫 번째 파일이 설치 방법을 자세히 설명하는 CAB 파일로 배포된다.[20]

마이크로소프트 인스톨러 `.msi` 파일은 때때로 CAB 파일을 포함하지만, 먼저 디코딩해야 하는 복합 파일 바이너리 형식 자체를 사용한다. `lessmsi`와 같은 소프트웨어를 사용하여 이러한 파일을 압축 해제할 수 있다.

마이크로소프트 퍼블리셔에는 퍼블리셔 문서를 모든 외부 링크와 함께 `.PUZ` 확장자를 가진 CAB 파일로 묶는 "Pack and Go" 기능이 있다. 이 파일은 `.PUZ` 파일과 함께 배포되는 동반 .EXE 파일로 활성화되도록 설계되었으며, 모든 CAB 파일 추출 프로그램으로 열 수 있다.

참조

[1] 웹사이트 Microsoft Cabinet Format https://msdn.microso[...]
[2] 웹사이트 Microsoft Cabinet Software Development Kit https://support.micr[...] Microsoft 2013-03-27
[3] 웹사이트 lcab http://freecode.com/[...] Dice 2013-03-27
[4] 웹사이트 cabextract https://www.cabextra[...]
[5] 웹사이트 "[Undocumented] [Bugs] Expand.exe (more about it) (Page 1) / Windows CMD Shell / SS64 Forum" http://ss64.org/view[...] 2018-04-21
[6] 웹사이트 "[MS-MCI]: Microsoft ZIP (MSZIP) Compression and Decompression Data Structure" https://docs.microso[...] 2020-10-13
[7] 서적 Data compression : the complete reference https://archive.org/[...] London : Springer 2007
[8] 웹사이트 Quantum compression format http://www.russotto.[...] 2022-03-29
[9] 웹사이트 Cabinet File Format – Open Specifications Documentation https://download.mic[...] Microsoft Corporation 2023-02-15
[10] 웹사이트 expand – Windows CMD – SS64.com https://ss64.com/nt/[...]
[11] 웹사이트 How to extract CAB File using command line tools in Windows 10 https://www.thewindo[...]
[12] 웹사이트 Extrac32 – Uncompress files – Windows CMD – SS64.com https://ss64.com/nt/[...]
[13] 웹사이트 How to extract CAB files in Linux https://www.systranb[...]
[14] 웹사이트 gcab project on GNOME https://gitlab.gnome[...]
[15] 웹사이트 Clean Up Component-Based Servicing logs https://social.techn[...] 2017-07-07
[16] 웹사이트 Windows 7 log file compression bug can fill up your hard drive https://www.computer[...] 2019-01-08
[17] 웹사이트 LVFS: Hardware Vendors https://fwupd.org/lv[...] 2022-05-03
[18] 웹사이트 twogood/unshield https://github.com/t[...] 2018-04-21
[19] 웹사이트 kyz/libmspack: doc/magic https://github.com/k[...] 2022-01-02
[20] 웹사이트 Windows CE installation cabinet (.CAB) file format https://www.cabextra[...]
[21] 웹사이트 窓の杜 - ファイル圧縮対決6番勝負!(総合成績) https://forest.watch[...] 2008-12-14
[22] 웹사이트 HOWTO: Use the SetupAPI's SetupIterateCabinet() Function http://support.micro[...] 2008-12-14



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com