Palm OS Programmer’s Companion Volume I/7-2 - project-enigma

Palm OS Programmer’s Companion Volume I/7-2

>> Site top >> Misc >> In my palm >> Palm開発ドキュメントの和訳 >> Palm OS Programmer’s Companion Volume I >> Palm OS Programmer’s Companion Volume I/7-2

最終更新日付:2014/01/01 00:00:00

← 1 節に戻る ↑7 章トップへ 3 節に進む →

7-2 アーキテクチャの概要

 

図 7.1 にPalm OSの拡張アーキテクチャを示します。この拡張アーキテクチャは、アプリケーションや Palm OS の他の部分に一貫した API のセットを提供しつつ複数のファイルシステムと様々な物理的拡張をサポートできるよう、十分に柔軟にデザインされています。以下のセクションでは、Palm OS の拡張アーキテクチャの主要コンポーネントについて下層から順に説明します。すなわち、スロットドライバ、ファイルシステム、VFS マネージャ、そして拡張マネージャです。

図 7.1 Palm OS の拡張アーキテクチャ

 

 

スロットドライバ

スロットドライバは Palm OS の標準的なシェアードライブラリで、タイプは sysFileTSlotDriver ('libs') です。これはハードウェアへのダイレクトアクセスをカプセル化し、拡張マネージャと(オプションで)ファイルシステムライブラリの標準的なサービスを提供します。新しいタイプのハードウェア拡張のサポートの追加は、通常そのハードウェアのためのスロットドライバを作成するだけです。図 7.1 に示すとおり、アプリケーションは通常スロットドライバと直接やりとりすることはありません。

それぞれの拡張スロットには、対応するスロットドライバーがあります。スロットは一意なスロット参照番号で識別されます。この番号は拡張マネージャによって付与されます。拡張カード自身は個別に番号付けられません。アプリケーションは通常カードが挿入されたスロットを参照します。ただし、スロットにはカードが入っている場合もあれば入っていない場合もあること、およびアプリケーションの動作中でもカードの抜き挿しが可能であることには注意が必要です。

NOTE

"カード番号"は Palm OSのメモリマネージャの用語です。"スロット参照番号"と混同しないようにして下さい。

現在の実装では、スロットあたり1ボリュームのみをサポートしています。

 

ファイルシステム

Palm OS の拡張アーキテクチャは、Palm OS上の全てのファイルシステムの実装に共通のインターフェースを定めています。このインターフェースはファイルシステムを操作するための API の完全なセットで構成されています。この操作には、名前付きのボリューム上にあるファイルおよびディレクトリのオープン、クローズ、読込み、書込み、削除が含まれます。

ファイルシステムの実装は sysFileTFileSystem ('libf') タイプのシェアードライブラリにパッケージされます。これらのライブラリは VFAT、HFS、あるいは NFS といった特定のファイルシステムをサポートするモジュール型のプラグインです。Palm OS の拡張アーキテクチャはライブラリをインストールすればいつでも複数のファイルシステムをサポートできるようになっています。通常、VFAT ファイルシステムの実装はサポートされています。

VFAT はあらゆるタイプのフラッシュメモリカードの業界標準です。このファイルシステムにより、デスクトップとその他のデバイス間でデータやアプリケーションを簡単に移動させることができます。Palm OS 4.0 に含まれる VFAT ファイルシステムライブラリはセカンダリストレージメディア上の VFAT ファイルシステムをネイティブサポートします。FAT および VFAT ファイルシステムを認識してマウントし、認識できないメディアやファイルシステムの破損したメディアを再フォーマットすることができます。

VFAT ファイルシステムは Unicode/UCS2 フォーマットの格納のために長いファイル名を必要とするため、標準 VFAT ファイルシステムライブラリは UCS2 と Shift-JIS( Palm OS 標準のマルチバイト文字エンコーディング )の間の変換、およびPalm/Latin エンコーディングをサポートします。

 

VFS マネージャ

VFS(Virtual File System)マネージャは、アプリケーションが様々なメディア上の様々なファイルシステムにアクセスするための統一された API を提供します。アプリケーションが実際のファイルシステムを気にしなくてもいいようにファイルシステムを抽象化します。VFS マネージャにはファイル、ディレクトリ、およびボリュームを操作するための APIが含まれています。

NOTE

VFS マネージャの大半の関数はどのようなアプリケーションからでも使用できますが、一部の関数はスロットドライバとファイルシステムからの使用のみを意図しています。また、主としてシステムによる使用のためにデザインされ、サードパーティ製アプリケーションからの使用を想定していない関数もあります。

 

VFS マネージャとデータマネージャ、およびファイルストリーミング API

VFS マネージャが Palm OS に追加されたことにより、アプリケーションがユーザーデータを保存・取得するための方法は3つになりました。

Palm OS アプリケーションは状況に応じて適切な API を使用するべきです。データマネージャはストレージヒープ用の効率的なストレージマネージャですが、これを使用すべきなのは外部メディアへのアクセスがまったく必要ない場合に限られます。相互運用性とファイルシステムへのアクセスが必要な場合は VFS API を使用して下さい。ただし、VFS マネージャにはデータアクセスにおける全ての読み書きをメモリにバッファリングするというオーバーヘッドがあるため、明確にこの機能を必要とするアプリケーションだけが VFS マネージャを使用するべきです。

データマネージャとリソースマネージャ、およびファイルストリーミングAPIに関する詳細は、「6 ファイルとデータベース」を参照して下さい。VFSマネージャが提供するAPIの詳細については、Palm OS Programmer’s API Reference の「58 仮想ファイルシステムマネージャ」を参照して下さい。

 

拡張マネージャ

拡張マネージャは Palm OSハンドヘルド上のスロットドライバを管理するソフトウェアレイヤーです。サポートされる拡張カードの種類にはメモリースティックとSDカードが含まれていますが、それに制限されるわけではありません。拡張マネージャはこれらの拡張カードを直接サポートするわけではなく、下位レベルのスロットドライバとファイルシステムライブラリの助けにより、これらのメディアタイプをサポートするアーキテクチャと上位のAPIセットが提供されるかたちになります。

拡張マネージャは、

NOTE

拡張マネージャが提供するその他の関数には、スロットドライバやファイルシステムから使用され、通常サードパーティ性のアプリケーションからは使用されないものがあります。

拡張マネージャが提供する APIの詳細については、Palm OS Programmer’s API Reference の「33 拡張マネージャ」を参照して下さい。

 

 

 

← 1 節に戻る ↑7 章トップへ 3 節に進む →

 

 


Copyright(C) 2005-2017 project-enigma.
Generated by CL-PREFAB.