(57)【要約】デバイスに特権モードフックの動的な登録のためのシステム。システムは特権モードおよび非特権モードを含む少なくとも2つの動作モードを含んでいるデバイスに機能を動的に登録する方法を含む。方法は機能へ識別子を写像するデータ構造に利用可能なスロットを識別し、スロットに機能と関連したポインターを格納することを含む。方法はさらに、スロットと関係した識別子を検索し、識別子を非特権アプリケーションにアクセス可能にすることを含む。【選択図】      図１
2007510237.tif 000002
【特許請求の範囲】
【請求項１】
特権モードおよび非特権モードを含む少なくとも2つの動作モードを含んでいるデバイスに機能を動的に登録する方法であって、
機能へ識別子を写像するデータ構造に利用可能なスロットを識別し、
スロットに機能と関連したポインターを格納し、
スロットと関係している識別子を検索し、
識別子を非特権アプリケーションにアクセス可能にすることを含む方法。
【請求項２】
アクセス可能にするステップは、非特権アプリケーションによって判読可能なメモリに識別子を格納することを含む請求項1の方法。
【請求項３】
データ構造は機能へ識別子を写像するテーブルである請求項1の方法。
【請求項４】
識別子はテーブルへの索引である請求項3の方法。
【請求項５】
デバイスは無線デバイスである請求項1の方法。
【請求項６】
デバイス初期設定中に登録を行なうことをさらに含む請求項1の方法。
【請求項７】
特権モードおよび非特権モードを含む少なくとも2つの動作モードを含んでいるデバイスに機能を動的に登録するための装置であって、
機能へ識別子を写像するデータ構造に利用可能なスロットを識別する論理と、
機能と関連したポインターをスロットに格納する論理と、
スロットと関係している識別子を検索する論理と、
識別子を非特権アプリケーションにアクセス可能にする論理とを含む装置。
【請求項８】
識別子をアクセス可能にする論理は、非特権アプリケーションによって判読可能なメモリに識別子を格納する論理を含む請求項7の装置。
【請求項９】
データ構造は機能へ識別子を写像するテーブルである請求項7の装置。
【請求項１０】
識別子はテーブルへの索引である請求項9の装置。
【請求項１１】
デバイスは無線デバイスである請求項7の装置。
【請求項１２】
デバイス初期設定中に登録を行なう論理を含む請求項7の装置。
【請求項１３】
特権モードおよび非特権モードを含む少なくとも2つの動作モードを含んでいるデバイスに機能を動的に登録するための装置であって、
機能へ識別子を写像するデータ構造に利用可能なスロットを識別する手段と、
機能と関連したポインターをスロットに格納する手段と、
スロットと関連した識別子を検索の手段と、
識別子を非特権アプリケーションにアクセス可能にする手段とを含む装置。
【請求項１４】
識別子をアクセス可能にする手段は、非特権アプリケーションによって判読可能なメモリに識別子を格納する手段を含む請求項13の装置。
【請求項１５】
データ構造は機能へ識別子を写像するテーブルである請求項13の装置。
【請求項１６】
識別子はテーブルへの索引である請求項15の装置。
【請求項１７】
デバイスは無線デバイスである請求項13の装置。
【請求項１８】
デバイス初期設定中に登録を行なう手段をさらに含む請求項13の装置。
【請求項１９】
デバイス中のプロセッサによって実行されるとき、デバイスに機能を動的に登録するように作動する命令を含むコンピュータ可読媒体であって、デバイスは特権モードおよび非特権モードを含む少なくとも2つの動作モードを含んでおり、
機能へ識別子を写像するデータ構造の中に利用可能なスロットを識別するための命令と、
機能と関連したポインターをスロットに格納するための命令と、
スロットと関係している識別子を検索するための命令と、
識別子を非特権アプリケーションにアクセス可能にするための命令とを含むコンピュータ可読媒体。
【請求項２０】
アクセス可能にするための命令は、非特権アプリケーションによって判読可能なメモリに識別子を格納するための命令を含む請求項19のコンピュータ可読媒体。
【請求項２１】
データ構造は機能へ識別子を写像するテーブルである請求項19のコンピュータ可読媒体。
【請求項２２】
識別子はテーブルへの索引である請求項21のコンピュータ可読媒体。
【請求項２３】
デバイスは無線デバイスである請求項19のコンピュータ可読媒体
【請求項２４】
デバイス初期設定中に登録を行なうための命令をさらに含む請求項19のコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般にデバイスの効率的な動作に係り、特にデバイスに特権モードフックの動的な登録のためのシステムに関する。
【背景技術】
【０００２】
技術の進歩は家庭、オフィス、及び個人使用の様々なデバイスの発展をもたらしてきた。例えば、デスクトップ、ノートブック、及びタブレット・コンピュータといったコンピュータ・システムは、家庭もしくはオフィス環境における使用に関して強力なツールとなった。無線電話、携帯情報機器（ＰＤＡ）、及びページング・デバイスのような個人用デバイスもまた強力になり、今や広く使用されている。
【０００３】
多くのデバイスは今やＵＮＩＸ（登録商標）、ＬＩＮＵＸ（登録商標）といったオペレーティング・システム、または同様のオペレーティング・システムを動かす複雑なハードウェア及びソフトウェアを含んでいる。一般に、これらのオペレーティング・システムは多数の動作モードを提供する。例えば、大部分のシステムは特権及び非特権動作モードを提供する。特権動作モードにおいて実行するプログラムは無制限にメモリ及びシステムリソースにアクセスすることが可能である。非特権モードにおいて実行するプログラムはあるメモリ領域及び／またはデバイス・システムにアクセスすることを制限される。この構成は重要なメモリまたはデバイス機能に保護レベルを提供する。例えば、非特権モードで第三者のアプリケーションを実行することによって、大切なメモリ領域及びデバイス機能は不許可アクセスから保護される。また、そのような配置はシステムが実行の間に欠陥を分離することを可能にする。
【０００４】
時間とともに、これらのシステムはデバイスとデバイス・ユーザーの増加する必要を満たすためにより精巧になった。例えば、機能モジュール、すなわち機能は様々なシステムサービスを提供するために使用される。デバイスがより複雑になりかつ特徴が豊富になるとともに、これらの特徴に関連した機能の数および複雑さはさらに増加した。
【０００５】
不運にも、従来方式は支持機能モジュールに関してはいくつかの制限がある。例えば、従来方式はアクセス機能に使用される限られた数のフックを有する。例えば、システムはアクセス機能に使用されることができる限られた数のトラップを持っている。更に、トラップの定義はデバイス上で走らせる2進法で実行可能にコンパイルされ、それはシステムの柔軟性に対する固有の制限をもたらす。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
したがって、必要なことは、特権機能へフックを動的に登録する方法を提供するシステムである。システムは機能がシステム初期化中に登録されることを可能にすべきであり、それにより柔軟性を提供し、トラップ定義を実行可能にコンパイルする従来方式に固有の潜在的なバージョニング問題を回避する。システムはさらに制限なく多くの機能が登録されることを可能にするべきであり、それにより機能への利用可能なトラップの定数を関連づける従来方式に関連した制限を克服する。
【課題を解決するための手段】
【０００７】
1つ以上の実施例において、システムはデバイスに特権モードフックの動的な登録を提供するように作動する方法および/または装置を含む。一実施例では、異なるプログラムモジュールがシステム初期化中にフックをインストールする。それがインストールされたとき、機能モジュールはそれぞれ識別子を割り当てられ、また、モジュールは非特権アプリケーションによって判読可能な変数にこの識別子を保存する。非特権モードで実行するアプリケーションから呼び出されたとき、モジュールは変数からそのフック識別子を検索し、フックを実行する。これは、実行可能な2進へコンパイルされるトラップの定数に機能を関連づける従来方式に固有の潜在的なバージョニング問題を回避する。
【０００８】
一実施例では、方法は特権モードおよび非特権モードを含む少なくとも2つの動作モードを含んでいるデバイスに機能を動的に登録するために提供される。方法は、機能へ識別子を写像するデータ構造に利用可能なスロットを識別し、スロットに機能と関連したポインターを格納することを含む。方法はさらに、スロットと関係している識別子を検索し、識別子を非特権アプリケーションにアクセス可能にすることを含む。
【０００９】
別の実施例では、装置は特権モードおよび非特権モードを含む少なくとも2つの動作モードを含んでいるデバイスに機能を動的に登録するために提供される。装置は、機能へ識別子を写像するデータ構造に利用可能なスロットを識別する論理、およびスロットに機能と関連したポインターを格納する論理を含む。装置は、さらにスロットと関係している識別子を検索する論理、および識別子を非特権アプリケーションにアクセス可能にする論理を含む。
【００１０】
別の実施例では、装置は特権モードおよび非特権モードを含む少なくとも2つの動作モードを含んでいるデバイスに機能を動的に登録するために提供される。装置は、機能へ識別子を写像するデータ構造に利用可能なスロットを識別する手段、およびスロットに機能と関連したポインターを格納する手段を含む。装置は、さらにスロットと関係している識別子を検索する手段、および識別子を非特権アプリケーションにアクセス可能にする手段を含む。
【００１１】
別の実施例では、デバイス中のプロセッサによって実行されたとき、デバイスに機能を動的に登録するように作動する命令を含んでいるコンピュータ可読媒体が提供される。デバイスは特権モードおよび非特権モードを含む少なくとも2つの動作モードを含んでいる。コンピュータ可読媒体は、機能へ識別子を写像するデータ構造に利用可能なスロットを識別するための命令、およびスロットに機能と関連したポインターを格納するための命令を含む。コンピュータ可読媒体は、さらにスロットと関係している識別子を検索するための命令、および識別子を非特権アプリケーションにアクセス可能にするための命令を含む。
【００１２】
本発明の他の形態、利点、及び特徴は下記で説明される図面の簡単な説明、発明の詳細な説明、及び請求項の記述から明らかになるであろう。
【００１３】
ここに述べられた実施例の前述の形態及び付随の利点は、付属図面と関連して取られるとき以下に始まる詳細な記述からさらに明らかになるであろう。
【発明を実施するための最良の形態】
【００１４】
次の詳細な記述は、デバイスに特権モードフックの動的な登録を提供するように作動する動的な登録システムについて記述する。例えば、システムはデバイス初期化処理中、または機能が呼び出される前に、機能フックが登録されることを可能にするように作動する。一実施例では、登録処理は、特権および非特権アプリケーションによって判読可能である静的変数に格納される機能識別子を生成する。識別子を得ることによって、特権または非特権アプリケーションは機能によって提供されるサービスにアクセスすることができる。各登録された機能がそれ自身インターフェースを通したアクセスであるので、システムは、従来方式のようにトラップの定数と関連している機能に関連した問題を克服する。
【００１５】
1つ以上の実施例では、登録システムは、デバイスの特定のリソースのための一般化された呼を提供するような、デバイスの動作を単純化するために使用される、デバイス上で実行するランタイム環境(即ち、オペレーティングシステム)で対話する。そのような１つのランタイム環境はカリフォルニア州サンディエゴ市のＱＵＡＬＣＯＭＭ社によって開発された無線のためのバイナリ・ランタイム環境（ＢＲＥＷ(登録商標）)ソフトウェア・プラットフォームである。下記の説明はＢＲＥＷ(登録商標）ソフトウェア・プラットフォームのようなランタイム環境を実行するデバイスを述べる。しかしながら、1つ以上の実施例では、登録システムは、生成システムまたは制御または監視プログラムを含んでいる様々なデバイスで、特権機能フックの速くて効率的な登録を提供する他のタイプのランタイム環境で使用するのに適している。例えば、デバイスはデスクトップ・コンピュータ、ノートブック・コンピュータ、携帯用コンピュータ、及び無線電話、ポケットベル、ＰＤＡ、電子メール・デバイス、タブレット・コンピュータ、または他形式の計算デバイスといった可搬式デバイスを含むが、それに限定されない。
【００１６】
図1は、デバイス102に特権モードフックの動的な登録を提供するように作動する動的な登録システム100の一実施例を示す。システム100は、ホームコンピュータ、オフィスコンピュータまたは、無線電話、PDAあるいは他のタイプの計算デバイスといったパーソナルデバイスの一部であってもよい。
【００１７】
一実施例では、デバイス102は少なくとも2つの動作のモードを提供するランタイム環境104(即ち、ＢＲＥＷ(登録商標))、すなわち非特権モード(NP)および特権モード(P)を含んでいる。動作の非特権モードは、デバイス上で作動するアプリケーションのアクセスを制限し、かつ故障検出を提供するために使用される。例えば、非特権モード中に作動するアプリケーションは、選択されたメモリ領域に制限され、デバイスレジスタあるいは他のリソースへのアクセスを与えられないかもしれない。動作の特権モードは、このモードの下で作動するアプリケーションが制限なしにメモリあるいはデバイスリソースにアクセスすることを可能にする。
【００１８】
システム初期化中に、機能106は機能106からサービスを得るデバイス上で実行するアプリケーションを許可するために動的に登録される。機能と関連した機能ハンドラー108はハンドラー・データ構造112に利用可能なスロット110を見つけるように作動する。ハンドラー108は利用可能なスロット110に機能106を指す機能ポインターを格納する。スロット110はハンドラー108によって検索され、非特権アプリケーションによってアクセス可能なメモリあるいは他の領域に格納される関連する識別子(即ち索引)を持っている。例えば、一実施例では、識別子は非特権モードのアクセス可能な静的変数114に格納される。静的変数114は非特権アプリケーション116によって判読可能である。したがって、機能106はデバイス上で実行するアプリケーションによって使用のために登録される。同じ処理は機能の1つあるいは任意の数を登録するために使用される。各機能はハンドラー・データ構造112で利用可能なスロットを使用し、例えば非特権アプリケーションによって判読可能な静的変数にその関連する識別子を格納する。
【００１９】
デバイス動作中に、アプリケーション116はデバイス102上で実行し、デバイス102に情報、機能および/またはサービスを供給する。例えば、1つのタイプのアプリケーションは、映画、ニュースあるいは他のタイプのマルチメディアコンテンツを表示するデバイス102上で作動する視聴アプリケーションかもしれない。
【００２０】
アプリケーション116がデバイス102上で実行する場合、それは希望の機能性を提供するためにランタイム環境の下で走らされる。アプリケーション116がサービスを得る機能106にアクセスする必要がある場合、アプリケーション116は静的変数114から識別子を検索し、機能106にアクセスするためにそれを使用する。
【００２１】
図2は動的な登録システムの一実施例を含むデバイス102の機能ブロック図を示す。デバイス102は、内部データバス204に接続された処理論理202およびデバイスリソース206を含む。デバイスリソース206はハードウェア、ソフトウェア、メモリ、論理および/または他のリソースを含み、デバイスが様々な内部および外部リソース、デバイスまたはシステムに接続することを可能にする。また、コードメモリ208およびデータ・メモリ210が処理論理202に接続される。
【００２２】
1つ以上の実施例では、処理論理202はCPU、プロセッサ、ゲート・アレイ、ハードウェア論理メモリ素子、仮想計算機、ソフトウェア、I/Oインターフェース/またはハードウェアとソフトウェアの任意の組合せを含む。したがって、処理論理202は一般にマシン判読可能な命令を実行する論理を含む。例えば、命令はフロッピー(登録商標)ディスク、CDROM、フラッシュ・メモリのようなコンピュータ可読媒体、あるいはデバイスリソース206によってデバイス102に接続する他のコンピュータ可読媒体からデバイス102にロードされるかもしれない。別の実施例では、命令はネットワーク・サーバーのようなネットワークリソースから、あるいはデバイスリソース206によってデバイス102に接続する他のタイプのネットワークリソースからデバイス102へダウンロードされるかもしれない。その命令は、処理論理202によって実行されるとき、ここに記述されるような動的な登録システムの1つ以上の実施例を提供する。
【００２３】
一実施例では、コードメモリ208はRAM、ROM、FLASH、EEROM、他の適切なタイプのメモリ、あるいはそれの組合せを含む。コードメモリ208は、メモリ管理ユニット216の動作によって、特権領域(P)212および非特権領域(NP)214へ分割される。MMU 216は、非特権コードがコードメモリ208の選択された領域に対してアクセス権を制限したように、非特権プログラムコードの動作を制限するように作動する。
【００２４】
特権領域212は、実行されたときメモリあるいはデバイス102の他のシステムに無制限にアクセスするプログラムコードを含んでいる。例えば、特権コード領域212は動作システムコード(OS)、ユーザ・インターフェース・コード(UI)、機能ハンドラー108および特権機能コード106を含む。特権コード領域212で示されるコードは、デバイス102に含まれているかもしれない特権コードのタイプの代表である。特権コード領域212がデバイス102で実行するための他のタイプの特権コードを含むことはまた可能である。
【００２５】
非特権コード領域214は、実行されたとき選択されたメモリ領域のみアクセスするように制限されたプログラムコードを含んでいる。例えば非特権コード領域214はOSコードおよびアプリケーション・コード(App-NP)116を含む。
【００２６】
一実施例では、データ・メモリ210は特権領域216および非特権領域218を含む。特権領域216は、特権プログラムコードによってのみアクセスされるデータ領域を含む。例えば、特権データ領域216は、OS、UIよって使用されるデータおよび機能106によって使用される機能データを含む。データ領域216はまたハンドラー・データ構造112を含む。
【００２７】
非特権データ領域218は、非特権プログラムコードによってアクセスされるデータ領域を含んでいる。例えば、非特権データ領域218は、非特権OSおよびApp-NP 116によって使用されるデータを含む。データ領域218はまた、機能106と関係付けられた識別子を保持する静的変数114を含む。MMU 220は、非特権および特権データ領域へのアクセスを制限するように作動する。例えば、非特権アプリケーションは、特権データ領域216中のデータ、または非特権データ領域218中の他の非特権アプリケーションに属するデータへのアクセスを制限される。
【００２８】
デバイス102の構成が単に1つの記述された登録システムの実施にふさわしい構成であることは注目されるべきである。本発明の範囲内の他のデバイス構成、機能要素あるいは素子構成を使用して、登録システムの1つ以上の実施例を実施することはまた可能である。
【００２９】
デバイス102の動作中に、動的な登録システムは初期化処理の間に1つ以上の機能を登録する。例えば一実施例において、初期化処理中にすべての機能が登録されるまで、機能は一つずつ登録される。構造112の利用可能なスロットは各機能ごとに決定さ、個々のそれぞれのスロットについての識別子は、それが非特権アプリケーションによって判読されるように、利用可能にされる。
【００３０】
一実施例では、記述された登録システムは、処理論理202によって実行されたときここに記述された機能を提供するコンピュータ可読媒体に格納されたプログラム命令を含む。1つ以上の実施例では、コンピュータ可読媒体はフロッピー（登録商標）ディスク、CD、メモリーカード、FLASHメモリ・デバイス、RAM、ROMあるいは他のタイプのメモリ・デバイスを含む。
【００３１】
図3は、例えばデバイス102のようなデバイスで使用される登録システムの一実施例の動作を例証するフローダイアグラム300を示す。明瞭さのために、フローダイアグラム300は、図2で示されるデバイス102に関して記述されるだろう。デバイスがＢＲＥＷ(登録商標)ランタイム環境を実行しており、処理論理202が、以下に述べられた機能を行なうためにコードメモリ208に格納されたプログラム命令を実行すると仮定する。
【００３２】
ブロック302では、登録処理はハンドラー・データ構造に利用可能なスロットを見つけることにより始まる。例えば、処理論理202は利用可能なスロットを求めてデータ構造112を探索するためのプログラム命令を実行する。一実施例ではデータ構造112はテーブルであり、テーブル中のエントリーはそれぞれスロットである。各スロットは機能へのアドレスポインターを格納し、また各スロットはテーブル索引のような関連する識別子を持っている。
【００３３】
ブロック304では、利用可能なスロットが見つかった後、登録されるべき機能へのポインターはスロットに格納される。例えば、機能Func 106に対するアドレスポインターは利用可能なスロット110に格納される。
【００３４】
ブロック306では、スロット識別子は非特権アプリケーションによってアクセスを読むために利用可能になる。例えば、スロット識別子は非特権アプリケーションによって判読可能な静的変数に格納される。例えば、変数は、読書き特権が特権アプリケーションに与えられるデータ領域に位置し、読み出し専用の特権は非特権アプリケーションに与えられるかもしれない。
【００３５】
ブロック308では、識別子は特権機能にアクセスするために使用され、特権および非特権アプリケーションのためのサービスを行う。特権機能にアクセスするために識別子がどのように使用されるかの詳細な記述については、読者は「SYSTEM FOR PROVIDING TRANSITIONS BETWEEN OPERATING MODES OF A DEVICE」と題するU.S特許出願(代理人明細書No．030620) を参照され、それはここに引用文献として組込まれる。
【００３６】
プログラム・フロー図300は１つの実施例を例示したものであり、プログラム要素の変更、追加、または再配列が発明の範囲から逸脱することなく行われることは注目すべきである。
【００３７】
従って、動的な登録システムに関する方法及び装置の１つ以上の実施例がここに例示、且つ述べられてきたが、それらの精神または本質的特性から逸脱することなく実施例に対して様々な変更が行われることは理解されるであろう。従って、ここにおける開示及び記述は本発明の範囲の例示であり、限定するものでないことを意図しており、それは請求項において説明される。
【図面の簡単な説明】
【００３８】
【図１】デバイスに特権モードフックの動的な登録を提供するために作動する動的な登録システムの一実施例を示す。
【図２】動的な登録システムの一実施例を含むデバイスのブロック図を示す。
【図３】デバイスで使用される動的な登録システムの一実施例の動作を例証するフローダイアグラムを示す。
【図１】
2007510237.tif 000003
【図２】
2007510237.tif 000004
【図３】
2007510237.tif 000005
【国際調査報告】
2007510237.tif 000006