(57)【特許請求の範囲】
【請求項１】
ユーザ機器をブートするための方法であって、
前記ユーザ機器のデバイスブートを実行することと、
前記ユーザ機器に関連する周辺機器についてのプロファイルが前記ユーザ機器において利用可能であるかどうかを決定することと、
前記周辺機器のうちの１つについてのプロファイルが前記ユーザ機器において利用可能でないが、前記ユーザ機器の外部のロケーションにおいて利用可能であると決定するときに、前記ロケーションから前記周辺機器のうちの前記１つについての前記プロファイルを検索すること、ここにおいて、前記ロケーションが、前記周辺機器のうちの前記１つに関連する製造業者によって管理される、と、
前記検索されたプロファイルに基づいて少なくとも前記周辺機器のうちの前記１つについての前記プロファイルを更新することによって、前記ユーザ機器のための前記周辺機器と関連するドライバとを構成することと、
ハイレベルオペレーティングシステム（ＨＬＯＳ）をブートすることと
を備え、前記構成することは、前記周辺機器の各々に関連する少なくとも１つのドライバに関係する情報を前記ＨＬＯＳに利用可能にし、前記構成することは、前記ＨＬＯＳを前記ブートすることの前に行われる、
方法。
【請求項２】
前記ＨＬＯＳを前記ブートすることの前に、前記ユーザ機器のための前記関連するドライバをプリフェッチすることをさらに備える、
請求項１に記載の方法。
【請求項３】
前記ユーザ機器のための前記周辺機器と関連するドライバとを構成することは、前記ＨＬＯＳを前記ブートすることの前に、前記関連するドライバをアクティブにすることを備える、
請求項１に記載の方法。
【請求項４】
前記構成される周辺機器に関連する中間ドライバを識別することと、
前記ユーザ機器が、前記ＨＬＯＳを前記ブートすることの前に前記周辺機器を使用することを可能にするために、プリＨＬＯＳ動作環境による使用のために前記中間ドライバをロードすることと
をさらに備える、請求項１に記載の方法。
【請求項５】
前記周辺機器と関連するドライバとを構成することは、前記周辺機器と関連するドライバとを自動的に構成することを備える、
請求項１に記載の方法。
【請求項６】
前記周辺機器と関連するドライバとを構成することは、前記周辺機器と関連するドライバとを手動で構成することを備える、
請求項１に記載の方法。
【請求項７】
前記構成することは、
前記ユーザ機器に関連する前記周辺機器を決定することと、
周辺機器プロファイルテーブル中の各決定された周辺機器についてのプロファイルを更新することと、
前記ＨＬＯＳによる使用のために各周辺機器プロファイルに関連するドライバを準備することと
をさらに備える、請求項１に記載の方法。
【請求項８】
前記ユーザ機器に関連する前記周辺機器を決定することは、
各周辺機器についてのプロファイルが完全であるかどうかを検出することと、
各周辺機器についての前記プロファイルをエラー検査することと
をさらに備える、請求項７に記載の方法。
【請求項９】
前記周辺機器のうちの前記１つについての前記プロファイルを更新することは、前記周辺機器のうちの前記１つについてのエラーメッセージを前記周辺機器プロファイルテーブルに記憶することを備える、
請求項７に記載の方法。
【請求項１０】
ユーザ機器をブートするための装置であって、
前記ユーザ機器のデバイスブートを実行するための手段と、
前記ユーザ機器に関連する周辺機器についてのプロファイルが前記ユーザ機器において利用可能であるかどうかを決定するための手段と、
前記周辺機器のうちの１つについてのプロファイルが前記ユーザ機器において利用可能でないが、前記ユーザ機器の外部のロケーションにおいて利用可能であると決定するときに、前記ユーザ機器の外部の前記ロケーションから前記周辺機器のうちの前記１つについての前記プロファイルを検索するための手段と、
前記検索されたプロファイルに基づいて少なくとも前記周辺機器のうちの前記１つについての前記プロファイルを更新することによって、前記ユーザ機器のための前記周辺機器と関連するドライバとを構成するための手段と、
ハイレベルオペレーティングシステム（ＨＬＯＳ）をブートするための手段と
を備え、前記構成することは、前記周辺機器の各々に関連する少なくとも１つのドライバに関係する情報を前記ＨＬＯＳに利用可能にし、前記構成することは、前記ＨＬＯＳを前記ブートすることの前に行われる、
装置。
【請求項１１】
コンピュータに、
ユーザ機器のデバイスブートを実行することと、
前記ユーザ機器に関連する周辺機器についてのプロファイルが前記ユーザ機器において利用可能であるかどうかを決定することと、
前記周辺機器のうちの１つについてのプロファイルが前記ユーザ機器において利用可能でないが、前記ユーザ機器の外部のロケーションにおいて利用可能であると決定するときに、前記ユーザ機器の外部のロケーションから前記周辺機器のうちの前記１つについての前記プロファイルを検索すること、ここにおいて、前記ロケーションが、前記周辺機器のうちの前記１つに関連する製造業者によって管理される、と、
前記検索されたプロファイルに基づいて少なくとも前記周辺機器のうちの前記１つについての前記プロファイルを更新することによって、前記ユーザ機器のための前記周辺機器と関連するドライバとを構成することと、
ハイレベルオペレーティングシステム（ＨＬＯＳ）をブートすることと
を行わせるためのコードを備え、前記構成することは、前記周辺機器の各々に関連する少なくとも１つのドライバに関係する情報を前記ＨＬＯＳに利用可能にし、前記構成することは、前記ＨＬＯＳを前記ブートすることの前に行われる、
非一時的なコンピュータ可読媒体。
【請求項１２】
ユーザ機器をブートするための装置であって、
メモリと、
トランシーバと、
プロセッサと
を備え、前記プロセッサは、
前記ユーザ機器のデバイスブートを実行することと、
前記ユーザ機器に関連する周辺機器についてのプロファイルが前記ユーザ機器において利用可能であるかどうかを決定することと、
前記周辺機器のうちの１つについてのプロファイルが前記ユーザ機器において利用可能でないが、前記ユーザ機器の外部のロケーションにおいて利用可能であると決定すること、ここにおいて、前記ロケーションが、前記周辺機器のうちの前記１つに関連する製造業者によって管理され、前記トランシーバは、前記ロケーションから前記周辺機器のうちの前記１つについての前記プロファイルを検索するように構成される、と、
前記検索されたプロファイルに基づいて少なくとも前記周辺機器のうちの前記１つについての前記プロファイルを更新することによって、前記ユーザ機器のための前記周辺機器と関連するドライバとを構成することと、
ハイレベルオペレーティングシステム（ＨＬＯＳ）をブートすることと
を行うように構成され、前記構成することは、前記周辺機器の各々に関連する少なくとも１つのドライバに関係する情報を前記ＨＬＯＳに利用可能にし、前記構成することは、前記ＨＬＯＳを前記ブートすることの前に行われる、
装置。
【請求項１３】
前記プロセッサは、前記ＨＬＯＳを前記ブートすることの前に前記ユーザ機器のための前記関連するドライバをプリフェッチするようにさらに構成される、
請求項１２に記載の装置。
【請求項１４】
前記ユーザ機器のための前記周辺機器と関連するドライバとを構成するために、前記プロセッサは、前記ＨＬＯＳを前記ブートすることの前に前記関連するドライバをアクティブにするように構成される、
請求項１２に記載の装置。
【請求項１５】
前記プロセッサは、
前記構成される周辺機器に関連する中間ドライバを識別することと、
前記ユーザ機器が、前記ＨＬＯＳを前記ブートすることの前に前記周辺機器を使用することを可能にするために、プリＨＬＯＳ動作環境による使用のために前記中間ドライバをロードすることと
を行うようにさらに構成される、請求項１２に記載の装置。
【請求項１６】
前記周辺機器と関連するドライバとを構成するために、前記プロセッサは、前記周辺機器と関連するドライバとを自動的に構成するように構成される、
請求項１２に記載の装置。
【請求項１７】
前記周辺機器と関連するドライバとを構成するために、前記プロセッサは、前記周辺機器と関連するドライバとを手動で構成するように構成される、
請求項１２に記載の装置。
【請求項１８】
前記周辺機器と関連するドライバとを構成するために、前記プロセッサは、
前記ユーザ機器に関連する前記周辺機器を決定することと、
周辺機器プロファイルテーブル中の各決定された周辺機器についてのプロファイルを更新することと、
前記ＨＬＯＳによる使用のために各周辺機器プロファイルに関連するドライバを準備することと
を行うようにさらに構成される、請求項１２に記載の装置。
【請求項１９】
前記ユーザ機器に関連する前記周辺機器を決定するために、前記プロセッサは、
各周辺機器についての前記プロファイルが完全であるかどうかを検出することと、
各周辺機器についての前記プロファイルをエラー検査することとを行うようにさらに構成される、
請求項１８に記載の装置。
【請求項２０】
前記プロセッサは、少なくとも前記周辺機器のうちの前記１つについてのエラーメッセージを前記周辺機器プロファイルテーブルに記憶することによって前記周辺機器のうちの前記１つについての前記プロファイルを更新するように構成される、
請求項１８に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]以下の説明は、一般に周辺デバイスドライバに関し、より詳細には、ハイレベルオペレーティングシステム（ＨＬＯＳ）ブートより前にスマートフォンと他の接続されたデバイスとのための周辺デバイスドライバをプリフェッチすることに関する。
【背景技術】
【０００２】
[0002]現在のスマートフォンおよび他のワイヤレスデバイスは、スマートフォンのすべてがＡＮＤＲＯＩＤ（登録商標）などの同じハイレベルオペレーティングシステム（ＨＬＯＳ）を使用していることがあるが、各スマートフォン製造業者によって製造された各異なるスマートフォンモデルが異なるソフトウェア環境を使用し得、ワイヤードまたはワイヤレスインターフェースを介して接続されるのとオンボードでとの両方で、異なる周辺機器に関連し得るように構成され得る。したがって、スマートフォンのための初期ソフトウェアプロビジョニングは、製造プロセス中の後のある時点においてフォンに関連し得る、多数の周辺機器カテゴリにおける、可能な周辺機器ごとにドライバを識別し、ロードすることを必要とし得る。その結果、これらのスマートフォンのための初期ソフトウェアプロビジョニングは、広範なエンジニアリング専門知識と、労力の大きいアウトプットと、著しいハードウェアおよびソフトウェアリソースとを必要とする。
【０００３】
[0003]ＨＬＯＳブートアップより前に、可能な多数の周辺機器のうちのいずれがスマートフォンに実際に関連するかが知られていないので、「オンザフライ」でドライバを識別し、ロードすることは、ＨＬＯＳブートアップを、好ましいものよりも複雑で遅いものにし得る。
【０００４】
[0004]さらに、多数のドライバの全体がスマートフォン上にロードされ得、ロードされたドライバのいずれがＨＬＯＳによって使用され得るかが不明瞭であるので、フォンが加入されているフォン製造業者およびネットワークにかかわらず、特定のＨＬＯＳを実行しているフォンのすべてに、たとえば、セキュリティパッチなどの更新を提供することを望む、たとえば、ネットワークキャリア、スマートフォン製造業者、またはＨＬＯＳに関連するソフトウェア会社などの利害関係者によってＨＬＯＳの集中管理を行うことは極めて困難である。
【０００５】
[0005]したがって、簡略化された初期ソフトウェアプロビジョニングプロセスを行うことが望まれる。また、より低い電力消費でより速いＨＬＯＳブートアップを行うことが望まれる。さらに、異なるキャリアネットワーク上でも、同じＨＬＯＳを使用する多種多様なスマートフォンにわたって単一のＨＬＯＳの集中管理および更新を行うことが望まれる。
【発明の概要】
【０００６】
[0006]以下で、１つまたは複数の態様の基本的理解を与えるために、そのような態様の簡略化された概要を提示する。この概要は、すべての企図された態様の包括的な概観ではなく、すべての態様の主要または重要な要素を識別するものでも、いずれかまたはすべての態様の範囲を定めるものでもない。その唯一の目的は、後で提示するより詳細な説明の導入として、１つまたは複数の態様のいくつかの概念を簡略化された形で提示することである。
【０００７】
[0007]一態様では、ユーザ機器をブートするための方法について説明する。本方法は、ユーザ機器のデバイスブートを実行することを含み得る。本方法は、ユーザ機器のための周辺機器と関連するドライバとを構成することを含み得る。本方法は、ハイレベルオペレーティングシステム（ＨＬＯＳ）をブートすることを含み得る。構成することは、ＨＬＯＳをブートすることの前に行われ得る。
【０００８】
[0008]一態様では、ユーザ機器をブートするための装置について説明する。本装置は、ユーザ機器のデバイスブートを実行するための手段を含み得る。本装置は、ユーザ機器のための周辺機器と関連するドライバとを構成するための手段を含み得る。本装置は、ハイレベルオペレーティングシステム（ＨＬＯＳ）をブートするための手段を含み得る。構成することは、ＨＬＯＳをブートすることの前に行われ得る。
【０００９】
[0009]一態様では、ユーザ機器をブートするためのコンピュータプログラム製品について説明する。コンピュータプログラム製品は、コードを備えるコンピュータ可読媒体を含み得る。コードは、コンピュータに、ユーザ機器のデバイスブートを実行させ得る。コードは、コンピュータに、ユーザ機器のための周辺機器と関連するドライバとを構成させ得る。コードは、コンピュータに、ハイレベルオペレーティングシステム（ＨＬＯＳ）をブートさせ得る。構成することは、ＨＬＯＳをブートすることの前に行われ得る。
【００１０】
[0010]一態様では、ユーザ機器をブートするための装置について説明する。本装置は、メモリと、トランシーバと、プロセッサとを含み得る。プロセッサは、ユーザ機器のデバイスブートを実行するように構成され得る。プロセッサは、ユーザ機器のための周辺機器と関連するドライバとを構成するように構成され得る。プロセッサは、ハイレベルオペレーティングシステム（ＨＬＯＳ）をブートするように構成され得る。構成することは、ＨＬＯＳをブートすることの前に行われ得る。
【００１１】
[0011]一態様では、ユーザ機器のための周辺デバイスドライバをロードするための方法について説明する。本方法は、ユーザ機器に関連することができる周辺機器を決定することを含み得る。本方法は、決定された周辺機器のためのドライバをロードすることを含み得る。ロードされたドライバは、ハイレベルオペレーティングシステム（ＨＬＯＳ）がその上に与えられるユーザ機器のタイプにかかわらず、ＨＬＯＳアーキテクチャに関連し得る。
【００１２】
[0012]一態様では、ユーザ機器のための周辺デバイスドライバをロードするための装置について説明する。本装置は、ユーザ機器に関連することができる周辺機器を決定するための手段を含み得る。本装置は、決定された周辺機器のためのドライバをロードするための手段を含み得る。ロードされたドライバは、ハイレベルオペレーティングシステム（ＨＬＯＳ）がその上に与えられるユーザ機器のタイプにかかわらず、ＨＬＯＳアーキテクチャに関連し得る。
【００１３】
[0013]一態様では、ユーザ機器のための周辺デバイスドライバをロードするためのコンピュータプログラム製品について説明する。コンピュータプログラム製品は、コードを備えるコンピュータ可読媒体を含み得る。コードは、コンピュータに、ユーザ機器に関連することができる周辺機器を決定させ得る。コードは、コンピュータに、決定された周辺機器のためのドライバをロードさせ得る。ロードされたドライバは、ハイレベルオペレーティングシステム（ＨＬＯＳ）がその上に与えられるユーザ機器のタイプにかかわらず、ＨＬＯＳアーキテクチャに関連し得る。
【００１４】
[0014]一態様では、ユーザ機器のための周辺デバイスドライバをロードするための装置について説明する。本装置は、メモリと、トランシーバと、プロセッサとを含み得る。プロセッサは、ユーザ機器に関連することができる周辺機器を決定するように構成され得る。プロセッサは、決定された周辺機器のためのドライバをロードするように構成され得る。ロードされたドライバは、ハイレベルオペレーティングシステム（ＨＬＯＳ）がその上に与えられるユーザ機器のタイプにかかわらず、ＨＬＯＳアーキテクチャに関連し得る。
【００１５】
[0015]上記および関係する目的を達成するために、１つまたは複数の態様は、以下で十分に説明し、特に特許請求の範囲で指摘する特徴を備える。以下の説明および添付の図面に、１つまたは複数の態様のうちのいくつかの例示的な特徴を詳細に記載する。ただし、これらの特徴は、様々な態様の原理を採用することができる様々な方法のほんのいくつかを示すものであり、この説明は、すべてのそのような態様およびそれらの均等物を含むものとする。
【図面の簡単な説明】
【００１６】
[0016]添付の図面とともに以下に説明する開示する態様は、開示する態様を限定するためではなく、開示する態様を例示するために与えられ、同様の表示は同様の要素を示す。
【図１】ユーザ機器をブートするための例示的な方法の図。
【図２】ユーザ機器に関連する周辺機器を決定し、周辺機器プロファイルテーブル中の各決定された周辺機器についてのプロファイルを更新するための例示的な方法の図。
【図３】例示的な周辺機器プロファイルテーブルの図。
【図４】例示的なハイレベルオペレーティングシステムアーキテクチャの図。
【図５】Ｌｉｎｕｘ（登録商標）カーネルレイヤ内の例示的なディスプレイデバイスドライバの図。
【図６】モノリシック手法を使用してユーザ機器のための周辺デバイスドライバをロードするための例示的な方法の図。
【図７】動的手法を使用してユーザ機器のための周辺デバイスドライバをロードするための例示的な方法の図。
【図８】例示的なユーザ機器の図。
【発明を実施するための形態】
【００１７】
[0025]次に、図面を参照しながら様々な態様について説明する。以下の説明では、説明のために、１つまたは複数の態様の完全な理解を与えるために多数の具体的な詳細を記載する。ただし、そのような（１つまたは複数の）態様は、これらの具体的な詳細なしに実施され得ることは明らかであろう。
【００１８】
[0026]説明する態様は、スマートフォンなどのユーザ機器または端末をブートするための方法および装置に関する。特に、説明する態様は、ユーザ機器（ＵＥ）が、ＵＥハイレベルオペレーティングシステム（ＨＬＯＳ）をブートすることの前に、ＵＥに関連する周辺機器を構成することを可能にし得る。周辺機器を構成することは、ＵＥに関連する周辺機器の各々のためのドライバに関係する情報を自動的にまたは手動でプリロードまたはプリフェッチすることと、ドライバ情報を、たとえば、フラッシュメモリに記憶することによってＨＬＯＳにとって利用可能にすることとを含み得る。ＨＬＯＳをブートすることの前に、周辺機器を構成し、周辺機器に関連するドライバに関する情報をプリロードすることは、ＨＬＯＳが簡略化され、より急速にブートすることを可能にし得る。また、周辺機器の構成を分離することと、ＨＬＯＳからのドライバ情報のプリフェッチングとは、同じＨＬＯＳを使用する、任意の数のネットワーク上の多種多様なＵＥにわたるＨＬＯＳの集中管理および更新を可能にし得る。そのような態様はまた、簡略化された初期ソフトウェアプロビジョニングプロセスを行い得る。
【００１９】
[0027]図１は、たとえば、図８のＵＥ８００などのユーザ機器をブートするための例示的な方法１００の図である。一例では、方法１００は、図８のメモリ８２６およびトランシーバ８２５と組み合わせた図８のプロセッサ８２４によって実行され得る。
【００２０】
[0028]１１０において、方法１００は、ユーザ機器（ＵＥ）のデバイスブートを実行することを含む。たとえば、方法１００は、スマートフォンなどのＵＥのデバイスブートを実行し得る。いくつかの例では、デバイスブートは、ＵＥブートに関連するハイレベルオペレーティングシステム（ＨＬＯＳ）の前の後の動作を実行するためにプリＨＬＯＳ動作環境をロードさせ得る。
【００２１】
[0029]１２０において、方法１００は、ＵＥのための周辺機器と関連するドライバとを構成することを含む。一態様では、周辺機器と関連するドライバとは自動的に構成され得る。別の態様では、周辺機器と関連するドライバとは手動で構成され得る。一例では、ＵＥの周辺機器は、図８の周辺機器８２１、８２２および８２３などのチップ（ＳＰＯＣ）ベースの周辺機器（たとえば、ＳＰＯＣ上に組み込まれた、プロセッサまたはモデムなどの周辺機器）上のスマートフォン、図８の周辺機器８１１、８１２、８１３、８１４、および８１５などのオンボード周辺機器（たとえば、ＵＥに組み込まれているが、ＳＰＯＣの一部としてでない、タッチスクリーンまたはカメラなどの周辺機器）、ならびに／または図８の周辺機器８３１および８２３などのオフボード周辺機器（たとえば、ワイヤードまたはワイヤレスインターフェースを介してＵＥに接続された、プリンタまたはカードスキャナなどの周辺機器）であり得る。一態様では、周辺機器構成１２０は、ＨＬＯＳブートアップの前に、たとえば、ＨＬＯＳブートアップより前のある時間に生じ得る。
【００２２】
[0030]一態様では、たとえば、構成される周辺機器に関連するドライバは、ＨＬＯＳをブートすることの前にプリフェッチされ得る。一例では、ドライバはプリＨＬＯＳ動作環境によってプリフェッチされ得る。別の態様では、ドライバは、ＨＬＯＳをブートすることの前にアクティブにされ得る。一例では、ドライバは、プリＨＬＯＳ動作環境によってアクティブにされ得る。別の態様では、構成される周辺機器に関連する中間ドライバがＵＥによって識別され、ロードされ得る。一例では、構成される周辺機器に関連する中間ドライバをロードすることは、ＨＬＯＳブートより前に、ＵＥが、構成される周辺機器を使用することを可能にし得る。別の例では、プリＨＬＯＳ動作環境は、中間ドライバを識別し、ロードし得る。別の例では、中間ドライバは、構成される周辺機器に関連するドライバと同じであるか、またはそれとは異なり得る。
【００２３】
[0031]周辺機器構成１２０は、周辺機器決定１２２と、周辺機器プロファイル更新１２４と、周辺機器ドライバ準備１２６とを含み得る。１２２において、方法１００は、ＵＥに関連する周辺機器を決定することを含み得る。より詳細には、ＵＥに関連する各周辺機器についての周辺機器プロファイルが、ＵＥにおいて利用可能であるかどうかが決定され得る。一例では、特定の周辺機器がオンＳＰＯＣ周辺機器であるのか、オンボード周辺機器であるのか、オフボード周辺機器であるのかにかかわらず、特定の周辺機器についてのプロファイルが、図３の周辺機器プロファイルテーブル３００などの周辺機器プロファイルテーブル中にプリロードされているかどうかが決定され得る。特定の周辺機器についてのプロファイルは、周辺機器プロファイルテーブル３００中の（特定の周辺機器についての）エントリとして記憶され得る。一例では、図３の周辺機器プロファイルテーブル３００などの周辺機器プロファイルテーブルは、図８のＵＥ８００などのＵＥにおいて図８のメモリ８２６などのメモリ内に記憶され得る。
【００２４】
[0032]また、ＵＥに関連するプロファイルを決定することは、いくつかの事例では、各周辺機器についてのプロファイルが完全であるかどうかを検出することを含み得る。完全なプロファイルは、周辺機器に関するすべての関連情報を含み得る。たとえば、完全なプロファイルは、周辺機器プロファイルテーブルの各フィールド中にそれについての情報があるテーブルエントリによって表され得る。不完全なプロファイルは、周辺機器に関するすべての関連情報を含むとは限らない。たとえば、不完全なプロファイルは、周辺機器プロファイルテーブルの１つまたは複数のフィールドから消失しているそれについての情報があるテーブルエントリによって表され得る。
【００２５】
[0033]また、ＵＥに関連するプロファイルを決定することは、いくつかの事例では、各周辺機器についてのプロファイルをエラー検査することを含み得る。たとえば、周辺機器プロファイルテーブル中のすべてのエントリは、そこでエントリがＨＬＯＳによって使用可能であることを保証するためにエラー検査され得る。識別され、処理され得るエラーは、たとえば、完全性ベースのエラー、正常範囲の外側にあるプロファイルエントリ、または手動で入力された可能性があるエントリ中の誤り（誤植など）を含み得る。
【００２６】
[0034]１２４において、方法１００は、周辺機器プロファイルテーブル中の各決定された周辺機器についてのプロファイルを更新することを含む。完全なプロファイルの場合、周辺機器プロファイルテーブル中の関連するエントリは、たとえば、それがＵＥによって決定されたとき、エントリ中に消失した情報がなかったので、更新されないことがある。不完全なプロファイルの場合、周辺機器プロファイルテーブル中の関連するエントリは、決定された周辺機器に関する情報に基づいてＵＥによって更新され得る。
【００２７】
[0035]１２６において、方法１００は、ＨＬＯＳによる使用のために各周辺機器プロファイルに関連するドライバを準備することを含む。一例では、ドライバ準備は、現在、完全であり、更新され、エラー検査された周辺機器プロファイルテーブルをフラッシュメモリ、またはＨＬＯＳにとって利用可能であり得る他の記憶媒体中にロードすることを含み得る。一例では、周辺機器プロファイルテーブルは、図８のメモリ８２６などのメモリ中にロードされ得る。１２６の完了、および周辺機器プロファイルテーブルのＨＬＯＳによるアクセス時、ＨＬＯＳは、ＨＬＯＳが、ＵＥに関連すると決定された周辺機器の各々に関連するドライバに関して必要とし得る情報のすべてを受信していることがある。
【００２８】
[0036]１３０において、方法１００は、ＨＬＯＳをブートすることを含む。一例では、ＵＥに関連するＨＬＯＳはブートアップする。一例では、１２０において、ＨＬＯＳは、各周辺機器に関連するドライバをロードするために上記で説明したように記憶されている、図３の完全な周辺機器プロファイルテーブル３００などの周辺機器構成の結果を使用し得る。ドライバのそのようなプリローディングまたはプリフェッチングは、優先および簡略化されたＨＬＯＳブートアッププロセスを可能にし得る。
【００２９】
[0037]方法１００を一連の行為として図示し説明するが、いくつかの行為は、１つまたは複数の態様によれば、本明細書で図示し説明する順序とは異なる順序で、および／または他の行為と同時に行われるので、方法１００は行為の順序によって限定されないことを理解し、諒解されたい。たとえば、方法は、状態図など、一連の相互に関係する状態またはイベントとして代替的に表現され得ることを諒解されたい。さらに、１つまたは複数の態様による方法を実施するために、図示のすべての行為が必要とされるとは限らない。
【００３０】
[0038]図２は、ユーザ機器に関連する周辺機器を決定し、周辺機器プロファイルテーブル中の各決定された周辺機器についてのプロファイルを更新するための例示的な方法の図である。より詳細には、図２は、図１の１２２および１２４についてのさらなる方法論的詳細を与える。一例では、図２に関して本明細書で説明する態様は、図８のメモリ８２６およびトランシーバ８２５と組み合わせた図８のプロセッサ８２４によって実行され得る。
【００３１】
[0039]１２２において示されるように、たとえば、図８のＵＥ８００などのＵＥに関連する周辺機器を決定することは、図２に示されているように、さらなる態様２１０、２２０、２３０、２４０、２５０、および２６０を含み得る。２１０において、方法１２２は、各周辺機器についてのプロファイルがＵＥにおいて利用可能であるかどうかを決定することを含む。一例では、周辺機器は、図８の周辺機器８１１、８１２、８１３、８１４、８１５、８２１、８２３、８３１、および８３２であり得る。図３の周辺機器プロファイルテーブル３００などの周辺機器プロファイルテーブル内に特定の周辺機器についてのエントリ（たとえば、プロファイル）がある場合、特定の周辺機器についてのプロファイルは、ＵＥにおいて利用可能であると決定され得る。周辺機器プロファイルテーブル中の各エントリは、特定の周辺機器についてのプロファイルであり得る。
【００３２】
[0040]特定の周辺機器についてのプロファイルが、ＵＥにおいて利用可能でないと決定された場合、方法１２２は、２２０に示されるように、特定の周辺機器についてのプロファイルが外部ロケーションにおいて利用可能であるかどうかを決定することを含む。一例では、ＵＥは、周辺機器に関連する製造業者またはＯＥＭによって作成および／または管理されるデータベース、ウェブサイト、あるいは他の記憶媒体において、プロファイルを探索し得る。たとえば、ＵＥは、ディスプレイ会社Ａによって制御されるデータベース中で、たとえば、インターネットなどのネットワークを介して利用可能なサーバにおいて、クラウドに記憶されたディスプレイ会社Ａのディスプレイについての情報（たとえば、ドライバ）のデータベースから、ディスプレイ会社Ａによって製造されるディスプレイについてのプロファイルを求め得る。ＵＥが、プロファイルが外部ロケーションにおいて利用可能であると決定した場合、方法１２２は、２４０に示されるように、外部ロケーションから特定の周辺機器についてのプロファイルを検索することを含む。
【００３３】
[0041]２３０に示されるように、特定の周辺機器についてのプロファイルがＵＥにおいて利用可能でなく、外部ロケーションにおいて利用可能でないと決定された場合、ＵＥは、いくつかの方法のうちの１つでその状況を処理し得る。一例では、２３０に示されるように、ＵＥは、特定のプロファイルに関連するエラーを生成し得る。別の例では、ＵＥは、他の情報（図示せず）に基づいて周辺機器についてのプロファイルを初めから生成または作成し得る。
【００３４】
[0042]２５０において、方法１２２は、各周辺機器についてのプロファイルが完全であるかどうかを検出することを含む。たとえば、すでにＵＥにおいて利用可能であり得たか、または外部ロケーションから検索され得た各周辺機器について、プロファイルが完全であるかどうかが検出され得る。プロファイルは、それが、エントリの各フィールド中にそれについての情報がある周辺機器プロファイルテーブル中のエントリによって表される場合、完全であるとして検出され得る。言い換えれば、プロファイルは情報を消失していない。プロファイルは、エントリの各フィールド中に情報がない場合、不完全であるとして検出され得る。言い換えれば、プロファイルは情報を消失している。
【００３５】
[0043]特定の周辺機器についてのプロファイルが不完全であり、プロファイルがＵＥにおいて利用可能であった場合、ライン２５２によって示されるように、外部ロケーションにおいて特定の周辺機器についての完全なプロファイルが求められ得る。言い換えれば、本方法は、ＵＥにおいて不完全なプロファイルが利用可能であった場合、２２０に移動し得る。特定の周辺機器についてのプロファイルが不完全であり、プロファイルが外部ロケーションからの検索のために利用可能でなかった場合、ライン２５４によって示されるように、エラーメッセージが生成され得る。言い換えれば、本方法は、外部ロケーションから不完全なプロファイルが検索されたか、またはプロファイルが検索されない場合、２３０に移動し得る。別の例では、特定の周辺機器についての不完全なプロファイルが外部ロケーションから検索された場合、本方法は、不完全なプロファイルが検索された外部ロケーションとは異なり得る外部ロケーションから、特定の周辺機器についての完全なプロファイルを検索することを試みるために、ライン２５２によって示されるように、２２０に移動し得る。また別の例（図示せず）では、不完全なプロファイルが検出され、プロファイルが完成されないことがある場合、周辺機器に関する情報に基づいて、周辺機器についての新しいプロファイルが、初めから生成または作成され、周辺機器についての新しいエントリが周辺機器プロファイルテーブルに追加され得る。
【００３６】
[0044]２６０において、方法１２２は、各周辺機器についてのプロファイルをエラー検査することを含む。たとえば、周辺機器プロファイルテーブル中のすべてのエントリは、そこでエントリがＨＬＯＳによって使用可能であることを保証するためにエラー検査され得る。識別され、処理され得るエラーは、たとえば、完全性ベースのエラー、正常範囲の外側にあるプロファイルエントリ、または手動で入力された可能性があるエントリ中の誤り（誤植など）を含み得る。
【００３７】
[0045]１２４に示されるように、図３の周辺機器プロファイル３００などの周辺機器プロファイルテーブル中の各決定された周辺機器についてのプロファイルを更新することは、図２に示されているさらなる態様２７０および２８０を含み得る。２７０に示されるように、方法１２４は、周辺機器プロファイルテーブル中の各決定された周辺機器についてのプロファイルを更新することを含む。一例では、プロファイルが完全だったかどうかを検出することと、必要な場合にプロファイルを完成することと、プロファイルをエラー検査および処理することとに基づいて、ＵＥにおいて利用可能であったプロファイルが調整された場合、ＵＥは、周辺機器プロファイルテーブル中のプロファイルについての元のエントリにアクセスし、調整されたプロファイルに基づいてエントリを更新し得る。別の例では、特定の周辺機器についてのプロファイルが外部ロケーションから検索された場合、ＵＥは、特定の周辺機器に関連する周辺機器プロファイルテーブル中のエントリにアクセスし、そのようなエントリが存在する場合、検索されたプロファイルに基づいてエントリを更新し得る。それについてのプロファイルが外部ロケーションから検索された特定の周辺機器に関連するエントリが、周辺機器プロファイルテーブル中に前に存在しなかった場合、エントリが作成されることになり、検索されたプロファイルに基づいて情報がエントリに追加されることになる。
【００３８】
[0046]一例では、特定の周辺機器についてのプロファイルがＵＥにおいても利用可能でなく、外部ロケーションにおいても利用可能でなかった場合、方法１２４は、２３０に示されるように、特定の周辺機器についてのエラーメッセージを周辺機器プロファイルテーブルに記憶することを含む。この場合、たとえば、２８０に示されるように、エラーメッセージが生成され、次いで、周辺機器プロファイルテーブルまたは他の場所に記憶され、特定の周辺機器に関連付けられ得る。エラーメッセージが生成され、特定の周辺機器に関連して記憶された場合、一例では、１３０において、ＨＬＯＳは、それのブートアッププロセスに入ったときにそのエラーについてアラートされ得る。
【００３９】
[0047]別の例では、ＵＥは、そのような周辺機器に関する情報に基づいて、周辺機器についての新しいプロファイルを初めから生成または作成することを試み得る。この場合、たとえば、本方法は、特定の周辺機器についての新たに作成されたプロファイルを追加することによって周辺機器プロファイルテーブルを更新するために、２３０から２７０（図示せず）に移動し得る。
【００４０】
[0048]方法２００を一連の行為として図示し説明するが、いくつかの行為は、１つまたは複数の態様によれば、本明細書で図示し説明する順序とは異なる順序で、および／または他の行為と同時に行われ得るので、方法は行為の順序によって限定されないことを理解し、諒解されたい。たとえば、方法は、状態図など、一連の相互に関係する状態またはイベントとして代替的に表現され得ることを諒解されたい。さらに、１つまたは複数の態様による方法を実施するために、図示のすべての行為が必要とされるとは限らない。
【００４１】
[0049]図３は、例示的な周辺機器プロファイルテーブル３００の図である。セクション３１０と、周辺機器タイプ３１２と、周辺機器番号３１４と、周辺デバイスドライバ識別子３１６と、周辺機器識別子３１８とを含むフィールドを有する周辺機器プロファイルテーブル３００が示されている。一例では、エントリ３２０および３３０など、周辺機器プロファイルテーブル３００中の各プロファイルまたはエントリは、エントリがプリポピュレートされており、したがってＵＥがエントリに関連する周辺機器を決定したときに完全であるように手動で入力され得る。別の例では、周辺機器プロファイルテーブル３００中のエントリは、図１および図２に関して上記で説明した周辺機器オートコンフィギュレーションプロセスに基づいて自動ポピュレートされるか、または生成され得る。セクション３１０は、特定の周辺機器がＳＰＯＣ上にあるのか、ＵＥに搭載されているのか、オフボードであるのかに関係し得る。周辺機器タイプ３１２は、たとえば、モデム、Ｗｉ−Ｆｉ（登録商標）、Ｂｌｕｅｔｏｏｔｈ（登録商標）デバイス、スクリーン、カメラ、マイクロフォン、スピーカー、またはカードスキャナなど、エントリに関連する周辺機器のタイプを示し得る。周辺機器番号３１４は、特定の周辺機器構成に基づく識別子である。周辺機器デバイスドライバ識別子３１６は、手動で入力されるか、または周辺機器識別子３１８に基づいて自動的にポピュレートされ得る。一例では、周辺機器識別子３１８は、使用されるべき対応する周辺機器デバイスドライバを決定するために、自動構成されることになるそれらの周辺機器のためにのみ使用され得る（たとえば、エントリ中に含まれ得る）。別の例では、周辺機器識別子３１８は、周辺機器デバイスドライバ識別子３１６フィールドがすでに記入されている場合でも使用され得る。
【００４２】
[0050]完全なプロファイルは、周辺機器に関するすべての関連情報を含み得る。たとえば、完全なプロファイルは、周辺機器プロファイルテーブルの各フィールド中にそれについての情報があるテーブルエントリによって表され得る。たとえば、図３のエントリ３２０はモデムについてのプロファイルを含む。エントリ３２０は、周辺機器タイプがモデム３２１であり、そのモデムがＳＰＯＣ３２２上にあり、周辺機器番号１  ３２３とドライバＩＤ  Ａ３２４と、周辺機器ＩＤ  Ａ３２５とを有することを示している。不完全なプロファイルは、周辺機器に関するすべての関連情報を含むとは限らない。たとえば、不完全なプロファイルは、周辺機器プロファイルテーブル３００中の１つまたは複数のフィールドから消失しているそれについての情報があるテーブルエントリによって表され得る。たとえば、図３のエントリ３３０はスクリーンについてのプロファイルを含む。エントリ３３０は、周辺機器タイプがスクリーン３３１であり、そのスクリーンがＵＥ３３２に搭載されており（たとえば、ＳＰＯＣ上ではなくＵＥに組み込まれており）、周辺機器番号１  ３３３と周辺機器ＩＤ  Ｄ３３５とを有することを示す。しかしながら、エントリ３３０は、スクリーンのためのドライバＩＤ３３４に関係する情報を消失している。したがって、エントリ３３０は不完全であり、したがって、ＵＥは、スクリーンについてのプロファイルがＵＥにおいて利用可能でないと決定し得る。
【００４３】
[0051]一態様では、ＵＥは、ＨＬＯＳをブートすることの前に、決定された周辺機器に関連する中間ドライバをロードするように構成され得る。一例では、中間ドライバは、プリＨＬＯＳ動作環境によってロードされ、使用され得る。別の例では、中間ドライバは、ＵＥが、（プリＨＬＯＳ動作環境を実行しながら）ＨＬＯＳをブートすることの前に、決定された周辺機器を使用することを可能にし得る。この場合、周辺機器プロファイルテーブル３００（図示せず）中の各プロファイル（またはエントリ）について、中間ドライバがプロファイルのために利用可能であるかどうか、中間ドライバがＵＥにおいて利用可能であるのか他の場所において利用可能であるのか、中間ドライバがＨＬＯＳブートより前にＵＥによってロードされるべきかどうか、および／または中間ドライバに関係する他の情報を示すさらなるフィールドが含まれ得る。
【００４４】
[0052]図４は、例示的なハイレベルオペレーティングシステムアーキテクチャ４００の図である。ＨＬＯＳは、一例では、限定はしないが、ＡＮＤＲＯＩＤオペレーティングシステムであり得るが、ＨＬＯＳが任意のタイプのオペレーティングシステムであり得ることを理解されたい。ＨＬＯＳは、図８のＵＥ８００などのＵＥ上で動作していることがあり、ただし、図８のプロセッサ８２４などのプロセッサは、ＨＬＯＳに関連する命令を実行していることがあり、ただし、命令は、図８のメモリ８２６などのメモリに記憶され得る。ＨＬＯＳアーキテクチャ４００のためのアーキテクチャは、アプリケーションレイヤ４１０と、アプリケーションフレームワークレイヤ４２０と、ライブラリレイヤ４３０と、たとえば、ＡＮＤＲＯＩＤランタイムレイヤであり得るＨＬＯＳランタイムレイヤ４４０と、限定はしないが、ＬＩＮＵＸ（登録商標）カーネルレイヤなどのカーネルレイヤ４５０とを含む。図１、図２、および図３に関して上記で説明した態様は、ＵＥ周辺機器に関連するドライバのためのサポートがＬＩＮＵＸカーネルレイヤ４５０中で与えられるという点で、たとえば、ＬＩＮＵＸカーネルレイヤ４５０など、ＨＬＯＳアーキテクチャ４００の最下位レイヤに関係し得る。
【００４５】
[0053]スマートフォンＨＬＯＳのための１つの手法では、デバイスドライバは、ＬＩＮＵＸカーネル中に直接構築され、特定の、ターゲットにされるフォン構成のためのサポートをモノリシックＬＩＮＵＸカーネルに与え得る。そのような手法では、各スマートフォンモデルは、それ自体の特殊ＬＩＮＵＸカーネルを有し、したがって、特定のＨＬＯＳのそれ自体のバージョンを有し得る。したがって、キャリアネットワークまたは他の関係するエンティティは、利用可能なスマートフォンモデルの各々上で動作しているＨＬＯＳバージョンにわたってほとんど制御権を有しないことがある。そのようなシナリオは、バグフィックス、セキュリティパッチ、およびオペレーティングシステム更新など、更新されたＨＯＬＳ情報またはソフトウェアの協調ロールアウトを与える際の困難をもたらし得る。
【００４６】
[0054]上記で説明した問題のいくつかを緩和するのを助け、ＨＯＬＳ更新の協調ロールアウトを行うために、キャリアネットワークおよびフォン製造業者にわたる多数のスマートフォンにおいて使用するために、ＬＩＮＵＸカーネルの単一のバージョンが与えられ得る。したがって、キャリアネットワークまたは他の関係するエンティティによるＨＯＬＳ制御は、協調させられ得る。ＬＩＮＵＸカーネルの単一のバージョンは、モノリシック手法および／または動的手法を使用して与えられ得る。説明する態様のＨＬＯＳは任意のタイプのオペレーティングシステムであり得る。ＡＮＤＲＯＩＤオペレーティングシステム、およびそれの関連するＬＩＮＵＸ属性は、説明の目的で使用される一例にすぎない。本明細書はＡＮＤＲＯＩＤまたはＬＩＮＵＸ実装形態に限定されない。
【００４７】
[0055]図５は、ＬＩＮＵＸカーネルレイヤ内の例示的なディスプレイデバイスドライバの図である。より詳細には、図５は、モノリシックＬＩＮＵＸカーネルレイヤ５１０内の例示的なディスプレイデバイスドライバと、動的ＬＩＮＵＸカーネルレイヤ５５０内の例示的なディスプレイドライバとの図である。ＬＩＮＵＸカーネルレイヤ５１０および５５０は、たとえば、図４のＬＩＮＵＸカーネルレイヤ４５０であり得る。
【００４８】
[0056]５１０を参照すると、たとえば、ドライバ１、５１１、ドライバ２、５１２〜Ｎ番目のドライバ５１３など、１つまたは複数の知られているディスプレイ周辺機器に関連する１つまたは複数のドライバを含み得るモノリシックカーネルが与えられ、ただし、Ｎは正の整数である。たとえば、ドライバ５１１、５１２、および５１３は、モノリシック、または単一のリリースでは、カーネルにプリロードされ、構築され得る。
【００４９】
[0057]５５０を参照すると、たとえば、ドライバ１  ５５１など、ディスプレイ周辺機器に関連する単一のドライバを含み得る動的カーネルが与えられる。ドライバ１  ５５１は、ロード可能カーネルモジュール（ＬＫＭ：loadable kernel module）などのプレースホルダーとしてロードされ得る。一例では、ＬＫＭとしてロードされるドライバは、後の時点においてフォン製造業者によってスマートフォン上に設けられ得るターゲットＨＬＯＳに関連するそれらのドライバのみを含み得る。ＬＫＭは、複数の周辺機器カテゴリの各々において周辺機器のためのドライバのためのプレースホルダーとしてロードされ得る。たとえば、ＬＫＭは、モデム、ディスプレイ、カメラ、マイクロフォン、および場合によってはＵＥに関連し得る他の周辺機器のためのドライバのためのプレースホルダーとしてロードされ得る。ドライバ１  ５５１はＬＫＭであり得るので、それはベースカーネルリリースの一部としてロードされないことがある。そうではなく、ＬＩＮＵＸカーネルは、ＵＥに関連すると決定された特定のディスプレイ周辺機器のために、たとえば、周辺機器プロファイルテーブル３００に記憶された周辺機器プロファイルに基づいてドライバ１  ５５１を動的にロードし得る。一例では、動的手法は、ＬＩＮＵＸカーネルとデバイスドライバリリースとが別々にリリースされ、サポートされることを可能にし得る。説明する態様のＨＬＯＳは任意のタイプのオペレーティングシステムであり得る。ＡＮＤＲＯＩＤオペレーティングシステム、およびそれの関連するＬＩＮＵＸ属性は、説明の目的で使用される一例にすぎない。本明細書はＡＮＤＲＯＩＤまたはＬＩＮＵＸ実装形態に限定されない。
【００５０】
[0058]図６は、モノリシック手法を使用してユーザ機器のための周辺デバイスドライバをロードするための例示的な方法６００の図である。一例では、方法６００は、図８のＵＥ８００のための周辺デバイスドライバをロードするためのものであり得る。一例では、方法６００は、図８のメモリ８２６およびトランシーバ８２５と組み合わせた図８のプロセッサ８２４によって実行され得る。
【００５１】
[0059]６１０において、方法６００は、ＵＥに関連することができる周辺機器を決定することを含む。たとえば、図８の周辺機器８１１、８１２、８１３、８１４、８１５、８２１、８２２、８２３、８３１、および８３２など、決定された周辺機器の各々は、たとえば、ＳＰＯＣ上にあるか、ＵＥに搭載されているか、オフボードであり得る。
【００５２】
[0060]６２０において、方法６００は、ＨＬＯＳが与えられるＵＥのタイプにかかわらず、ロードされたドライバがＨＬＯＳアーキテクチャに関連するように、決定された周辺機器のためのドライバをロードすることを含む。決定された周辺機器のためのドライバは、たとえば、図４のＬＩＮＵＸカーネル４５０または図５のＬＩＮＵＸカーネル５１０などのＬＩＮＵＸカーネル中にロードされ得る。一例では、場合によっては、６２１に示されるように、方法６００は、複数の周辺機器カテゴリの各々において周辺機器の知られているセットのためのドライバのセットをロードすることを含む。一例では、ＵＥに関連し得るすべての知られているモデムの各々、またはすべての知られているモデムのある程度の大きいサブセットについての１つまたは複数のドライバがロードされ得、ＵＥに関連し得るすべての知られているディスプレイの各々、またはすべての知られているディスプレイのある程度の大きいサブセットについての１つまたは複数のドライバがロードされ得、以下同様である。ドライバのセットは、モノリシック、または単一のリリースでは、カーネル中にプリロードされ、構築され得る。
【００５３】
[0061]説明する態様のＨＬＯＳは任意のタイプのオペレーティングシステムであり得る。ＡＮＤＲＯＩＤオペレーティングシステム、およびそれの関連するＬＩＮＵＸ属性は、説明の目的で使用される一例にすぎない。本明細書はＡＮＤＲＯＩＤまたはＬＩＮＵＸ実装形態に限定されない。
【００５４】
[0062]方法６００を一連の行為として図示し説明するが、いくつかの行為は、１つまたは複数の態様によれば、本明細書で図示し説明する順序とは異なる順序で、および／または他の行為と同時に行われるので、方法６００は行為の順序によって限定されないことを理解し、諒解されたい。たとえば、方法は、状態図など、一連の相互に関係する状態またはイベントとして代替的に表現され得ることを諒解されたい。さらに、１つまたは複数の態様による方法を実施するために、図示のすべての行為が必要とされるとは限らない。
【００５５】
[0063]図７は、動的手法を使用してユーザ機器のための周辺デバイスドライバをロードするための例示的な方法７００の図である。一例では、方法７００は、図８のＵＥ８００のための周辺デバイスドライバをロードするためのものであり得る。一例では、方法８００は、図８のメモリ８２６およびトランシーバ８２５と組み合わせた図８のプロセッサ８２４によって実行され得る。
【００５６】
[0064]７１０において、方法７００は、ユーザ機器に関連することができる周辺機器を決定することを含む。図８の周辺機器８１１、８１２、８１３、８１４、８１５、８２１、８２２、８２３、８３１、および８３２など、決定された周辺機器の各々は、たとえば、ＳＰＯＣ上にあるか、ＵＥに搭載されているか、オフボードであり得る。
【００５７】
[0065]７２０において、方法７００は、ＨＬＯＳが与えられるＵＥのタイプにかかわらず、ロードされたドライバがＨＬＯＳアーキテクチャに関連するように、決定された周辺機器のためのドライバをロードすることを含む。一例では、決定された周辺機器のためのドライバは、図４のＬＩＮＵＸカーネル４５０または図５のＬＩＮＵＸカーネル５５０などのＬＩＮＵＸカーネル中にロードされ得る。７２０において、方法７００は、以下で説明するように、場合によっては、７２１、７２２、７２３、および７２４を含む。
【００５８】
[0066]７２１において、方法７００は、複数の周辺機器カテゴリの各々において周辺機器のためのドライバのためのプレースホルダーをロードすることを含む。一例では、ロード可能なカーネルモジュール（ＬＫＭ）は、複数の周辺機器カテゴリの各々において周辺機器のためのドライバのためのプレースホルダーとしてロードされ得る。たとえば、ＬＫＭは、モデム、ディスプレイ、カメラ、マイクロフォン、および場合によってはＵＥに関連し得る他の周辺機器のためのドライバのためのプレースホルダーとしてロードされ得る。一態様では、ＬＫＭは、後の時点においてフォン製造業者によってスマートフォン上に設けられ得るターゲットＨＬＯＳに関連するそれらのドライバのみを含み得る。
【００５９】
[0067]７２２において、方法７００は、ＵＥに関連する周辺機器を決定することを含む。たとえば、ＵＥは、たとえば、図１、図２、および図３に関して上記で説明したように、ＵＥに現在関連する複数の周辺機器カテゴリの各々おける特定の周辺機器を決定し得る。たとえば、ＵＥは、ディスプレイ会社Ａによって製造されたディスプレイがＵＥに関連すると決定し得る。
【００６０】
[0068]７２３において、方法７００は、決定された周辺機器に関連するドライバを識別することを含む。本例では、ディスプレイ会社Ａのディスプレイに関連するドライバが識別され得る。
【００６１】
[0069]７２４において、方法７００は、識別されたドライバを動的にロードすることを含む。本例では、ディスプレイ会社Ａのディスプレイドライバは、図４のＬＩＮＵＸカーネル４５０または図５の５５０などのＬＩＮＵＸカーネル内のプレースホルダーＬＫＭ中に動的にロードされ得る。さらに、別の例では、決定された周辺機器に関連するドライバは、たとえば、図３の周辺機器プロファイルテーブル３００などの周辺機器プロファイルテーブルに記憶された、ＵＥに関連すると決定された特定の周辺機器についての周辺機器プロファイルに基づいてロードされ得る。一例では、動的手法は、ＬＩＮＵＸカーネルとデバイスドライバリリースとが別々にリリースされ、サポートされることを可能にし得る。
【００６２】
[0070]説明する態様のＨＬＯＳは任意のタイプのオペレーティングシステムであり得る。ＡＮＤＲＯＩＤオペレーティングシステム、およびそれの関連するＬＩＮＵＸ属性は、説明の目的で使用される一例にすぎない。本明細書はＡＮＤＲＯＩＤまたはＬＩＮＵＸ実装形態に限定されない。
【００６３】
[0071]方法７００を一連の行為として図示し説明するが、いくつかの行為は、１つまたは複数の態様によれば、本明細書で図示し説明する順序とは異なる順序で、および／または他の行為と同時に行われるので、方法７００は行為の順序によって限定されないことを理解し、諒解されたい。たとえば、方法は、状態図など、一連の相互に関係する状態またはイベントとして代替的に表現され得ることを諒解されたい。さらに、１つまたは複数の態様による方法を実施するために、図示のすべての行為が必要とされるとは限らない。
【００６４】
[0072]図８は、例示的なユーザ機器（ＵＥ）８００の図である。ＵＥ８００は、たとえば、Ｂｌｕｅｔｏｏｔｈ低エネルギー（ＢＬＥ）モジュール８２１、ＷｉＦｉ（登録商標）モジュール８２２、およびモデム８２３など、ＳＰＯＣ上の周辺機器を含み得る、チップ（ＳＰＯＣ）８２０上のスマートフォンを含み得る。
【００６５】
[0073]ＳＰＯＣ８２０はまた、プロセッサ８２４と、トランシーバ８２５と、メモリ８２６とを含み得る。プロセッサ８２４は、本明細書で説明する構成要素および機能のうちの１つまたは複数に関連する処理機能を実行するように構成され得る。プロセッサ８２４は、プロセッサまたはマルチコアプロセッサの単一または複数のセットを含み得る。さらに、プロセッサ８２４は、統合処理システムおよび／または分散処理システムとして実装され得る。特に、プロセッサ８２４は、上記で説明し、図１〜図３、図６、および図７に示した方法の態様を実行するように構成され得る。
【００６６】
[0074]一例では、プロセッサ８２４は、図２の２１０に示されるように、特定の周辺機器についてのプロファイルがＵＥ８２０において利用可能であるかどうかを決定するように構成され得る。プロセッサ８２４はまた、図２の２２０に示されるように、特定の周辺機器についてのプロファイルが外部ロケーションにおいて利用可能であるかどうかを決定するように構成され得る。プロファイルは、上記で説明したように、たとえば、周辺機器に関連する製造業者またはＯＥＭによって作成および／または管理されるデータベース、ウェブサイト、あるいは他の記憶媒体などの外部ロケーションにおいて利用可能であり得る。プロファイルが外部ロケーションにおいて利用可能である場合、プロセッサ８２４は、トランシーバ８２５と通信し、トランシーバ８２５が外部ロケーション８４０に接触することを要求するように構成され得る。
【００６７】
[0075]トランシーバ８２５は、本明細書で説明するようにハードウェア、ソフトウェア、およびサービスを利用して１つまたは複数のエンティティとの通信を確立し、維持するように構成され得る。トランシーバ８２５は、ＵＥ８００と、通信ネットワーク上に位置するデバイスおよび／あるいはＵＥ８００に直列またはローカルに接続されたデバイスなどの外部デバイスとの間の通信を搬送し得る。たとえば、トランシーバ８２５は、外部デバイスとインターフェースするために動作可能な送信チェーン構成要素と受信チェーン構成要素とを含み得る。
【００６８】
[0076]特に、トランシーバ８２５は、外部ロケーション８４０において記憶されたプロファイル８４１のうちの１つの中で、特定の周辺機器についてのプロファイルが外部ロケーション８４０において利用可能であるかどうかを決定するために、外部ロケーション８４０と通信し得る。そうである場合、トランシーバ８２５は外部ロケーション８４０からプロファイルを検索し得る。トランシーバ８２５は、検索されたプロファイルをプロセッサ８２４に与え得る。プロセッサ８２４は、検索されたプロファイルに基づいて周辺機器プロファイルテーブル中の特定の周辺機器についてのプロファイルを更新するために、個々のプロファイル８２７と図３の周辺機器プロファイルテーブル３００などの周辺機器プロファイルテーブルとを記憶し得るメモリ８２６にアクセスするように構成され得る。
【００６９】
[0077]上記で説明したように、メモリ８２６は、本明細書で使用するデータ、および／またはプロセッサ８２４によって実行されるアプリケーションのローカルバージョンを記憶するように構成され得る。たとえば、メモリ８２６は、周辺機器プロファイルを、たとえば、図３の周辺機器プロファイルテーブル３００などの周辺機器プロファイルテーブルに記憶するように構成され得る。さらに、一例では、メモリ８２６は、ランダムアクセスメモリ（ＲＡＭ）、読取り専用メモリ（ＲＯＭ）、テープ、磁気ディスク、光ディスク、揮発性メモリ、不揮発性メモリ、およびそれらの任意の組合せなど、コンピュータによって使用可能な任意のタイプのメモリを含み得る。一例では、メモリ８２６はフラッシュメモリであり得る。メモリ８２６は、データストア（図示せず）をさらに含み得、データストアは、本明細書で説明する態様に関連して採用される情報、データベース、およびプログラムの大容量ストレージを与えるハードウェアおよび／またはソフトウェアの任意の適切な組合せであり得る。たとえば、データストアは、プロセッサ８２４によって現在実行されていないアプリケーションのためのデータリポジトリであり得る。
【００７０】
[0078]プロセッサ８２４と、トランシーバ８２５と、メモリ８２６とは、互いに通信するように構成され得る。
【００７１】
[0079]ＵＥ８００はまた、スクリーン８１１、タッチモジュール８１２、カメラ８１３、マイクロフォン８１４、およびスピーカー８１５など、オンボード周辺機器を含み得る。図８はまた、ワイヤードまたはワイヤレスインターフェースを介してＵＥ８００に接続され得る、カードスキャナ８３１およびプリンタ８３２などのオフボード周辺機器を示す。
【００７２】
[0080]本出願で使用する「構成要素」、「モジュール」、「システム」などの用語は、限定はしないが、ハードウェア、ファームウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアなど、コンピュータ関連のエンティティを含むものとする。たとえば、構成要素は、限定はしないが、プロセッサ上で実行されるプロセス、プロセッサ、オブジェクト、実行ファイル、実行スレッド、プログラム、および／またはコンピュータであり得る。例として、コンピューティングデバイス上で実行されるアプリケーションと、そのコンピューティングデバイスの両方が構成要素であり得る。１つまたは複数の構成要素がプロセスおよび／または実行スレッド内に常駐することができ、１つの構成要素が１つのコンピュータ上に配置され得、および／または２つ以上のコンピュータ間に分散され得る。さらに、これらの構成要素は、様々なデータ構造を記憶している様々なコンピュータ可読媒体から実行することができる。これらの構成要素は、信号を介して、ローカルシステム、分散システム内の別の構成要素と相互作用し、ならびに／あるいはインターネットなどのネットワーク上で他のシステムと相互作用する１つの構成要素からのデータのような、１つまたは複数のデータパケットを有する信号に従うことなどによって、ローカルプロセスおよび／またはリモートプロセスを介して通信し得る。
【００７３】
[0081]さらに、本明細書では、ワイヤード端末またはワイヤレス端末とすることができる端末に関する様々な態様について説明する。端末は、システム、デバイス、加入者ユニット、加入者局、移動局、モバイル、モバイルデバイス、リモート局、リモート端末、アクセス端末、ユーザ端末、端末、通信デバイス、ユーザエージェント、ユーザデバイス、またはユーザ機器（ＵＥ）と呼ばれることもある。ワイヤレス端末は、セルラー電話、衛星電話、コードレス電話、セッション開始プロトコル（ＳＩＰ）電話、ワイヤレスローカルループ（ＷＬＬ）局、携帯情報端末（ＰＤＡ）、ワイヤレス接続機能を有するハンドヘルドデバイス、コンピューティングデバイス、またはワイヤレスモデムに接続された他の処理デバイスであり得る。さらに、本明細書では基地局に関する様々な態様について説明する。基地局は、（１つまたは複数の）ワイヤレス端末と通信するために利用され得、アクセスポイント、ノードＢ、または何らかの他の用語で呼ばれることもある。
【００７４】
[0082]さらに、「または」という用語は、排他的な「または」ではなく、包括的な「または」を意味するものとする。すなわち、別段に規定されていない限り、または文脈から明らかでない限り、「ＸはＡまたはＢを使用する」という句は、自然包括的並べ替えのいずれかを意味するものとする。すなわち、「ＸはＡまたはＢを使用する」という句は、ＸがＡを使用する場合、ＸがＢを使用する場合、またはＸがＡとＢの両方を使用する場合のいずれによっても満たされる。さらに、本出願と添付の特許請求の範囲とで使用する冠詞「ａ」および「ａｎ」は、別段に規定されていない限り、または単数形を対象とすることが文脈から明らかでない限り、概して「１つまたは複数」を意味するものと解釈されるべきである。
【００７５】
[0083]本明細書で説明する技法は、ＣＤＭＡ、ＴＤＭＡ、ＦＤＭＡ、ＯＦＤＭＡ、ＳＣ−ＦＤＭＡおよび他のシステムなど、様々なワイヤレス通信システムに使用され得る。「システム」および「ネットワーク」という用語は、しばしば互換的に使用される。ＣＤＭＡシステムは、ユニバーサルテレストリアルラジオアクセス（ＵＴＲＡ）、ｃｄｍａ２０００などの無線技術を実装し得る。ＵＴＲＡは、広帯域ＣＤＭＡ（Ｗ−ＣＤＭＡ（登録商標））およびＣＤＭＡの他の変形態を含む。さらに、ｃｄｍａ２０００は、ＩＳ−２０００、ＩＳ−９５およびＩＳ−８５６規格をカバーする。ＴＤＭＡシステムは、グローバルシステムフォーモバイル通信（ＧＳＭ（登録商標））などの無線技術を実装し得る。ＯＦＤＭＡシステムは、発展型ＵＴＲＡ（Ｅ−ＵＴＲＡ）、ウルトラモバイルブロードバンド（ＵＭＢ）、ＩＥＥＥ８０２．１１（Ｗｉ−Ｆｉ）、ＩＥＥＥ８０２．１６（ＷｉＭＡＸ（登録商標））、ＩＥＥＥ８０２．２０、Ｆｌａｓｈ−ＯＦＤＭ（登録商標）などの無線技術を実装し得る。ＵＴＲＡおよびＥ−ＵＴＲＡは、ユニバーサルモバイルテレコミュニケーションシステム（ＵＭＴＳ）の一部である。３ＧＰＰロングタームエボリューション（ＬＴＥ）は、Ｅ−ＵＴＲＡを使用するＵＭＴＳのリリースであり、これは、ダウンリンク上ではＯＦＤＭＡを採用し、アップリンク上ではＳＣ−ＦＤＭＡを採用する。ＵＴＲＡ、Ｅ−ＵＴＲＡ、ＵＭＴＳ、ＬＴＥおよびＧＳＭは、「第３世代パートナーシッププロジェクト」（３ＧＰＰ：3rd Generation Partnership Project）と称する団体からの文書に記載されている。さらに、ｃｄｍａ２０００およびＵＭＢは、「第３世代パートナーシッププロジェクト２」（３ＧＰＰ２：3rd Generation Partnership Project 2）と称する団体からの文書に記載されている。さらに、そのようなワイヤレス通信システムは、不対無資格スペクトル、８０２．ｘｘワイヤレスＬＡＮ、ＢＬＵＥＴＯＯＴＨ（登録商標）および任意の他の短距離または長距離ワイヤレス通信技法をしばしば使用するピアツーピア（たとえば、モバイルツーモバイル）アドホックネットワークシステムをさらに含み得る。
【００７６】
[0084]様々な態様または特徴が、いくつかのデバイス、構成要素、モジュールなどを含み得るシステムに関して提示される。様々なシステムは、追加のデバイス、構成要素、モジュールなどを含み得、および／または各図に関連して論じるデバイス、構成要素、モジュールなどのすべてを含まないことがあることを理解および諒解されたい。これらの手法の組合せも使用され得る。
【００７７】
[0085]本明細書で開示する態様に関して説明する様々な例示的な論理、論理ブロック、モジュール、および回路は、汎用プロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）または他のプログラマブル論理デバイス、個別ゲートまたはトランジスタ論理、個別ハードウェア構成要素、あるいは本明細書で説明する機能を実行するように設計されたそれらの任意の組合せを用いて実装または実行され得る。汎用プロセッサはマイクロプロセッサであり得るが、代替として、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、ＤＳＰとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、ＤＳＰコアと連携する１つまたは複数のマイクロプロセッサ、あるいは任意の他のそのような構成として実装され得る。さらに、少なくとも１つのプロセッサは、上記で説明したステップおよび／またはアクションのうちの１つまたは複数を実行するように動作可能な１つまたは複数のモジュールを備え得る。
【００７８】
[0086]さらに、本明細書で開示する態様に関して説明する方法またはアルゴリズムのステップおよび／またはアクションは、直接ハードウェアで実施され得るか、プロセッサによって実行されるソフトウェアモジュールで実施され得るか、またはその２つの組合せで実施され得る。ソフトウェアモジュールは、ＲＡＭメモリ、フラッシュメモリ、ＲＯＭメモリ、ＥＰＲＯＭメモリ、ＥＥＰＲＯＭ（登録商標）メモリ、レジスタ、ハードディスク、リムーバブルディスク、ＣＤ−ＲＯＭ、または当技術分野で知られている任意の他の形態の記憶媒体中に常駐し得る。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるようにプロセッサに結合され得る。代替として、記憶媒体はプロセッサに一体化され得る。さらに、いくつかの態様では、プロセッサおよび記憶媒体はＡＳＩＣ中に常駐し得る。さらに、ＡＳＩＣはユーザ端末中に常駐し得る。代替として、プロセッサおよび記憶媒体は、ユーザ端末中に個別構成要素として常駐し得る。さらに、いくつかの態様では、方法またはアルゴリズムのステップおよび／またはアクションは、コンピュータプログラム製品に組み込まれ得る、機械可読媒体および／またはコンピュータ可読媒体上のコードおよび／または命令の１つまたは任意の組合せ、あるいはそのセットとして常駐し得る。
【００７９】
[0087]１つまたは複数の態様では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装した場合、機能は、１つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶され得るか、あるいはコンピュータ可読媒体上で送信され得る。コンピュータ可読媒体は、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む、コンピュータ記憶媒体とコンピュータ通信媒体の両方を含む。記憶媒体は、コンピュータによってアクセスされ得る任意の利用可能な媒体であり得る。限定ではなく例として、そのようなコンピュータ可読媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭまたは他の光ディスクストレージ、磁気ディスクストレージまたは他の磁気ストレージデバイス、あるいは命令またはデータ構造の形態の所望のプログラムコードを搬送または記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と呼ばれ得る。たとえば、ソフトウェアが、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線（ＤＳＬ）、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、ＤＳＬ、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。本明細書で使用するディスク（disk）およびディスク（disc）は、コンパクトディスク（disc）（ＣＤ）、レーザーディスク（登録商標）（disc）、光ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピー（登録商標）ディスク（disk）およびｂｌｕ−ｒａｙ（登録商標）ディスク（disc）を含み、ディスク（disk）は、通常、データを磁気的に再生し、ディスク（disc）は、データをレーザーで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
【００８０】
[0088]上記の開示は、例示的な態様および／または実施形態について論じたが、添付の特許請求の範囲によって定義された説明した態様および／または実施形態の範囲から逸脱することなく、様々な変更および改変を本明細書で行うことができることに留意されたい。さらに、説明した態様および／または実施形態の要素は、単数形で説明または請求されていることがあるが、単数形への限定が明示的に述べられていない限り、複数形が企図される。さらに、任意の態様および／または実施形態の全部または一部は、別段の規定がない限り、任意の他の態様および／または実施形態の全部または一部とともに利用され得る。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
ユーザ機器をブートするための方法であって、
前記ユーザ機器のデバイスブートを実行することと、
前記ユーザ機器のための周辺機器と関連するドライバとを構成することと、
ハイレベルオペレーティングシステム（ＨＬＯＳ）をブートすることと
を備え、前記構成することは、前記ＨＬＯＳを前記ブートすることの前に行われる、方法。
［Ｃ２］
前記ユーザ機器のための前記関連するドライバをプリフェッチすることをさらに備え、前記プリフェッチすることは、前記ＨＬＯＳを前記ブートすることの前に行われる、Ｃ１に記載の方法。
［Ｃ３］
前記ユーザ機器のための周辺機器と関連するドライバとを構成することは、前記関連するドライバをアクティブにすることを備え、前記アクティブにすることは、前記ＨＬＯＳを前記ブートすることの前に行われる、Ｃ１に記載の方法。
［Ｃ４］
前記構成される周辺機器に関連する中間ドライバを識別することと、
プリＨＬＯＳ動作環境による使用のために前記中間ドライバをロードすることと
をさらに備え、前記ロードすることは、前記ユーザ機器が、前記ＨＬＯＳを前記ブートすることの前に前記周辺機器を使用することを可能にする、Ｃ１に記載の方法。
［Ｃ５］
周辺機器と関連するドライバとを構成することは、周辺機器と関連するドライバとを自動的に構成することを備える、Ｃ１に記載の方法。
［Ｃ６］
周辺機器と関連するドライバとを構成することが、周辺機器と関連するドライバとを手動で構成することを備える、Ｃ１に記載の方法。
［Ｃ７］
前記構成することは、
前記ユーザ機器に関連する周辺機器を決定することと、
周辺機器プロファイルテーブル中の各決定された周辺機器についてのプロファイルを更新することと、
前記ＨＬＯＳによる使用のために各周辺機器プロファイルに関連するドライバを準備することとをさらに備える、Ｃ１に記載の方法。
［Ｃ８］
前記ユーザ機器に関連する周辺機器を決定することは、
各周辺機器についてのプロファイルが前記ユーザ機器において利用可能であるかどうかを決定することと、
各周辺機器についての前記プロファイルが完全であるかどうかを検出することと、
各周辺機器についての前記プロファイルをエラー検査することとをさらに備える、Ｃ７に記載の方法。
［Ｃ９］
各周辺機器についての前記プロファイルが前記ユーザ機器において利用可能であるかどうかを決定することは、
特定の周辺機器についての前記プロファイルが前記ユーザ機器において利用可能でないと決定することと、
前記特定の周辺機器についての前記プロファイルが前記ユーザ機器の外部のロケーションにおいて利用可能であると決定すること、ここにおいて、前記外部ロケーションが、前記特定の周辺機器に関連する製造業者によって管理される、と、
前記外部ロケーションから前記特定の周辺機器についての前記プロファイルを検索することと
をさらに備え、前記特定の周辺機器についての前記プロファイルを更新することは、前記検索されたプロファイルに基づいて更新することを備える、Ｃ８に記載の方法。
［Ｃ１０］
各周辺機器についての前記プロファイルが前記ユーザ機器において利用可能であるかどうかを決定することは、
特定の周辺機器についての前記プロファイルが前記ユーザ機器において利用可能でないと決定することと、
前記特定の周辺機器についての前記プロファイルが前記ユーザ機器の外部のロケーションにおいて利用可能でないと決定することと
をさらに備え、前記外部ロケーションは、前記特定の周辺機器に関連する製造業者によって管理され、
前記特定の周辺機器についてのプロファイルを更新することは、前記特定の周辺機器についてのエラーメッセージを前記周辺機器プロファイルテーブルに記憶することを備える、Ｃ８に記載の方法。
［Ｃ１１］
ユーザ機器をブートするための装置であって、
前記ユーザ機器のデバイスブートを実行するための手段と、
前記ユーザ機器のための周辺機器と関連するドライバとを構成するための手段と、
ハイレベルオペレーティングシステム（ＨＬＯＳ）をブートするための手段と
を備え、前記構成することは、前記ＨＬＯＳを前記ブートすることの前に行われる、装置。
［Ｃ１２］
ユーザ機器をブートするためのコンピュータプログラム製品であって、
コンピュータに、
前記ユーザ機器のデバイスブートを実行することと、
前記ユーザ機器のための周辺機器と関連するドライバとを構成することと、
ハイレベルオペレーティングシステム（ＨＬＯＳ）をブートすることと
を行わせるためのコードを備える、
コンピュータ可読媒体を備え、前記構成することは、前記ＨＬＯＳを前記ブートすることの前に行われる、コンピュータプログラム製品。
［Ｃ１３］
ユーザ機器をブートするための装置であって、
メモリと、
トランシーバと、
プロセッサと
を備え、前記プロセッサは、
前記ユーザ機器のデバイスブートを実行することと、
前記ユーザ機器のための周辺機器と関連するドライバとを構成することと、
ハイレベルオペレーティングシステム（ＨＬＯＳ）をブートすることと
を行うように構成され、前記構成することは、前記ＨＬＯＳを前記ブートすることの前に行われる、装置。
［Ｃ１４］
前記プロセッサは、前記ＨＬＯＳを前記ブートすることの前に前記ユーザ機器のための前記関連するドライバをプリフェッチするようにさらに構成される、Ｃ１３に記載の装置。
［Ｃ１５］
前記ユーザ機器のための周辺機器と関連するドライバとを構成するように構成される前記プロセッサは、前記ＨＬＯＳを前記ブートすることの前に前記関連するドライバをアクティブにするように構成される前記プロセッサを備える、Ｃ１３に記載の装置。
［Ｃ１６］
前記プロセッサは、
前記構成される周辺機器に関連する中間ドライバを識別することと、
プリＨＬＯＳ動作環境による使用のために前記中間ドライバをロードすることと
を行うようにさらに構成され、前記ロードすることは、前記ユーザ機器が、前記ＨＬＯＳを前記ブートすることの前に前記周辺機器を使用することを可能にする、Ｃ１３に記載の装置。
［Ｃ１７］
周辺機器と関連するドライバとを構成するように構成される前記プロセッサは、周辺機器と関連するドライバとを自動的に構成するように構成される前記プロセッサを備える、Ｃ１３に記載の装置。
［Ｃ１８］
周辺機器と関連するドライバとを構成するように構成される前記プロセッサは、周辺機器と関連するドライバとを手動で構成するように構成される前記プロセッサを備える、Ｃ１３に記載の装置。
［Ｃ１９］
周辺機器と関連するドライバとを構成するように構成される前記プロセッサは、
前記ユーザ機器に関連する周辺機器を決定することと、
周辺機器プロファイルテーブル中の各決定された周辺機器についてのプロファイルを更新することと、
前記ＨＬＯＳによる使用のために各周辺機器プロファイルに関連するドライバを準備することとを行うように構成される前記プロセッサをさらに備える、Ｃ１３に記載の装置。
［Ｃ２０］
前記ユーザ機器に関連する周辺機器を決定するように構成される前記プロセッサは、
各周辺機器についてのプロファイルが前記ユーザ機器において利用可能であるかどうかを決定することと、
各周辺機器についての前記プロファイルが完全であるかどうかを検出することと、
各周辺機器についての前記プロファイルをエラー検査することとを行うように構成される前記プロセッサをさらに備える、Ｃ１９に記載の装置。
［Ｃ２１］
各周辺機器についてのプロファイルが前記ユーザ機器において利用可能であるかどうかを決定するように構成される前記プロセッサは、
特定の周辺機器についてのプロファイルが前記ユーザ機器において利用可能でないと決定することと、
前記特定の周辺機器についての前記プロファイルが前記ユーザ機器の外部のロケーションにおいて利用可能であると決定することと
を行うように構成され、前記外部ロケーションは、前記特定の周辺機器に関連する製造業者によって管理される、前記プロセッサと、
前記外部ロケーションから前記特定の周辺機器についての前記プロファイルを検索するように構成される前記トランシーバと
をさらに備え、前記特定の周辺機器についてのプロファイルを更新することは、前記検索されたプロファイルに基づいて前記特定の周辺機器についての前記プロファイルを更新することを備える、Ｃ２０に記載の装置。
［Ｃ２２］
各周辺機器についてのプロファイルが前記ユーザ機器において利用可能であるかどうかを決定するように構成される前記プロセッサは、
特定の周辺機器についてのプロファイルが前記ユーザ機器において利用可能でないと決定することと、
前記特定の周辺機器についての前記プロファイルが前記ユーザ機器の外部のロケーションにおいて利用可能でないと決定することと
を行うように構成される前記プロセッサをさらに備え、前記外部ロケーションは、前記特定の周辺機器に関連する製造業者によって管理され、前記特定の周辺機器についてのプロファイルを更新することは、前記特定の周辺機器についてのエラーメッセージを前記周辺機器プロファイルテーブルに記憶することを備える、Ｃ２０に記載の装置。
［Ｃ２３］
ユーザ機器のための周辺デバイスドライバをロードするための方法であって、
ユーザ機器に関連することができる周辺機器を決定することと、
前記決定された周辺機器のためのドライバをロードすることと
を備え、前記ロードされたドライバは、ハイレベルオペレーティングシステム（ＨＬＯＳ）がその上に与えられるユーザ機器のタイプにかかわらず、ＨＬＯＳアーキテクチャに関連する、方法。
［Ｃ２４］
ドライバをロードすることは、複数の周辺機器カテゴリの各々において周辺機器の知られているセットのためのドライバのセットをロードすることを備える、Ｃ２３に記載の方法。
［Ｃ２５］
前記ドライバのセットは、モノリシックリリース中でロードされる、Ｃ２４に記載の方法。
［Ｃ２６］
ドライバをロードすることは、
複数の周辺機器カテゴリの各々において周辺機器のためのドライバのためのプレースホルダーをロードすることと、
前記ユーザ機器に関連する周辺機器を決定することと、
前記決定された周辺機器に関連するドライバを識別することと、
前記識別されたドライバを前記プレースホルダー中に動的にロードすることとを備える、Ｃ２３に記載の方法。
［Ｃ２７］
ユーザ機器のための周辺デバイスドライバをロードするための装置であって、
ユーザ機器に関連することができる周辺機器を決定するための手段と、
前記決定された周辺機器のためのドライバをロードするための手段と
を備え前記ロードされたドライバは、ハイレベルオペレーティングシステム（ＨＬＯＳ）がその上に与えられるユーザ機器のタイプにかかわらず、ＨＬＯＳアーキテクチャに関連する、装置。
［Ｃ２８］
ユーザ機器のための周辺デバイスドライバをロードするためのコンピュータプログラム製品であって、
コンピュータに、
ユーザ機器に関連することができる周辺機器を決定することと、
前記決定された周辺機器のためのドライバをロードすることと
を行わせるコードを備える、
コンピュータ可読媒体を備え、前記ロードされたドライバは、ハイレベルオペレーティングシステム（ＨＬＯＳ）がその上に与えられるユーザ機器のタイプにかかわらず、ＨＬＯＳアーキテクチャに関連する、コンピュータプログラム製品。
［Ｃ２９］
ユーザ機器のための周辺デバイスドライバをロードするための装置であって、
メモリと、
トランシーバと、
プロセッサと
を備え、前記プロセッサは、
ユーザ機器に関連することができる周辺機器を決定することと、
前記決定された周辺機器のためのドライバをロードすることと
を行うように構成され、前記ロードされたドライバは、ハイレベルオペレーティングシステム（ＨＬＯＳ）がその上に与えられるユーザ機器のタイプにかかわらず、ＨＬＯＳアーキテクチャに関連する、装置。
［Ｃ３０］
ドライバをロードするように構成される前記プロセッサは、複数の周辺機器カテゴリの各々において周辺機器の知られているセットのためのドライバのセットをロードするように構成される前記プロセッサを備える、Ｃ２９に記載の装置。
［Ｃ３１］
ドライバの前記セットは、モノリシックリリース中でロードされる、Ｃ３０に記載の装置。
［Ｃ３２］
ドライバをロードするように構成される前記プロセッサは、
複数の周辺機器カテゴリの各々において周辺機器のためのドライバのためのプレースホルダーをロードすることと、
前記ユーザ機器に関連する周辺機器を決定することと、
前記決定された周辺機器に関連するドライバを識別することと、
前記識別されたドライバを前記プレースホルダー中に動的にロードすることと
を行うように構成される前記プロセッサを備える、Ｃ２９に記載の装置。
【図１】
0005996812.tif 000002
【図２】
0005996812.tif 000003
【図３】
0005996812.tif 000004
【図４】
0005996812.tif 000005
【図５】
0005996812.tif 000006
【図６】
0005996812.tif 000007
【図７】
0005996812.tif 000008
【図８】
0005996812.tif 000009