JP2006185387A - プログラム及びデータ処理装置 - Google Patents
プログラム及びデータ処理装置 Download PDFInfo
- Publication number
- JP2006185387A JP2006185387A JP2004381196A JP2004381196A JP2006185387A JP 2006185387 A JP2006185387 A JP 2006185387A JP 2004381196 A JP2004381196 A JP 2004381196A JP 2004381196 A JP2004381196 A JP 2004381196A JP 2006185387 A JP2006185387 A JP 2006185387A
- Authority
- JP
- Japan
- Prior art keywords
- control
- program
- computer
- script
- processor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
【課題】特権モードが複数あるオペレーティングシステムの制御下で不特定あるいは多数の機能を容易に実現できるようにするためのプログラム等を提供することである。
【解決手段】コンピュータはカーネルモード及びユーザモードを提供するオペレーティングシステム(OS)を実行し、OSの制御に従って、カーネルモードでデバイスドライバを実行し、ユーザモードでアプリケーションプログラムを実行する。そして、デバイスドライバの制御に従って行われるべき処理(例えば、周辺デバイス2を制御する処理など)を記述するスクリプトをアプリケーションプログラムの制御に従って生成すると、このスクリプトをデバイスドライバの制御に従って解釈することによりスクリプトが記述する処理を特定し、特定した処理を、デバイスドライバの制御に従って実行する。
【選択図】図2
【解決手段】コンピュータはカーネルモード及びユーザモードを提供するオペレーティングシステム(OS)を実行し、OSの制御に従って、カーネルモードでデバイスドライバを実行し、ユーザモードでアプリケーションプログラムを実行する。そして、デバイスドライバの制御に従って行われるべき処理(例えば、周辺デバイス2を制御する処理など)を記述するスクリプトをアプリケーションプログラムの制御に従って生成すると、このスクリプトをデバイスドライバの制御に従って解釈することによりスクリプトが記述する処理を特定し、特定した処理を、デバイスドライバの制御に従って実行する。
【選択図】図2
Description
本発明は、プログラム及びデータ処理装置に関し、特に、複数の機能を実現するためのプログラム及びデータ処理装置に関する。
近年、コンピュータの高性能化に伴って機能も複雑化したため、コンピュータの処理の効率化、ユーザにとってのコンピュータの操作性の向上、プログラムの開発者にとっての開発の容易性、及びその他様々な目的に沿った配慮を行う必要性が出てきた。
このため、コンピュータに所期の処理を行わせる機能は、基本プログラムであるオペレーティングシステム(OS)と、OSの制御の下に実行される他のプログラムとによって分担された形で実現されるのが通常である。
このため、コンピュータに所期の処理を行わせる機能は、基本プログラムであるオペレーティングシステム(OS)と、OSの制御の下に実行される他のプログラムとによって分担された形で実現されるのが通常である。
ところが近年は、OS自体も複雑化しており、例えば、コンピュータとユーザないしプログラム開発者との間のインターフェースを図ったり、不適切なアクセスの発生を防いだりする等の目的で、オペレーティングシステムの動作モードとして、実行可能な処理の範囲が互いに異なる複数の特権モードを提供するOSが一般的になっている。
このため、プログラム開発者等がコンピュータに行わせようとする機能が1個の特権モードの下では実現できない場合は、複数の特権モードそれぞれの下で実行される複数のプログラムを作成する必要があった。
例えば、ユーザーインターフェースを提供できないがハードウェアを制御する機能を提供する特権モードであるカーネルモードと、ハードウェアを制御する機能を提供できないがユーザーインターフェースを提供する特権モードであるユーザモードと、を提供するOSの下で、ユーザの指示に従ってハードウェアを制御する機能を実現したい場合には、ユーザモードで動作するアプリケーションプログラムと、カーネルモードで動作するプログラムであるデバイスドライバとが作成されていた。
例えば、ユーザーインターフェースを提供できないがハードウェアを制御する機能を提供する特権モードであるカーネルモードと、ハードウェアを制御する機能を提供できないがユーザーインターフェースを提供する特権モードであるユーザモードと、を提供するOSの下で、ユーザの指示に従ってハードウェアを制御する機能を実現したい場合には、ユーザモードで動作するアプリケーションプログラムと、カーネルモードで動作するプログラムであるデバイスドライバとが作成されていた。
そして、複数の機能を相互に連係させて機能させるためには、それぞれの機能を実現するプログラムの処理相互間での連携をとる必要があった。このため従来より、そのような連携を容易にするための技術が考えられてきた(例えば、特許文献1参照)。
特開2001−222412号公報
しかし、従来は、実現したい機能毎にプログラムを用意していたため、たとえ特許文献1の技術を用いたとしても、不特定あるいは多数の機能を実現したい場合(例えば、コンピュータに複数種類のハードウェアを接続して利用できるようにするため、これら複数種類のハードウェアのそれぞれについてデバイスドライバを用意する、といった場合)は、これらの機能を実現してしかも相互の連携が正常に行われるようなプログラム群を作成することが煩雑であった。特に、これらのプログラムが互いに異なる開発者により開発される場合は、人件費の増大に加え、仕様の統一が難しくなり混乱を招くなどの弊害が大きかった。
この発明は上記実状に鑑みてなされたもので、特権モードが複数あるオペレーティングシステムの制御下で不特定あるいは多数の機能を容易に実現できるようにするためのプログラム及びデータ処理装置を提供することを目的とする。
上記目的を達成するため、本発明の第1の観点に係るプログラムは、
第1の特権モードであるカーネルモード及び第2の特権モードであるユーザモードをコンピュータに実現させるためのオペレーティングシステムを実行する当該コンピュータにより、前記オペレーティングシステムの制御に従って、前記カーネルモードで実行されるためのプログラムであって、
前記コンピュータが、前記オペレーティングシステムの制御に従って、前記ユーザモードでアプリケーションプログラムを実行することにより、前記カーネルモードで行われるべき処理を記述するスクリプトを生成したとき、前記カーネルモードで前記コンピュータに、前記スクリプトを解釈することにより前記処理を特定する機能と、特定した当該処理を実行する機能と、を行わせるためのプログラムである、
ことを特徴とする。
第1の特権モードであるカーネルモード及び第2の特権モードであるユーザモードをコンピュータに実現させるためのオペレーティングシステムを実行する当該コンピュータにより、前記オペレーティングシステムの制御に従って、前記カーネルモードで実行されるためのプログラムであって、
前記コンピュータが、前記オペレーティングシステムの制御に従って、前記ユーザモードでアプリケーションプログラムを実行することにより、前記カーネルモードで行われるべき処理を記述するスクリプトを生成したとき、前記カーネルモードで前記コンピュータに、前記スクリプトを解釈することにより前記処理を特定する機能と、特定した当該処理を実行する機能と、を行わせるためのプログラムである、
ことを特徴とする。
このようなプログラムを実行するコンピュータによれば、ユーザーモードでの処理からカーネルモードでの処理へとスクリプトが引き渡される結果、ユーザーモードでは実行できない処理をカーネルモードで実行させることができる。また、オペレーティングシステムの制御下で不特定あるいは多数の機能を実現したい場合に当該プログラムの更新を行う必要がない。従って、カーネルモードで実行される当該プログラムを用いれば当該不特定あるいは多数の機能を実現することが容易になる。
前記プロセッサにデバイスが接続されている場合であって、前記スクリプトが、前記カーネルモードで行われるべき当該デバイスの制御の内容を記述するものである場合、前記プログラムは、例えば、前記コンピュータに、当該デバイスを制御する処理を特定して前記カーネルモードで当該処理を実行する機能を行わせるためのものであればよい。
また、本発明の第2の観点に係るデータ処理装置は、
第1の特権モードであるカーネルモード及び第2の特権モードであるユーザモードをコンピュータに実現させるためのオペレーティングシステムを実行する当該コンピュータより構成されており、
前記コンピュータは、
前記オペレーティングシステムの制御に従って、前記カーネルモードでドライバプログラムを実行し、
前記オペレーティングシステムの制御に従って、前記ユーザモードでアプリケーションプログラムを実行し、
前記ドライバプログラムの制御に従って行われるべき処理を記述するスクリプトを前記アプリケーションプログラムの制御に従って生成し、
前記ドライバプログラムの制御に従って前記スクリプトを解釈することにより前記処理を特定し、特定した当該処理を、前記ドライバプログラムの制御に従って実行する、
ことを特徴とする。
第1の特権モードであるカーネルモード及び第2の特権モードであるユーザモードをコンピュータに実現させるためのオペレーティングシステムを実行する当該コンピュータより構成されており、
前記コンピュータは、
前記オペレーティングシステムの制御に従って、前記カーネルモードでドライバプログラムを実行し、
前記オペレーティングシステムの制御に従って、前記ユーザモードでアプリケーションプログラムを実行し、
前記ドライバプログラムの制御に従って行われるべき処理を記述するスクリプトを前記アプリケーションプログラムの制御に従って生成し、
前記ドライバプログラムの制御に従って前記スクリプトを解釈することにより前記処理を特定し、特定した当該処理を、前記ドライバプログラムの制御に従って実行する、
ことを特徴とする。
このようなデータ処理装置によれば、ユーザーモードでの処理からカーネルモードでの処理へとスクリプトが引き渡される結果、ユーザーモードでは実行できない処理をカーネルモードで実行させることができる。また、オペレーティングシステムの制御下で不特定あるいは多数の機能をしたい場合にドライバプログラムを更新する必要がない。従って、ドライバプログラムを用いて当該不特定あるいは多数の機能を実現することが容易になる。
前記ドライバプログラムは、例えば、前記プロセッサに接続されたデバイスを制御する処理を前記プロセッサに行わせるプログラムより構成されていてもよく、この場合、前記アプリケーションプログラムは、例えば、前記ドライバプログラムの制御に従って行われるべき前記デバイスの制御の内容を記述するものとして、前記スクリプトを前記コンピュータに生成させるものであってもよい。
この発明によれば、特権モードが複数あるオペレーティングシステムの制御下で不特定あるいは多数の機能を容易に実現できるようにするためのプログラム及びデータ処理装置が実現される。
以下、この発明の実施の形態を、図面を参照して説明する。
図1は、この発明の実施の形態に係るコンピュータシステムの物理的構成を示す図である。図示するように、このコンピュータシステムは、コンピュータ1と、周辺デバイス2とより構成されている。
図1は、この発明の実施の形態に係るコンピュータシステムの物理的構成を示す図である。図示するように、このコンピュータシステムは、コンピュータ1と、周辺デバイス2とより構成されている。
図1に示すように、コンピュータ1は、プロセッサ11と、揮発性メモリ12と、不揮発性メモリ13と、入力部14と、出力部15と、記録媒体ドライブ部16と、周辺デバイスインターフェース部17とより構成されている。揮発性メモリ12、不揮発性メモリ13、入力部14、出力部15、記録媒体ドライブ部16及び周辺デバイスインターフェース部17は、内部バスを介してプロセッサ11に接続されている。
プロセッサ11は、CPU(Central Processing Unit)やDSP(Digital Signal Processor)等からなっており、不揮発性メモリ12に記憶されている後述のオペレーティングシステム(OS)、ユーザーモードアプリケーションプログラム(以下「アプリケーション」とも略記する)及びカーネルモードデバイスドライバ(以下「デバイスドライバ」とも略記する)等のプログラムを読み出し、これらのプログラムを実行することにより、後述する処理を行う。
揮発性メモリ12は、RAM(Random Access Memory)等からなっており、プロセッサ11のアクセスに従って、データの記憶やプロセッサ11への供給を行う。揮発性メモリ12の記憶領域は、プロセッサ11の作業領域として機能する。
不揮発性メモリ13は、ハードディスク装置等からなっており、上述のOSを予め記憶し、プロセッサ11の読み出しアクセスに従ってプロセッサ11へと供給する。
図2に論理的構成を模式的に示すように、不揮発性メモリ13が記憶するこのOSは、少なくとも2種類の特権モードを提供するものであり、これら2種類の特権モードの一方がカーネルモード、他方がユーザモードであるものとする。なお、このように複数の特権モードを提供するOSとしては、例えばLinux(登録商標)や、マイクロソフト社のWindows(登録商標)などが挙げられる。
そして、カーネルモードにおいてプロセッサ11は、周辺デバイス2等が行うプロセッサ11へのハードウェア割り込みに応答する処理や、揮発性メモリ12等との間でのDMA(Direct Memory Access)を制御する処理など、周辺デバイス2や揮発性メモリ12等を直接制御する(つまり他の特権モードでの処理を介さずに制御する)処理を実行することができ、一方、ユーザーインターフェースの機能(操作者の操作に従ったデータの入力や、操作者に視認させるためのデータの出力など)を提供する処理や、データ処理の機能(周辺デバイス2等からのデータの受け取りや、受け取ったデータの加工や、周辺デバイス2等へのデータの出力)を実行することができないものとする。
これに対し、ユーザーモードにおいてプロセッサ11は、ユーザーインターフェースの機能を提供する処理を実行できる一方、プロセッサ11への割り込みに応答する処理や、DMAを制御する処理など、周辺デバイス2や揮発性メモリ12等を直接制御する処理を実行することができないものとする。
これに対し、ユーザーモードにおいてプロセッサ11は、ユーザーインターフェースの機能を提供する処理を実行できる一方、プロセッサ11への割り込みに応答する処理や、DMAを制御する処理など、周辺デバイス2や揮発性メモリ12等を直接制御する処理を実行することができないものとする。
一方、プロセッサ11は、OSの制御の下、上述のデバイスドライバ及びアプリケーションを、このコンピュータシステムを操作するユーザ等の操作に従って、記録媒体ドライブ部16にセットされた記録媒体などから取得し、不揮発性メモリ13に書き換え可能に記憶させる。そして不揮発性メモリ13は、プロセッサ11の読み出しアクセスに従って、自己が記憶するアプリケーションをプロセッサ11へと供給する。
不揮発性メモリ13に記憶される上述のデバイスドライバは、上述のカーネルモードでOSの制御の下にプロセッサ11によって(例えば後述する手順で)実行されるプログラムである。
図2に示すように、デバイスドライバは、プロセッサ11に周辺デバイス2や揮発性メモリ12等を直接制御させることで、割り込みへの応答やDMAの制御の処理を行わせる。
具体的には、割り込みへの応答やDMAの制御の処理の手順を記述するものとしてユーザーモードでの処理で生成されるスクリプトを取得し、このスクリプトを解釈することによりこのスクリプトが記述する処理の手順を特定して、特定した手順で割り込みへの応答やDMAの制御の処理を行う、という機能をカーネルモードでプロセッサ11に行わせるものである。
なお、スクリプトは、例えば、図3に示すようなコマンドセットに含まれるコマンドを用いて記述されていればよい。
図2に示すように、デバイスドライバは、プロセッサ11に周辺デバイス2や揮発性メモリ12等を直接制御させることで、割り込みへの応答やDMAの制御の処理を行わせる。
具体的には、割り込みへの応答やDMAの制御の処理の手順を記述するものとしてユーザーモードでの処理で生成されるスクリプトを取得し、このスクリプトを解釈することによりこのスクリプトが記述する処理の手順を特定して、特定した手順で割り込みへの応答やDMAの制御の処理を行う、という機能をカーネルモードでプロセッサ11に行わせるものである。
なお、スクリプトは、例えば、図3に示すようなコマンドセットに含まれるコマンドを用いて記述されていればよい。
一方、上述のアプリケーションは、上述のユーザーモードでOSの制御の下にプロセッサ11によって(例えば後述する手順で)実行されるプログラムであるものとし、このアプリケーションがプロセッサに実行させる処理のうちには、上述のスクリプトを生成する処理が含まれているものとする。具体的なスクリプトとしては、割り込みに応答する処理を記述するものとして、例えば図4に示すようなものが考えられ、また、DMAを制御する処理を記述するものとして、例えば図5に示すようなものが考えられる。
入力部14は、キーボード、ポインティングデバイス等からなっており、操作者の操作に従ったデータをプロセッサ11へと供給する。
出力部15は、液晶ディスプレイ等からなっており、プロセッサ11の指示に従った文字や図形を自己の表示画面上に表示する。
出力部15は、液晶ディスプレイ等からなっており、プロセッサ11の指示に従った文字や図形を自己の表示画面上に表示する。
記録媒体ドライブ部16は、記録媒体(例えば、フレキシブルディスクやCD−R(Compact Disc-Recordable)など)に記録されたデータを読み取る記録媒体ドライブ装置(フレキシブルディスクドライブや、CD−ROMドライブなど)からなっている。記録媒体ドライブ部16は、プロセッサ11の指示に従い、自己にセットされた記録媒体からデータを読み出してプロセッサ11に供給したり、当該機録媒体にデータを書き込んだりする。
周辺デバイスインターフェース部17は、PCI(Personal Computer Interface)回路などからなっており、周辺デバイス(例えば、周辺デバイス2)を着脱可能に装着するためのスロットを備えている。周辺デバイスインターフェース部17は、自己のスロットに装着された周辺デバイスが、コンピュータ1の各部(具体的には、プロセッサ11、揮発性メモリ12、不揮発性メモリ13、入力部14及び出力部15及び記録媒体ドライブ部16のうちの一部又は全部)との間で行うデータ交換を媒介する。
周辺デバイス2は、マイクロコンピュータあるいはその他任意の電子回路などからなっており、周辺デバイスインターフェース部17が備える上述のスロットに着脱可能に構成されている。周辺デバイス2は、周辺デバイスインターフェース部17のスロットに装着された状態で、周辺デバイスインターフェース部17を介し、コンピュータ1の各部との間でデータ交換を行う。
次に、このコンピュータシステムの動作を、図6を参照して説明する。図6は、図1のコンピュータシステムの動作の流れを示す図である。
このコンピュータシステムが起動すると、プロセッサ11はまず不揮発性メモリ13にアクセスし、不揮発性メモリ13よりOSを読み出して実行する。
OSの実行が始まると、プロセッサ11は、デバイスドライバをロードする。すなわち、プロセッサ11は、OSの制御の下、不揮発性メモリ13よりデバイスドライバを読み出し、これをカーネルモードで実行可能とするため、揮発性メモリ12の記憶領域に保管する。
OSの実行が始まると、プロセッサ11は、デバイスドライバをロードする。すなわち、プロセッサ11は、OSの制御の下、不揮発性メモリ13よりデバイスドライバを読み出し、これをカーネルモードで実行可能とするため、揮発性メモリ12の記憶領域に保管する。
次に、プロセッサ11は、入力部14を操作するユーザの指示に応答して、OSの制御に従って不揮発性メモリ13よりアプリケーションを読み出し、これをユーザモードで実行可能とするため、揮発性メモリ12の記憶領域に保管し、次いで、保管されたこのアプリケーションをユーザモードで実行する。
実行中のアプリケーションの処理で、デバイスドライバの処理との間でのデータ交換が必要になると、プロセッサ11は、アプリケーションの処理の一環として、デバイスドライバ11のオープンを要求する(図6、ステップS11)。するとプロセッサ11は、OSの制御の下、この要求に従って、揮発性メモリ12に保管されているデバイスドライバをカーネルモードで実行する。
そして、プロセッサ11は、アプリケーションの制御に従って、例えば図4に示すような割り込み応答用の処理を記述するスクリプトや、図5に示すようなDMA制御用の処理を記述するスクリプトを生成し、揮発性メモリ12の記憶領域に保管する(ステップS12及びS13)。
すなわち、例えば周辺デバイス2からデータをDMAで揮発性メモリ12に転送する処理の場合には、周辺デバイス2がデータの転送を完了した事をアプリケーションの処理に対して通知するためのパラメータ(例えば割り込みマスク、割り込み要因クリア)をステップS12で生成、保管し、DMAによるデータの転送のための各種パラメータ(例えば、ソースアドレス、ディスティネーションアドレス、転送バイト数及び転送方向)をステップS13で生成し保管する。
すなわち、例えば周辺デバイス2からデータをDMAで揮発性メモリ12に転送する処理の場合には、周辺デバイス2がデータの転送を完了した事をアプリケーションの処理に対して通知するためのパラメータ(例えば割り込みマスク、割り込み要因クリア)をステップS12で生成、保管し、DMAによるデータの転送のための各種パラメータ(例えば、ソースアドレス、ディスティネーションアドレス、転送バイト数及び転送方向)をステップS13で生成し保管する。
そしてプロセッサ11は、DMA制御の処理が必要となったとき、DMA制御用の処理を記述するスクリプトを、デバイスドライバの制御に従って揮発性メモリ12の記憶領域から取得し、取得したスクリプトを解読することにより、各種パラメータを設定する(ステップS21)。つまり、プロセッサ11は、デバイスドライバの処理に基づいて実行されるDMAによるデータの転送のための各種パラメータ(例えば、ソースアドレス、ディスティネーションアドレス、転送バイト数及び転送方向)を、ステップS13で生成及び保管されたスクリプトの内容に従って設定する。
なお、プロセッサ11は、デバイスドライバの処理においては、ステップS12で生成及び保管されたスクリプトの実行を、周辺デバイス2が割り込みを発生させるまで(すなわち、後述するステップS32の処理が行われるまで)保留する。
なお、プロセッサ11は、デバイスドライバの処理においては、ステップS12で生成及び保管されたスクリプトの実行を、周辺デバイス2が割り込みを発生させるまで(すなわち、後述するステップS32の処理が行われるまで)保留する。
プロセッサ11は、DMAによる各種パラメータが設定され周辺デバイス2がDMAによりデータを転送することが可能となった時点で、DMA開始を周辺デバイス2に指示する。周辺デバイス2はこの指示に応答して、例えばコンピュータ1の揮発性メモリ12との間でDMAによるデータの転送を行う(ステップS22及びS31)。周辺デバイス2は、DMAによる転送が終了すると、プロセッサ11に、割り込み要求を示す信号を送る(ステップS32)。
なお、周辺デバイス2の一度に転送できるDMAの転送バイト数が、ステップS21で設定されたパラメータが示す転送バイト数より少ない場合、周辺デバイス2は揮発性メモリ12等との間で複数回のDMAによるデータの転送を行う。そして、割り込み要求を示す信号の送信は、最終回の転送が終了した後に行う。
デバイスドライバの処理を行うプロセッサ11は、割り込み要求を示す信号に応答して、ステップS12で生成し保管されたスクリプトを取得し、割り込みによるDMA終了をアプリケーションに通知するための各種パラメータ(例えば割り込みマスク、割り込み要因クリア)を、このスクリプトの内容に従って設定する(ステップS23)。そして、割り込みがDMA終了を示すものであればDMA終了の通知を生成してアプリケーションの処理に引き渡す(ステップS24)。ステップS24の処理の結果、DMAは終了する。
なお、周辺デバイス2の一度に転送できるDMAの転送バイト数が、ステップS21で設定されたパラメータが示す転送バイト数より少ない場合、周辺デバイス2は揮発性メモリ12等との間で複数回のDMAによるデータの転送を行う。そして、割り込み要求を示す信号の送信は、最終回の転送が終了した後に行う。
デバイスドライバの処理を行うプロセッサ11は、割り込み要求を示す信号に応答して、ステップS12で生成し保管されたスクリプトを取得し、割り込みによるDMA終了をアプリケーションに通知するための各種パラメータ(例えば割り込みマスク、割り込み要因クリア)を、このスクリプトの内容に従って設定する(ステップS23)。そして、割り込みがDMA終了を示すものであればDMA終了の通知を生成してアプリケーションの処理に引き渡す(ステップS24)。ステップS24の処理の結果、DMAは終了する。
以上説明した動作を行う結果、このコンピュータシステムでは、ユーザーモードでの処理からカーネルモードでの処理へとスクリプトが引き渡される結果、ユーザーモードでは実行できない処理をカーネルモードで実行させることができる。また、OSの制御下で不特定あるいは多数の機能を処理したい場合にデバイスドライバの更新を行う必要がない。従って、デバイスドライバを用いて当該不特定あるいは多数の機能を実現することが容易になる。
なお、このコンピュータシステムの構成は上述のものに限られない。
例えば、コンピュータ1及び周辺デバイス2は、必ずしもPCIを介して互いに接続される必要はなく、相互接続の態様は任意である。従って、例えばコンピュータ1及び周辺デバイス2が内部バスを介して直接に接続されていてもよいし、ATAPI(AT Attachment Packet Interface)や、USB(Universal Serial Bus)インターフェースや、IEEE1394インターフェースや、ブルートゥース(登録商標)あるいはその他任意のインターフェース回路を介していてもよい。
例えば、コンピュータ1及び周辺デバイス2は、必ずしもPCIを介して互いに接続される必要はなく、相互接続の態様は任意である。従って、例えばコンピュータ1及び周辺デバイス2が内部バスを介して直接に接続されていてもよいし、ATAPI(AT Attachment Packet Interface)や、USB(Universal Serial Bus)インターフェースや、IEEE1394インターフェースや、ブルートゥース(登録商標)あるいはその他任意のインターフェース回路を介していてもよい。
また、デバイスドライバがプロセッサ11に行わせる処理は、割り込みへの応答やDMAの制御に限られない。従って、例えば、コンピュータ1の各部あるいはコンピュータ1に接続された任意のデバイスを制御する任意の処理を、デバイスドライバがプロセッサ11に行わせるようにしてよい。一方、このコンピュータシステムは必ずしも周辺デバイス2を備えていなくてもよく、この場合、コンピュータ1は周辺デバイス2を装着可能に構成されていなくてもよい。
また、デバイスドライバが提供するコマンドセットには、OSの制御の下に行われる所定の一連の処理をマクロ定義するコマンドが含まれていてもよい。
また、スクリプトは必ずしも、プロセッサ11によりアプリケーションの処理で生成される必要はない。従ってスクリプトは、例えば、予め作成されて不揮発性メモリ13の記憶領域やあるいは記録媒体ドライブ部16によるデータの読み出しが可能な任意の記録媒体に保管されていてもよい。この場合、プロセッサ11は、アプリケーションの処理に従って任意のタイミングで、不揮発性メモリ13や記録媒体からこのスクリプトを読み出すようにすればよい。
さらに、このコンピュータシステムの初期化時に、スクリプトを含んだ固定ファイルをプロセッサ11が外部の記憶装置等から読み込んで不揮発性メモリ13の記憶領域に保管し、必要なタイミングで読み出して解読等するようにしてもよい。
また、プロセッサ11は、不揮発性メモリ13等に保管されているスクリプトと、アプリケーションの処理に従って自ら生成するスクリプトとを併用してもよい。
また、デバイスドライバが提供するコマンドセットには、OSの制御の下に行われる所定の一連の処理をマクロ定義するコマンドが含まれていてもよい。
また、スクリプトは必ずしも、プロセッサ11によりアプリケーションの処理で生成される必要はない。従ってスクリプトは、例えば、予め作成されて不揮発性メモリ13の記憶領域やあるいは記録媒体ドライブ部16によるデータの読み出しが可能な任意の記録媒体に保管されていてもよい。この場合、プロセッサ11は、アプリケーションの処理に従って任意のタイミングで、不揮発性メモリ13や記録媒体からこのスクリプトを読み出すようにすればよい。
さらに、このコンピュータシステムの初期化時に、スクリプトを含んだ固定ファイルをプロセッサ11が外部の記憶装置等から読み込んで不揮発性メモリ13の記憶領域に保管し、必要なタイミングで読み出して解読等するようにしてもよい。
また、プロセッサ11は、不揮発性メモリ13等に保管されているスクリプトと、アプリケーションの処理に従って自ら生成するスクリプトとを併用してもよい。
以上、この発明の実施の形態を説明したが、この発明のコンピュータシステムは、専用のシステムである必要はなく、パーソナルコンピュータ等の通常のコンピュータシステムからなっているものでよい。そして、例えばパーソナルコンピュータに上述のデバイスドライバ及びアプリケーションを格納した1個又は複数の記録媒体(フレキシブルディスク、CD−ROM等)からこれらのデバイスドライバ及びアプリケーションをインストールすることにより、上述の処理を実行するコンピュータシステムを構成することができる。
また、例えば、通信回線のBBSにこれらのデバイスドライバやアプリケーションをアップロードし、これらを通信回線を介して配信してもよく、また、これらのデバイスドライバやアプリケーションを表す信号により搬送波を変調し、得られた変調波を伝送し、この変調波を受信した装置が変調波を復調して該プログラムを復元するようにしてもよい。
なお、OSが処理の一部を分担する場合、あるいは、OSが本願発明の1つの構成要素の一部を構成するような場合には、記録媒体には、その部分を除いたプログラムを格納してもよい。この場合も、この発明では、その記録媒体には、コンピュータが実行する各機能又はステップを実行するためのプログラムが格納されているものとする。
1 コンピュータ
11 プロセッサ
12 揮発性メモリ
13 不揮発性メモリ
14 入力部
15 出力部
16 記録媒体ドライブ部
17 周辺デバイスインターフェース部
2 周辺デバイス
11 プロセッサ
12 揮発性メモリ
13 不揮発性メモリ
14 入力部
15 出力部
16 記録媒体ドライブ部
17 周辺デバイスインターフェース部
2 周辺デバイス
Claims (4)
- 第1の特権モードであるカーネルモード及び第2の特権モードであるユーザモードをコンピュータに実現させるためのオペレーティングシステムを実行する当該コンピュータにより、前記オペレーティングシステムの制御に従って、前記カーネルモードで実行されるためのプログラムであって、
前記コンピュータが、前記オペレーティングシステムの制御に従って、前記ユーザモードでアプリケーションプログラムを実行することにより、前記カーネルモードで行われるべき処理を記述するスクリプトを生成したとき、前記カーネルモードで前記コンピュータに、前記スクリプトを解釈することにより前記処理を特定する機能と、特定した当該処理を実行する機能と、を行わせるためのプログラムである、
ことを特徴とするプログラム。 - 前記プロセッサにデバイスが接続されている場合であって、前記スクリプトが、前記カーネルモードで行われるべき当該デバイスの制御の内容を記述するものである場合に、前記コンピュータに、当該デバイスを制御する処理を特定して前記カーネルモードで当該処理を実行する機能を行わせるためのものである、
ことを特徴とする請求項1に記載のプログラム。 - 第1の特権モードであるカーネルモード及び第2の特権モードであるユーザモードをコンピュータに実現させるためのオペレーティングシステムを実行する当該コンピュータより構成されており、
前記コンピュータは、
前記オペレーティングシステムの制御に従って、前記カーネルモードでドライバプログラムを実行し、
前記オペレーティングシステムの制御に従って、前記ユーザモードでアプリケーションプログラムを実行し、
前記ドライバプログラムの制御に従って行われるべき処理を記述するスクリプトを前記アプリケーションプログラムの制御に従って生成し、
前記ドライバプログラムの制御に従って前記スクリプトを解釈することにより前記処理を特定し、特定した当該処理を、前記ドライバプログラムの制御に従って実行する、
ことを特徴とするデータ処理装置。 - 前記ドライバプログラムは、前記プロセッサに接続されたデバイスを制御する処理を前記プロセッサに行わせるプログラムより構成されており、
前記アプリケーションプログラムは、前記ドライバプログラムの制御に従って行われるべき前記デバイスの制御の内容を記述するものとして、前記スクリプトを前記コンピュータに生成させるものである、
ことを特徴とする請求項3に記載のデータ処理装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004381196A JP2006185387A (ja) | 2004-12-28 | 2004-12-28 | プログラム及びデータ処理装置 |
PCT/JP2005/024271 WO2006070939A1 (en) | 2004-12-28 | 2005-12-28 | Program executed under control of operating system providing kernel mode and user mode |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004381196A JP2006185387A (ja) | 2004-12-28 | 2004-12-28 | プログラム及びデータ処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006185387A true JP2006185387A (ja) | 2006-07-13 |
Family
ID=36615038
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004381196A Pending JP2006185387A (ja) | 2004-12-28 | 2004-12-28 | プログラム及びデータ処理装置 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP2006185387A (ja) |
WO (1) | WO2006070939A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013105485A (ja) * | 2011-11-15 | 2013-05-30 | Arcsoft Hangzhou Co Ltd | メトロ・ユーザ・インタフェース・モード・アプリケーションにおいてコンピュータ・ハードウェア装置にアクセスする方法 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8434098B2 (en) | 2008-02-07 | 2013-04-30 | Microsoft Corporation | Synchronizing split user-mode/kernel-mode device driver architecture |
US8819399B1 (en) | 2009-07-31 | 2014-08-26 | Google Inc. | Predicated control flow and store instructions for native code module security |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11249873A (ja) * | 1998-03-02 | 1999-09-17 | Mitsubishi Electric Corp | ドライバ機能の動的管理方式及び動的管理方法 |
JP2001005766A (ja) * | 1999-06-22 | 2001-01-12 | Mitsubishi Electric Corp | ノンストップ拡張ドライバ装置 |
JP2003108336A (ja) * | 2001-09-28 | 2003-04-11 | Canon Inc | 情報処理装置、方法及びプログラム |
JP4284499B2 (ja) * | 2003-03-07 | 2009-06-24 | ソニー株式会社 | デバイス管理方法およびデバイス管理システム |
-
2004
- 2004-12-28 JP JP2004381196A patent/JP2006185387A/ja active Pending
-
2005
- 2005-12-28 WO PCT/JP2005/024271 patent/WO2006070939A1/en not_active Application Discontinuation
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013105485A (ja) * | 2011-11-15 | 2013-05-30 | Arcsoft Hangzhou Co Ltd | メトロ・ユーザ・インタフェース・モード・アプリケーションにおいてコンピュータ・ハードウェア装置にアクセスする方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2006070939A1 (en) | 2006-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5255703B2 (ja) | カスタマイズされたイメージを伴うファームウェアストレージ媒体 | |
US8533735B2 (en) | System for execution context isolation in response to invoking a BIOS kernel function during a driver execution environment (DXE) phase of boot-up of a computer | |
US7146512B2 (en) | Method of activating management mode through a network for monitoring a hardware entity and transmitting the monitored information through the network | |
JP2004310775A (ja) | 同じものをロードするためのポータブルオペレーティングシステムおよび方法 | |
TW200813833A (en) | Launching hypervisor under running operating system | |
JP2007206885A (ja) | コンピュータシステム及びシステム起動方法 | |
US20100214586A1 (en) | Information processing apparatus and control method thereof | |
JP2008287505A (ja) | 情報処理装置およびレガシーエミュレーション処理停止制御方法 | |
KR20110130435A (ko) | 메모리 세그먼테이션 및 acpi 기반 컨텍스트 전환을 사용하는 운영 시스템 로딩 | |
JP2006351013A (ja) | 電子装置において保存/リストア手順を行なうための方法及びシステム | |
JP2011096013A (ja) | プリンタードライバー、プリンターの制御方法及びプリンターの制御プログラム | |
US20100169069A1 (en) | Composite device emulation | |
JP2003108274A (ja) | コンピュータ装置、拡張デバイスの管理方法、コンピュータプログラム | |
JP2006185387A (ja) | プログラム及びデータ処理装置 | |
US11347496B2 (en) | Driver update via sideband processor | |
JP2011192131A (ja) | 制御装置、画像形成装置、及び制御プログラム | |
JP2011180771A (ja) | 情報処理装置、エミュレーションシステム、及びエミュレーションプログラム | |
US11709669B2 (en) | Operating system update via sideband processor | |
JP2008129653A (ja) | ドライバインストール方法、ドライバによって制御される対象機器 | |
JP2015215684A (ja) | 情報処理装置及び情報処理プログラム | |
JP5997868B2 (ja) | デバイスプロキシ装置及びその制御方法 | |
JP4616763B2 (ja) | デバイス・コントローラの設定方法およびコンピュータ・システム | |
JP2010055641A (ja) | 情報処理装置及びプログラム | |
US11409681B2 (en) | Computer system communication via sideband processor | |
JP4858720B2 (ja) | エミュレータ、エミュレーション方法、プログラム、及び、記録媒体 |