| コンパクトファイルセット | |
|---|---|
| ファイル名拡張子 | .cfs |
| インターネットメディアの種類 | アプリケーション/x-cfs-圧縮 |
| 開発者 | ジョー・ロウ(ピズモテクニック社) |
| フォーマットの種類 | アーカイブ形式 |
| オープンフォーマット? | はい(cfs.hファイルを参照) |
コンパクト ファイル セット (CFS)は、オープンアーカイブ ファイル形式およびソフトウェア配布コンテナー ファイル形式です。
概要
コンパクトファイルセット(CFS)は、オープンアーカイブファイル形式およびソフトウェア配布コンテナファイル形式です。[ 1 ]基本的なCFSファイルはISOファイルと互換性があります。ISO-9660と十分に類似しているため、多くのシステムやアプリケーションでCFSを読み込むことができ、他のアプリケーションでもわずかな変更のみで読み込むことができます。CFSは以下の規格に基づいています。
無料または商用アプリケーションで無料で使用できます。このフォーマットのいかなる部分も特許の対象ではないと想定されています。[ 2 ]
主な用途は、さまざまなアーカイブおよび配布アプリケーションのコンテナ ファイルになることが予想されますが、CFS は CD/DVD メディアに直接書き込む場合にも便利です。
目標
- データ圧縮と非シーク ストレージ (パイプ、ソケット、テープ) により使用が簡素化されます。
- 従来の ISO-9660/UDF ベースのイメージと比較して、読み取りおよび書き込みアプリケーションの実装を簡素化します。
- 異なるアプリケーション間でのデータの一貫性と交換性が向上しました。
- 画像を変更するアプリケーションの実装を簡素化します。
- メディア構造と重複したディレクトリ データに使用するイメージ スペースを減らすことで、ストレージ効率を向上させます。
- パス テーブルによって ISO-9660 に課せられたフォルダー数の制限を排除します。
- ISO-9660 および UDF を使用することで、さまざまな互換性制限によって課せられるファイル サイズの制限を排除します。
CFSとISO-9660の主な違い
- メディア ヘッダー (最初の 40k) のレイアウトと内容は固定されており、常に同じシーケンスのボリューム構造とデータが含まれます。
- すべてのファイル名とテキスト フィールドは、Joliet 拡張機能で指定されているビッグ エンディアン UCS-2 として保存されます。
- ファイル名とディレクトリの深さに対する任意の制限は、ISO-9660 ファイル レコード構造の制限 (110 個の 16 ビット文字) まで削除されます。
- すべてのディレクトリ データは、ファイル データの最後のブロックの後に書き込まれます。
- 読者は 4GB を超えるサイズのファイルを処理することが想定されています。
- パス テーブルはオプションで生成されますが、使用されません。
技術情報
メディアヘッダー
論理イメージの最初の20ブロック(40KB)はメディアヘッダーです。メディアヘッダーのレイアウトは、ISO-9660の様々な記述子およびディレクトリ構造と互換性があります。ファイルデータの最初のブロックは、メディアヘッダーの直後のブロック20に格納されます。
メディア ヘッダーのレイアウトは次のとおりです。
- ブロック0-11
- すべてゼロ
- ブロック12
- 互換性に関するReadmeファイルのテキスト
- ブロック13
- 互換性ルートフォルダ
- ブロック14
- 互換性のあるリトルエンディアンパステーブル
- ブロック15
- 互換性ビッグエンディアンパステーブル
- ブロック16
- ISO-9660互換プライマリボリューム記述子
- ブロック17
- ISO-9660 補足ボリューム記述子
- ブロック18
- ISO-9660 終了記述子
- ブロック19
- すべてゼロ
メディアヘッダー内のプライマリボリューム記述子は、互換性が固定されたルートフォルダとReadmeファイルを参照します。これにより、ユーザーは補助ボリューム記述子を使用しないアプリケーションやシステムを識別できます。補助ボリューム記述子はUCS-2文字セットを示し、実際のディレクトリ構造を参照します。メディアヘッダーは、このヘッダーファイルのロジックで実行される通りに初期化する必要があります。メディアヘッダーには、アプリケーションデータ、システムデータ、コメント、日付、テキストなどを追加しないでください。
Unicodeファイル名
すべてのファイル名と、補助ボリューム記述子のシステム ID およびボリューム ID フィールドは、UCS-2、ビッグ エンディアンとしてエンコードされます。
ファイル名の長さは、8ビットファイルレコードサイズによって110文字(16ビット文字)までに制限されます。ディレクトリ階層の深さや、ファイル名とフォルダ名に含まれる構成要素の合計長さには、特に制限はありません。読者はご自身の環境に適した制限を選択し、必要に応じて確認を行う必要があります。ISO-9660-1999と同様に、ファイル名にバージョン番号は付加されません。ISO-9660-1999と同様に、ファイル名のソート時に「.」および「;」文字が持つ特別な意味は削除されました。
オプションのパステーブル
パステーブルは冗長な情報でメディアの容量を消費し、メディアのフォルダ数を最大64Kに制限します。リーダーはパステーブルを参照すべきではありません。ライターは、ISO-9660リーダーとの互換性を高めるためにパステーブルを生成することができます。パステーブルには、ファイルデータの最終ブロックを超えるディレクトリデータ(フォルダエクステント)を書き込む必要があります。64Kを超えるフォルダを含むメディアでは、正しいパステーブルを生成できないことに注意してください。既存のメディアを変更するライターは、既存のパステーブルを削除することができます。パステーブルが存在しない場合は、補助ボリューム記述子内の関連する3つのボリューム記述子フィールドをゼロに設定する必要があります。
拡張属性
拡張属性は、CFS の将来の拡張のために予約されています。書き込み側は拡張属性を作成してはいけません。読み取り側は、拡張属性が存在する場合は適切に処理しなければなりません。ファイルデータは連続している必要があり、マルチエクステントファイルでは重複するファイルレコードの使用は制限されています。各ファイルのすべてのデータは、1 つの連続したエクステント内に存在する必要があります。これは、ファイルが複数のファイルレコードで表現されている場合でも同様です。インターリーブファイルを作成してはなりません。関連ファイルを作成してはなりません。
重複ファイルレコードは、4GiB-2048 を超えるデータエクステントを持つファイルを表すためにのみ使用されます。重複ファイルレコードは、断片化されたデータを持つファイルを表すために使用しないでください。重複ファイルレコードを使用する場合は、ISO-9660-1999 仕様に示されているように、マルチエクステントフラグも使用する必要があります。ファイルの合計データサイズが 4GiB-2048 を超えない限り、重複ファイルレコードを作成しないでください。ファイルに重複ファイルレコードが存在する場合、最後のファイルレコードを除くすべてのファイルレコードは、4GiB-2048 バイトのデータエクステントを持つ必要があります。
メディア上のディレクトリデータの場所
すべてのファイルデータは、メディア上のすべてのフォルダエクステントとパステーブルよりも前に配置する必要があります。これは、イメージを変更するアプリケーションがディレクトリ全体をメモリに読み込み、新しいファイルデータをイメージに追加し、新しいファイルデータの後に更新されたディレクトリを書き換えることができるようにするためです。書き込み側は、ディレクトリ全体を読み込んだ後、ファイルデータの最終ブロックを特定する必要があります。
メディアヘッダーパッチ領域
メディアヘッダーが変更される際(イメージ作成の終了時、または既存のイメージへの後続の変更時)は、特定のフィールドのみを更新する必要があります。これらのフィールドはすべてメディアヘッダーパッチ領域内に存在します。メディアヘッダーパッチ領域のみを書き換える必要があります。これにより、シークや上書き機能が制限されたイメージコンテナファイル形式やトランスポート(圧縮形式、パイプ、ソケット)を扱う際に、より多くの選択肢が得られます。
フォーマット拡張と複合ファイルシステム
イメージに書き込まれるすべてのファイルとフォルダは、補助ボリューム記述子から参照される単一のディレクトリ構造を介してアクセス可能でなければなりません。UDFやHFS構造を含む複合ファイルシステムは許可されません。RockridgeなどのISO-9660拡張も許可されません。
システム固有の属性をアーカイブするための拡張機能
CFS の将来のバージョンには、時間フィールド、セキュリティ記述子、アクセス制御リスト、リソース フォーク、シンボリック リンクなどのシステム固有の属性を保存できるようにする拡張機能が含まれる可能性があります。これらの拡張機能が必要な開発者は、要件や提案を Pismo Technic に連絡してください。
メディアフォーマット
CFSイメージは、CD/DVDメディアに書き込まれるか、メディアコンテナファイルに保存されます。メディアコンテナファイルは、CFSイメージの生のダンプ(ここではDDと呼びますが、一般的にはISOファイルと呼ばれます)である場合もあります。また、メディアコンテナファイルは、圧縮やスパニングなどの追加機能を備えた、より構造化されたコンテナ形式である場合もあります。CFSイメージは、DDまたはCISO(Compact ISO)形式のメディアファイルに保存されている場合にのみ、この仕様に準拠します。CD/DVDメディアに書き込まれた場合、またはNRGやDAAなどの他のメディアコンテナファイル形式で保存された場合は、CFSに準拠していないため、CFSファイルとは呼ばれません。
注:コンパクトISOは、 PlayStation PortableのHomebrew開発で一般的に使用される[[圧縮ISO]]形式とは異なります。PSPの圧縮ISO形式はCISOとも呼ばれますが、ファイル拡張子はCSOです。
CFS書き込みアプリケーションは、ユーザーがCISO(スパニング、圧縮など)を必要とするコンテナファイルオプションを指定しない限り、デフォルトでDD形式のメディアコンテナファイルを書き込むようにする必要があります。これにより、DD CD/DVDイメージをサポートしているがCFSをサポートしていないシステムやアプリケーションとのやり取りがより直感的になります。
参照
参考文献
- ^ Joe Lowe, Joe Lowe. 「cfs.h」 . CFSソースコードヘッダーファイル. 2008年4月6日閲覧。
- ^ 「ピズモテクニックウェブページ - CFS情報」。