| ファイル名拡張子 |
。タクシー |
|---|---|
| インターネットメディアの種類 |
アプリケーション/vnd.ms-cab-圧縮 |
| 統一型識別子 (UTI) | パブリックアーカイブcab |
| UTI の確認 | パブリックデータ パブリックアーカイブ |
| 魔法の数字 | MSCF |
| 開発者 | マイクロソフト |
| フォーマットの種類 | アーカイブファイル形式 |
Cabinet (またはCAB )は、 Microsoft Windowsのアーカイブ ファイル形式であり、ロスレス データ圧縮と、アーカイブの整合性を維持するために使用される埋め込みデジタル証明書をサポートしています。Cabinet ファイルにはファイル名拡張子があり、最初の 4 バイト (マジック ナンバーとも呼ばれます) MSCFによって認識されます。Cabinet ファイルは、元々 Diamond ファイルと呼ばれていました。
.cab
デザイン
CAB アーカイブには最大 65,535 個のフォルダー(標準のオペレーティング システム ディレクトリとは異なります) を含めることができ、各フォルダーには最大 65,535 個のファイルを含めることができ、最大 4,294,836,225 個になります。内部的には、各フォルダーは1 つの圧縮ブロックとして扱われるため、各ファイルを個別に圧縮するよりも効率的な圧縮が実現します。
フォルダ内のすべてのエントリはファイルである必要があります。[1]この構造のため、CABアーカイブに空のフォルダを保存することはできません。
以下に、フォルダーとファイルの関係を示す CAB ファイル構造の例を示します。
パスの処理方法は CAB ファイル形式では指定されておらず、ソフトウェアの実装に委ねられています。
- 一部のアプリケーションでは、CAB アーカイブ内のすべてのファイルが 1 つのフォルダー内にあるかのように、ファイル名のみにファイル パスが付加されます。IExpressは、 CAB アーカイブをフォルダーとして開くことができる Microsoft Windows エクスプローラーと同様に、この方法で動作します。
- パスを保存し、抽出時に必要に応じてフォルダを作成するものもあります。CABARC.EXEとEXTRACT.EXE(Microsoft Cabinet SDK [2] のツール)だけでなく、タクシー[3]とキャベックストラクト[4](サードパーティのオープンソースツール)はこのように動作します。
- EXPAND.EXE は、バージョン6(Windows Vista以降に付属)以降でのみ、ファイルをパスに抽出できます。それ以前のバージョンでは、これはできません。[5]
CAB ファイル形式では、次の圧縮アルゴリズムが採用される場合があります。
- DEFLATE : ZIPファイル形式(特にMSZIPカプセル化)の作者であるフィル・カッツによって発明された[6]
- 量子圧縮:量子アーカイバの作者であるDavid Stafford氏[7] [リンク切れ ]からライセンスを取得(makecab.exe/diamond.exeのすべてのバージョンで利用できるわけではない) [8] [9]
- LZX : ジョナサン・フォーブスとトミ・ポウタネンが発明し、フォーブスがマイクロソフトに入社した際に同社に提供された。
- NULL: 保存済み
CAB アーカイブは、デジタル署名や任意のデータなどのアプリケーション固有の用途のために、アーカイブ内およびアーカイブ内の各ファイルに空きスペースを予約できます。
実装
Microsoft Windowsは、makecab コマンドラインユーティリティを使用したCABアーカイブファイルの作成をサポートしています。ファイルエクスプローラ、セットアップAPI、コマンドラインコマンド expand.exe、[10] 、[ 11]extract.exe、[12]extrac32.exeを使用してCABアーカイブファイルの内容を抽出することができます。
CABアーカイブをサポートする他の有名なソフトウェアには、WinZip、WinRAR、7-Zipなどがあります。前述の7-ZipはcabextractLinuxシステムで一般的なツールですが、[13]アーカイブの抽出しかできません。ただし、このgcabツールはCABアーカイブの抽出と作成の両方を行うことができます。[14]完全なリストについては、ファイルアーカイバの比較§アーカイブ形式を参照してください。
用途
さまざまなMicrosoftインストール テクノロジで CAB 形式が使用されています。これには、Windows インストーラ、Windows セットアップ( Windows 95からWindows Server 2003まで)、セットアップ API、デバイス インストーラ、テーマ パック、AdvPack ( Internet ExplorerでActiveXコンポーネントのインストールに使用) が含まれます。CAB ファイルは、実行可能プログラムが関連付けられている CAB ファイルを抽出するIExpressなどの自己解凍型プログラムに関連付けられることもよくあります。CAB ファイルは、他のファイルに埋め込まれることもあります。たとえば、MSI ファイルと MSUファイルには、通常、1 つ以上の埋め込まれた CAB ファイルが含まれます。
Windowsはキャビネット形式を使用してコンポーネントベースサービス(CBS)ログをアーカイブし、 C:\Windows\Logs\CBSフォルダーに保存します。圧縮プロセスのバグにより、そのフォルダーとC:\Windows\Tempの両方に役に立たないログファイルが暴走して生成され、ハードドライブが完全にいっぱいになるまでディスクストレージを消費する可能性があります。[15] [16]特定の手順に従わずにファイルを削除すると[16]、削除されたファイルがより速いペースで再生成される可能性があります。
Linuxシステムでは、 fwupdはCABアーカイブを使用して、ハードウェアベンダー[17]からのファームウェアアップデートを配布し、不揮発性メモリにフラッシュすることができます。
関連フォーマット
ファイル名拡張子は、他のインストーラプログラム( InstallShield.cabなど)でも独自のアーカイブ形式に使用されます。InstallShieldは圧縮にzlibを使用します( Deflateを参照)が、そのヘッダーはMicrosoft CABファイルと同じではないため互換性がなく、標準キャビネット形式用に作成されたプログラムでは操作または編集できません。Unshieldなどの専門的なサードパーティユーティリティを使用すると、この特定の独自形式を抽出できます。[18]この形式には、 ISC(という別のマジックナンバーがあります。[19]
Windows CEソフトウェアはCABファイルとして配布され、その中の拡張子「.000」で終わる最初のファイルにインストール方法の詳細が記されている。[20]
Microsoft インストーラー .msiファイルにはCAB ファイルが含まれることがありますが、ファイル自体は複合ファイル バイナリ形式であるため、最初にデコードする必要があります。 のようなソフトウェアlessmsiを使用して、これらのファイルを解凍できます。
Microsoft Publisher には、Publisher ドキュメントとすべての外部リンクを拡張子付きの CAB ファイルにまとめる「Pack and Go」機能があります.PUZ。これらのファイルは、ファイルと一緒に配布される付属の .EXE ファイルでアクティブ化されます.PUZ。これらのファイルは、任意の CAB ファイル抽出プログラムで開くことができます。
参照
参考文献
- ^ Microsoft キャビネット形式
- ^ 「Microsoft Cabinet Software Development Kit」。サポート。Microsoft。2013年3 月 27 日閲覧。
- ^ "lcab". Freecode . Dice . 2013年3月27日閲覧。
- ^ 「cabextract」.
- ^ 「[未文書化] [バグ] Expand.exe (詳細) (ページ 1) / Windows CMD Shell / SS64 フォーラム」。ss64.org。2018年4月 21 日閲覧。
- ^ 「[MS-MCI]: Microsoft ZIP (MSZIP) 圧縮および解凍データ構造」。docs.microsoft.com。2020年10 月 13 日。
- ^ Salomon, D. (David) (2007). データ圧縮: 完全リファレンス。Library Genesis。ロンドン: Springer。p. 187。ISBN 978-1-84628-602-5。
- ^ 「Quantum圧縮フォーマット」。Matthew Russotto。2021年5月11日時点のオリジナルよりアーカイブ。 2022年3月29日閲覧。
- ^ 「キャビネット ファイル形式 - オープン仕様ドキュメント」(PDF)。Microsoft Corporation。2011 年 3 月 4 日。2016年 11 月 18 日時点のオリジナルよりアーカイブ(PDF) 。2023 年2 月 15 日閲覧。
- ^ 展開 – Windows CMD – SS64.com
- ^ Windows 10 のコマンドライン ツールを使用して CAB ファイルを抽出する方法
- ^ Extrac32 – ファイルの解凍 – Windows CMD – SS64.com
- ^ Linux で CAB ファイルを抽出する方法[永久リンク切れ ]
- ^ GNOME の gcab プロジェクト
- ^ 「コンポーネント ベース サービスのログをクリーンアップする」。Microsoft TechNet。2017年 7 月 7 日。
- ^ ab Leonhard, Woody (2016年8月25日). 「Windows 7 のログファイル圧縮バグによりハードドライブがいっぱいになる可能性」. Computerworld . 2019年1月8日時点のオリジナルよりアーカイブ。 2019年1月8日閲覧。
- ^ 「LVFS: ハードウェアベンダー」。Linuxベンダーファームウェアサービスプロジェクト。 2022年5月3日閲覧。
- ^ “twogood/unshield”. GitHub . 2018年4月21日閲覧。
- ^ “kyz/libmspack: doc/magic”. GitHub . 2022年1月2日.
- ^ 「Windows CE インストール キャビネット (.CAB) ファイル形式」。cabextract。
外部リンク
- Microsoft Cabinet SDK – これらのリソースの更新バージョンは、Microsoft Windows SDKで入手できます。
- キャビネット ソフトウェア開発キット (CAB SDK) – すべての Microsoft CAB SDK バージョンのダウンロード (無料)
