« Core 2 Duo搭載MacBookとIntel GMA X3000 | Main | 雑記(2006/11/11) »

2006.11.10

よく勘違いするClassic Mac OSのリソースフォークとMacBinary

Intel Macが普及しつつある現在、Classic Mac OSが稼働できるMacの台数も減っていますが、WikipediaですらリソースフォークMacBinaryを未だに勘違いしている記事を見かけることがあるので

  • リソースフォーク

    リソースフォークはダイアログやアイコンなどのアプリケーション部品や修飾データを格納するためのファイル領域です。
    JPEG、テキスト、バイナリファイルなど、普通の書類ファイルに使われるのはデータフォークと呼ばれる領域に格納されます。

    HFSにおける実装では、データフォークとリソースフォークに個別のアロケーションブロックがアサインされるため、データフォークのみ、リソースフォークのみのファイルの最小ファイルサイズは、1アロケーションブロックですが、両方のフォークを持つファイルは最低でも2アロケーションブロック使用します。

    このリソースフォークの目的ですが、アプリケーションのファイルダイアログ、メッセージ、メニューなどの部品を格納することが主です。
    また、独自定義することができるため、通常のデータファイルにサムネイルや各種メタ情報といった修飾データを持たせることができます。

    アプリケーションによっては、書類のテキスト部分をデータフォーク、画像や文字修飾データをリソースフォークに持っている物があります。
    これは他のアプリで開くとテキスト部分が互換性を持ち、専用アプリで開けば画像や文字修飾情報といったフルのデータが利用できるため、互換性の高い書類情報を作ることが可能です。

  • ファイルタイプとクリエータ

    旧Mac OSではファイルの種類を識別するためにファイルタイプとクリエータと呼ばれる各4バイトの情報を使用しています。
    この情報はファイルシステムの管理領域にファイル名や作成日、変更日といったファイル固有の情報と同じく登録されています。
    ファイルタイプはファイルの種類そのもので、アプリケーションは"APPL"、テキストファイルなら"TEXT"、JPEGファイルなら"JFIF"といった文字列で定義されていて、Win/DOSの拡張子に相当します。

    クリエータはMac独自の概念で、その書類を作成したアプリケーションごとの個別の識別コードです。
    Phothoshop Elements 2.0なら"8ELE"、FireFoxなら"MOZB"というクリエータコードを使用しています。

    WindowsではOS側が拡張子と開くアプリケーションの対応を持っているため、拡張子が同じファイルをダブルクリックすると必ず同じアプリケーションが開きますが、Macでは書類から作成したアプリケーションを見つけることができるため、必ず作成したアプリケーションで開くことができます。
    クリエータはアプリケーション固有の文字列ですから、Appleに登録して重複がないものを使用することになっています。

  • MacBinary形式

    上記のように、Mac OSのファイルでは

    • 31バイトのファイル名 (MS-DOSでは8+3文字まで)
    • ファイルタイプとクリエータの情報
    • データフォークとリソースフォーク
    といった、他のプラットフォームでは使用しない概念があります。
    他のプラットフォームとの互換性確保のため、通常のファイル転送ではデータフォークのみ転送するのですが、Mac用アプリケーションをftpやhttpでダウンロードする場合、リソースフォークやファイルタイプ、クリエータが欠落すると、Mac用アプリケーションとして動作しません。
    他プラットフォームを経由しても失わないようにするためには、Mac OS上でこれらMac固有の情報を一つのファイルにまとめたMacBinaryという形式に変換する必要があります。
    すなわち、MacBinaryはMac OS側でもエンコード、デコードと言った変換作業を必要とするファイル形式です。

といったところをふまえると、以下の箇所は誤りであることがわかるはずです。

  • Macのファイルにはリソースフォークが必ず付与されている

    データフォークのみ、リソースフォークのみのファイルも存在します。

  • ファイルタイプ、クリエータはリソースフォークに保持している

    データフォークのみのファイルにもファイルタイプ、クリエータが付与されていますから、リソースフォークに保持する必要性がありません。

  • MacのファイルはすべてMacBinary形式

    前述の通り、MacBinaryは他プラットフォーム経由でMacのファイル情報も含めたやり取りするための形式です。
    そのため、Mac OS上ではMacBinary形式で保持する必要性はありません、

上記のように、案外勘違いしていることは結構あるのでオリジナルの文献にあたることは重要ですね。

今日の夕飯:だぶれっと チキン生姜焼き + 半ライス ¥900

|

« Core 2 Duo搭載MacBookとIntel GMA X3000 | Main | 雑記(2006/11/11) »

Comments

Post a comment



(Not displayed with comment.)


Comments are moderated, and will not appear on this weblog until the author has approved them.



TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/27186/12627849

Listed below are links to weblogs that reference よく勘違いするClassic Mac OSのリソースフォークとMacBinary:

« Core 2 Duo搭載MacBookとIntel GMA X3000 | Main | 雑記(2006/11/11) »