Palm Programmer's Laboratory
Palm OS Programmer's Companion Volume I/7-1
7-1 拡張サポート
Palm OS 4.0 より(注1)、オプションとしてのシステム拡張のセットが標準メカニズムとして提供されており、Palm OS アプリケーションはこれによって様々な Palm ハンドヘルドの拡張機能を利用することができます。この機能はハンドヘルドのメモリや I/O を増やすだけでなく、他の Palm ハンドヘルドや Palm OS 以外で動作しているデバイスとのデータ交換を促進します。ここでの Palm OS 以外のデバイスには、デジタルカメラ、デジタルオーディオプレイヤー、デスクトップまたはラップトップコンピュータなどが含まれます。
- 注1
- Palm OS 3.5 で動作する Sony CLIE ハンドヘルドでは、これらの拡張のバイナリ互換バージョンが動作します。HandEra 製の Palm OS 3.5 ハンドヘルドでも、いくつかの制限付きでこれらの拡張をサポートしています。
プライマリストレージとセカンダリストレージ
全ての Palm ハンドヘルドにはプライマリストレージ ―― 長期記憶にも一時記憶にも使われる直接アクセス可能なストレージ ―― を持っています。これには不揮発性のユーザーデータやアプリケーションを保持するのに使用されるストレージRAM、および作業領域として使われる一時的なアロケーションのためのダイナミックRAMが含まれます。
ほとんどのハンドヘルドでは、プライマリストレージは全てデバイス本体に内蔵されています。しかし、Palm OS のメモリアーキテクチャはデバイスをその内蔵メモリに制限しません。デバイスはストレージRAMを追加できるようにデザインできます。Handspring 社の製品はこの方法でストレージを追加できます。Springboard スロットに挿入されるメモリモジュールは、Palm OS アプリケーションからは完全にアドレッシング可能な追加のストレージ RAM に見えます。
対照的に、セカンダリストレージは最初からアドオンとしての不揮発性ストレージとしてデザインされています。特定の実装に制限されてはいないものの、多くのセカンダリストレージメディアは、
- 拡張スロットからいつでも抜き挿しできます。
- Secure Digital (SD)メモリカード、MultiMedia (MMC) カード、コンパクトフラッシュ、Sony の Memory Stick など、サードパーティ製の標準をベースにしています。
- シリアルインターフェースを備えており、データにビット、バイト、およびブロック単位でアクセスできます。
アプリケーションはプライマリストレージに対して、ダイナミックRAMのほとんどの場合はダイレクトに、あるいはデータマネージャやリソースマネージャを介してアクセスします。しかし、セカンダリストレージにアクセスするには、アプリケーションは拡張マネージャと VFS マネージャを使用します。これらのマネージャはシリアル拡張アーキテクチャを可能な限り広範囲にサポートするようデザインされています。
拡張スロット
多くの Palm ハンドヘルドに見られる拡張スロットはメーカーによって異なっています。SD/MMC カードに対応しているものもあれば、メモリースティックやコンパクトフラッシュに対応しているものもあります。ハンドヘルドが持つことのできる拡張スロットの数には制限がないことに注意して下さい。
拡張テクノロジーを使用することによって、ハンドヘルドは様々な拡張カードを使用できるようになります。
- ストレージカードはセカンダリストレージとして使えますし、アプリケーションやデータを保存しておくのにも使えます。また、特殊な目的としてはバックアップメカニズムとして使用することもできます。
- ROM カードは専用のアプリケーションとデータを保持します。
- I/O カードはハンドヘルドの I/O 機能を拡張します。例えばモデムは有線アクセスを提供し、Bluetoothトランシーバはワイヤレス機能を追加します。
- “コンボ”カードは I/O 機能に加えてストレージまたは ROM を提供します。
ユニバーサルコネクタ
最近の Palm ハンドヘルドには、HotSync クレードルに接続するユニバーサルコネクタを備えているものがあります。このコネクタは、ハンドヘルドをスナップオン I/O デバイスに接続するのにも使用できます。このコネクタ専用の特別なスロットドライバにより、コネクタのシリアル部分を使ってハンドヘルドと I/O デバイス間の通信が可能になります。この“プラグアンドプレイ”スロットドライバはスロット内のカードのような周辺機器として機能し、周辺機器が接続された場合にはカード挿入通知も発行します。
ユニバーサルコネクタのスロットドライバはスナップオン周辺機器をスロット内のカードのように見せるため、少なくともアプリケーション開発者の視点からはそれらの周辺機器を拡張カードのように扱うことができます。この章の残りの部分で I/O カードについては説明する場合、“拡張カード”という表現は“拡張カード”および“プラグアンドグレイ周辺機器”の両方を指します。