Columbia AppleTalk Package (CAP) について
Columbia
AppleTalk Package(CAP)は、
UNIXおよび
Unix系オペレーティングシステム(OS)上で
AppleTalkプロトコルを実装するためのソフトウェアです。また、このソフトウェアで用いられた
ファイル名のエンコーディング方式も指します。CAPは、
コロンビア大学で開発されたオープンソースソフトウェアでしたが、現在はサポートが終了しています。
ソフトウェアとしてのCAP
CAPを
UNIXマシンにインストールすることで、そのマシンをMacintoshの
ファイルサーバやプリントサーバとして利用することが可能になりました。また、CAPには、
UNIX側に`timelord`、Macintosh側に`tardis`というソフトウェアをインストールすることで、
UNIXマシンを時刻同期サーバとして機能させる機能も備わっていました。これらのソフトウェア名は、英国のテレビドラマ「
ドクター・フー」に由来しています。
CAPは、
AppleTalkの主要なプロトコルであるDDP、RTMP、NBP、ZIP、ATP、PAP、ASP、AFPを実装していました。一般的な
UNIXマシンはRS-422ポートを持たず、
イーサネットポートのみを搭載していたため、
イーサネット上で
AppleTalkを実装するEtherTalkが利用されました。EtherTalkが利用できない環境では、IP上で
AppleTalkをカプセル化するIPTalkが使用されました。さらに、後期にはAFP over TCPを可能にするパッチも公開され、
AppleTalkを使用せずにTCP/IP上でファイル共有を行うことができるようになりました。
CAPはmacOSが登場する前にサポートが終了しており、AFP 2.xまでの機能しか利用できません。現在では、同等の機能を提供するnetatalkがAFP 3.xをサポートし、継続的に開発が行われています。
CAPエンコーディング
Mac OS 9までのMac OSでは、
ファイル名の
文字コードは各言語版ごとに異なっていました。英語版ではMacRoman、日本語版では
MacJapanese、韓国語版ではMacKoreanといった具合です。これらの
文字コードは
UNIX上の
ファイルシステムで使用される
文字コードとは異なるため、CAPでは8
ビットの文字を「:」+「16進数」の形式でエンコードする方式が採用されました。
しかし、現代のWindows、Mac OS、
UNIXでは
ファイル名に
Unicode(
UTF-16、
UTF-8)が広く使用されるようになったため、CAPエンコーディングの必要性は低下しています。
エンコーディング方法の詳細
例えば、MacRomanにおける「ä」(aウムラウト)の
文字コードは16進数で0x8aなので、「:8a」とエンコードされます。一方、2バイト
文字コードである
MacJapaneseでは、1バイト目と2バイト目がそれぞれ個別に処理されます。「人」の
文字コードが16進数で0x90 0x6cである場合、1バイト目は8
ビットなので「:90」とエンコードされ、2バイト目は7
ビットなのでエンコードされずに
ASCIIの「l」となり、結果として「:90l」とエンコードされます。
このエンコーディング方法は、CAPのサポートが終了した現在でも、様々な場面で利用されています。
sambaでの実装
samba 2.xでは、CAPとHEXのエンコーディング方式が利用可能でした。CAPはCAP互換のエンコーディングであり、HEXは2バイト目も必ず16進数にするエンコーディングです。例えば、CP932の「人」はHEXでは「:90:6c」と表現されます。
samba 3.xではCAPのみがサポートされ、HEXのサポートは終了しましたが、HEXをサポートするためのパッチは存在します。
netatalkでの実装
netatalk 1.xはCAPをサポートしていたため、samba 2.xとnetatalk 1.xの間で
ファイル名を共通に扱うことができました。ただし、CP932と
MacJapaneseの間で異なる
機種依存文字は正しく処理できませんでした。
netatalk 2.xでは、1.xとの互換性を保つためにCAPを扱うことができますが、実際には実装が追いつかず、HEXエンコーディングとして処理されるため、2バイト文字ではnetatalk 1.xとの互換性がありません。
カーネルでの実装
Linuxでは、`hfs.o`や`hfs.ko`といったカーネルモジュールを使用することでHFS
ファイルシステムをマウントすることができます。この際、
ファイル名はCAP形式で扱われます。このCAP形式の
ファイル名をsambaやnetatalk 1.xで公開することで、
Microsoft WindowsやMac OSからでも
ファイル名を正しく扱うことが可能となります。
外部リンク
CAPはサポートが終了していますが、以下のftpサイトから現在でも入手可能です。
ftp://munnari.oz.au/mac/ - 現在も入手可能
関連項目
AppleTalk
Apple Filing Protocol
IPTalk (通信)