캐비닛 (파일 포맷)
"오늘의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