リソースフォーク(resource fork)とは、Mac OS特有のファイルの構造のことで、実際のデータを表すデータフォークとは別に、アイコンやウィンドウの形状、メニューの内容や定義、アプリケーションコード (機械語)などといった特定の形式の情報を持つが、それをリソースフォークという。単に「リソース」と呼ぶこともある。また、情報そのもののことをとくに「リソースデータ」という。リソースフォークの存在によりデータにさまざまな付加情報を簡単に記録したり、ファイル名に拡張子がなくてもファイルのアイコンを決めたり開けるアプリケーションを判断できる。これに対して、実際のデータ部をとくに「データフォーク」と呼ぶ。データフォークは、Windowsなど、Mac OS以外のオペレーティングシステムでデータを記録する部分と同じである。Windowsにもリソースという概念はあるが、Mac OSのそれとは全く異なるものである。
Mac OS Xでは、アプリケーションの開発時にリソースを利用することもできるが、UFS上での利用を配慮してか、リソースフォークを丸ごとデータフォークに移したファイル (Raw Resource File) を利用するようにも設定出来る。
リソースフォークはリソースエディタと呼ばれる部類のエディタで編集することが出来るため、ソフトウェアのローカライズやカスタマイズが行える。また、大抵のリソースエディタは視覚的にデータを編集できる。また、Appleが無償で提供する統合開発環境、MPWやApple Developers ToolsにはRezと呼ばれるコンパイラが存在し、Rez専用の言語 (これもRezと呼ばれる) で記述されたソースコードをコンパイルすることでリソースフォークを作成することも出来る。逆に、リソースフォークからRezコードに戻すための逆コンパイラ、DeRezも同梱されている。
なお、リソースフォークはHFSやHFS+と呼ばれるファイルシステムだけがサポートしているため、他のファイルシステムを利用しているオペレーティングシステムでは利用できない。HFSは現在のところMac OSだけがサポートしているため、事実上Mac OSだけの機能になっている。ただし、Mac OSでも、UFSと呼ばれるファイルシステムにインストールしたシステムではリソースフォークを扱えない。しかしながら、リソースフォークを実際のデータとは別のファイルに分離し、オペレーティングシステムが管理できるようにはなっている。なお、現在Mac OSで最も利用されているHFS+では、データフォークとリソースフォーク以外のフォークも扱えるように設計されているが(マルチフォーク)、フォークの存在によって他のオペレーティングシステムとの間でのファイル交換を難しくしているため、使わなくなってしまっている。また、リソースフォークさえも、Mac OS Xではあまり利用されなくなってきている。
リソースフォークの構造は、リソースデータの配置を記録する「リソースマップ」と呼ばれるデータがあり、これによりリソースデータに定義されたIDや名前によってランダムアクセスを可能にしている。それとは別にリソースデータが記録され、大まかに分けてこの二つで構成されているが、実際には一つのタイプに複数のデータを記録できる階層構造になっている。リソースデータは、記録する情報の種類によって情報の記録形式が定義されており、その種類のことを「リソースタイプ」という。なお、リソースタイプは自分で自由に定義できる。また、リソースデータは他のタイプのデータを参照していることがよくある。
以下に、主なデータタイプを、アルファベット順に並べ替えて挙げる。
| データタイプ (実際の名前) | 概要 |
|---|---|
| BBIT (バイナリビット) | 真偽値 (真か偽か) を1ビットで表す。常に8の倍数個のBBITが必要。 |
| BOOL (ブーリアン) | 真偽値を表す。2バイトで構成され、256が真、0が偽。 |
| CHAR (キャラクタ) | 1バイトの文字を表す。 |
| CSTR (Cストリング) | C言語の文字列と同じ文字列を表す。 |
| DLNG (10進ロングワード整数) | 10進数のロングワード (4バイト) 整数。およそ-21億〜21億までの整数を表す。 |
| HEXD (16進数ダンプ) | このタイプが現れた位置から末尾までを16進数で表す。コードリソースや圧縮されたデータなどを表す際に用いられる。 |
| HLNG (ロングワード16進数) | データを4バイト分の16進数値として扱う。C言語でいう unsigned long で21億以上の整数を表した場合などに用いられる。 |
| PSTR (Pascalストリング) | 最初の1バイトに文字列の長さを記録したPascalストリングを表す。 |
| TNAM (タイプ名) | 常に4バイトで構成される、クリエータコードなどを表す文字列。 |
| RECT (矩形) | 矩形の各辺の座標を表す。常に8バイトで構成される。 |
| リソースタイプの名前(実際の名前) | 概要 |
|---|---|
| ALRT(アラート) | アプリケーションのアラートボックスの形状を定義する |
| APPL(アプリケーション) | アプリケーションの情報を格納する |
| BNDL(バンドル) | アプリケーションで扱えるファイルタイプのアイコンなどを定義する |
| cicn(カラーアイコン) | データで利用するカラーアイコンを定義する |
| clut(カラーパレット) | データで利用する色を定義する |
| CNTL(コントロール) | ウィンドウに配置する部品の詳細を定義する |
| CODE(コードリソース) | プログラムの機械語を格納する |
| CURS(カーソル) | モノクロのカーソルの形状を定義する |
| DITL(ダイアログアイテムリスト) | ウィンドウの部品を定義する |
| DLOG(ダイアログ) | アプリケーションのダイアログボックスの形状を定義する |
| FREF(ファイル参照) | アプリケーションで扱えるファイルタイプを定義する |
| hfdr(アイコンバルーンヘルプ) | Finderで、ファイルにカーソルを重ねた際に表示させるバルーンヘルプの内容や形式の定義 |
| icl8(8ビットアイコンリスト) | Finderで表示するアイコンを定義する |
| icns(32ビットアイコンリスト) | Finderで表示する大型アイコンを定義する |
| ICON(アイコン) | データで利用するモノクロアイコンを定義する |
| kind(ファイル概要) | ファイルタイプの概要を定義する |
| MBAR(メニューバー) | アプリケーションのメニューバーとメニューを定義する |
| MDEF(メニュー定義) | アプリケーションのメニューを定義する。カラーパレットのような複雑な形状のメニューも定義できる |
| MENU(メニュー) | アプリケーションのメニュー項目を定義する |
| MooV(ムービー) | QuickTimeムービーを格納する |
| open(オープン) | アプリケーションが開けるファイルタイプを定義する |
| PICT(ピクチャ) | ファイルに含まれているPICT画像を格納する |
| PREF(プレファレンス) | アプリケーションの環境設定を記録する |
| snd (サウンド) | ファイルで利用するサウンドを格納する |
| STR (文字列) | ファイルで利用する文字列と16進データを格納する |
| STR#(文字列リスト) | ファイルで利用する文字列を複数格納する |
| styl(スタイル) | テキストの書体や文字の色、大きさといったスタイル情報を定義する |
| TEXT(テキスト) | テキストを格納する |
| TMPL(テンプレート) | リソースデータのフォーマットを定義する |
| vers(バージョン) | そのファイルのバージョンや使用する地域を定義する |
| WDEF(ウィンドウ定義) | アプリケーションのウィンドウを定義する。不定形ウィンドウなども定義できる |
| WIND(ウィンドウ) | アプリケーションのウィンドウの形状を定義する |
This article is licensed under the GNU Free Documentation License.
It uses material from the
"リソースフォーク".
Home Page • arts • business • computers • games • health • hospitals • home • kids & teens • news • physicians • recreation• reference • regional • science • shopping • society • sports • world