AppleSingle
出典: フリー百科事典『ウィキペディア(Wikipedia)』
AppleSingleとAppleDoubleは、Mac OS独自のファイルシステムHFS及びHFS+上のファイルを他のファイルシステムと交換する際に、様々なファイル属性(特にリソースフォーク)が欠落するのを防ぐためにApple Computer社(当時)が考案したフォーマットである。バージョン1とバージョン2が存在する。
目次 |
[編集] 概要
Mac OSではひとつのファイルに、データフォーク、リソースフォークという2つのフォークがあり、更に様々なメタデータ(コメント、白黒アイコン、カラーアイコン、ファイル時刻、ファインダ情報等)がある。特にファイル時刻には作成時刻、変更時刻、バックアップ時刻、アクセス時刻がある。ファインダ情報はクリエータとファイルタイプを含んでいる。
これらを扱えるのはHFSやHFS+といったファイルシステムやファイル共有プロトコルのAFPしかない。それ以外のファイルシステムではデータフォーク程度しか扱えない。
AppleSingleは2つのフォークと様々なメタデータを1つのファイルにまとめて保存するフォーマットである。
AppleDoubleは2つのファイルに分離して保存するフォーマットである。1つ目はAppleDouble Data fileといい、データフォークそのものである。2つ目はAppleDouble Header fileといい、データフォーク以外を全て含む。これはAppleSingleからデータフォークを除き、マジックナンバーを変えただけのものである。
[編集] 利点と欠点
Mac OSではデータフォーク以外の情報が必要とされる場合があるため、AppleSingleまたはAppleDoubleで転送及び保存することには大きな利点がある。
Mac OS以外では事情が複雑である。AppleSingleの場合、ファイルが1つであるため情報の欠落がない。しかしながら、AppleSingleを理解するソフトウェアでなければ取り扱う事が出来ない。AppleDoubleの場合、AppleDouble Data fileの方でデータフォークを扱うことが出来る。しかしながら運用に注意しなければAppleDouble Header fileを損失してしまう危惧がある。
[編集] 歴史
初期のバージョン1は、AppleComputer社(当時)の最初のUNIX系OSであるA/UX上のファイルシステムで使うために考案された。
AppleSingleと似たフォーマットにMacバイナリがあり、当時はこちらの方が多用された。しかしながらHFS+の拡張に伴い、Macバイナリでは不十分になってきた。
バージョン2はHFS+の拡張にあわせて1990年に発行された。
[編集] 実装例
Mac OS XがHFS、HFS+、AFP以外のファイルシステム、すなわちUFS、FAT、SMB、NFS、WebDAVといったファイルシステムにファイルを保存する際、AppleDouble バージョン2を用いる。すなわちAppleDouble Data file (データフォーク)を本来のファイル名で保存し、AppleDouble Header fileを「._」を先頭に付けたファイル名で保存する。
Mac OS X 10.3 Panther以降のFinderの機能(BOMArchiveHelper)でZIP圧縮した場合、__MACOSXという名前のフォルダを作ってその中にAppleDouble Header fileをを保存する。ただしコマンドラインの/usr/bin/zipだとデータフォークのみが扱われる。
Mac OS X 10.4 Tiger以降の/usr/bin/tarコマンドでは、AppleDouble Header fileを「._」を先頭に付けたファイル名で保存する。
RFC1740では、主にインターネットメールで使われるフォーマットMIMEでAppleSingle及びAppleDouble バージョン2を扱う方法を定義している。これはMac OS用のメールソフトの多くで実装されている。 AppleSingleのMIME Typeはapplication/applefileを用いる。AppleDoubleの場合、MIME Typeはmultipart/appledoubleを用いてマルチパート化し、AppleDouble Headerの方にapplication/applefileを用いる。 Mac同士でメールをやりとりする分にはなんら問題は生じないが、ほかのOSを相手にするとデータフォーク以外が邪魔になって本来のデータが得られなくなってしまう場合が多い。そのため、Mac以外とやりとりする際はデータフォークのみを送信するか、multipart/appledoubleを用いるのが望ましいだろう。
UNIX系OSでAFPサーバ機能を提供するnetatalkでは、AppleDoubleを用いている。AppleDouble Data file (データフォーク)を本来のファイル名で保存し、.AppleDoubleなるディレクトリを作成してその中に同じファイル名でAppleDouble Header fileを保存する。netatalk 1.xではバージョン1を用いたが、netatalk 2.xではバージョン2がデフォルトとなった。
[編集] 外部リンク
- AppleSingle and AppleDouble format internals (pdf) - version 1
- AppleSingle/AppleDouble Formats for Foreign Files Developer's Note (pdf) - version 2
- RFC 1740 MIME Encapsulation of Macintosh files - MacMIME
- Mac OS X: Apple Double フォーマットは接頭辞に「._ 」を持つファイル名を作成します
[編集] 関連項目
- Macバイナリ
- BinHex