JP5613090B2 - デバイスドライバ選択プログラム、電子機器 - Google Patents

デバイスドライバ選択プログラム、電子機器 Download PDF

Info

Publication number
JP5613090B2
JP5613090B2 JP2011068094A JP2011068094A JP5613090B2 JP 5613090 B2 JP5613090 B2 JP 5613090B2 JP 2011068094 A JP2011068094 A JP 2011068094A JP 2011068094 A JP2011068094 A JP 2011068094A JP 5613090 B2 JP5613090 B2 JP 5613090B2
Authority
JP
Japan
Prior art keywords
device driver
bytecode
native
driver
selection program
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.)
Active
Application number
JP2011068094A
Other languages
English (en)
Other versions
JP2012203678A (ja
Inventor
桃子 矢部
桃子 矢部
直樹 村山
直樹 村山
村松 健太郎
健太郎 村松
暢大 高木
暢大 高木
俊紀 門田
俊紀 門田
田中 逸清
逸清 田中
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone East Corp
EXA CO Ltd
Original Assignee
Nippon Telegraph and Telephone East Corp
EXA CO Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone East Corp, EXA CO Ltd filed Critical Nippon Telegraph and Telephone East Corp
Priority to JP2011068094A priority Critical patent/JP5613090B2/ja
Publication of JP2012203678A publication Critical patent/JP2012203678A/ja
Application granted granted Critical
Publication of JP5613090B2 publication Critical patent/JP5613090B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Description

本発明は、電子機器に外部デバイスが接続されたとき、その外部デバイスを認識するための適切なデバイスドライバを選択する技術に関するものである。
コンピュータや組込機器などの電子機器に外部デバイスを接続したとき、その外部デバイスを電子機器のOS(オペレーティングシステム)に認識させるためには、デバイスドライバと呼ばれるプログラムモジュールが必要になる。このデバイスドライバをJava(登録商標)言語によって実装する手法として、下記非特許文献1に記載されているものがある。
JSR80 API Specification、URL:http://javax-usb.org/jsr80.pdf(2011年2月21日取得)
外部デバイスが電子機器に接続されたとき、電子機器のOSは、インストール済のデバイスドライバのなかから、その外部デバイスに適したデバイスドライバを検索する。このとき、Javaによって実装されたバイトコードデバイスドライバと、バイナリコードによって実装されたネイティブデバイスドライバとがともにインストール済である場合、OSはまずバイナリコードで実装されたデバイスドライバのなかから適したものを検索し、見つからなければJavaによって実装されたデバイスドライバを検索する。
また、デバイスドライバには、個々の外部デバイス毎に最適化して開発された製品毎デバイスドライバと、外部デバイスの大まかな区分(例えば、USBデバイス、ATAデバイスなどの接続規格毎の区分、または記憶デバイス、CD−Rドライブなどのデバイス用途毎の区分など)毎に開発された種別毎デバイスドライバとがある。一般的には、製品毎デバイスドライバのほうが種別毎デバイスドライバよりも個別のデバイス毎に最適化されているため、OSは、まず製品毎デバイスドライバのなかから最適なものを検索し、見つからなければ種別毎デバイスドライバを検索する。
したがって、OSがデバイスドライバを検索する手順は、以下のようになる。
(手順1)ネイティブデバイスドライバのなかから、外部デバイスに適した製品毎デバイスドライバを検索する。
(手順2)手順1で適したデバイスドライバが見つからなかった場合、ネイティブデバイスドライバのなかから、外部デバイスに適した種別毎デバイスドライバを検索する。
(手順3)手順2で適したデバイスドライバが見つからなかった場合、バイトコードデバイスドライバのなかから、外部デバイスに適した製品毎デバイスドライバを検索する。
(手順4)手順3で適したデバイスドライバが見つからなかった場合、バイトコードデバイスドライバのなかから、外部デバイスに適した種別毎デバイスドライバを検索する。
この動作の結果、バイトコードデバイスドライバのなかに最適な製品毎デバイスドライバが存在していたとしても、ネイティブデバイスドライバのなかに外部デバイスと適合する種別毎デバイスドライバが存在していれば、そちらが優先的に選択されてしまう。
本発明は、上記のような課題を解決するためになされたものであり、バイトコードによって実装されたデバイスドライバを備える電子機器において、外部デバイスが当該電子機器に接続されたとき、最適なデバイスドライバを選択することができる技術を提供することを目的とする。
本発明に係るデバイスドライバ選択プログラムは、電子機器に外部デバイスが接続されたとき、バイトコードデバイスドライバのうち、個別の外部デバイス毎に開発されている製品毎デバイスドライバを、バイナリコードで実装された種別毎デバイスドライバよりも先に検索する。外部デバイスに適したバイトコードデバイスドライバが見つからなかった場合は、バイナリコードで実装された種別毎デバイスドライバを検索する。
本発明に係るデバイスドライバ選択プログラムによれば、ネイティブデバイスドライバのうち外部デバイスに適した種別毎デバイスドライバが電子機器にインストール済である場合でも、バイトコードデバイスドライバとして実装された製品毎デバイスドライバを優先的に選択することができる。
実施形態1に係る電子機器100の機能ブロック図である。 電子機器100に外部デバイス200が接続されたときの動作手順を示す図である。
<実施の形態1>
図1は、本発明の実施形態1に係る電子機器100の機能ブロック図である。電子機器100は、組込ソフトウェアを実行する組込機器であり、CPU(Central Processing Unit)110、OS120、JavaVM(Virtual Machine)130、ネイティブデバイスドライバ140を備える。
CPU110は、OS120とJavaVM130を実行する演算装置である。以下では記載の都合上、OS120などのプログラムを動作主体として説明する場合があるが、実際にこれらプログラムを実行するのはCPU110であることを付言しておく。
OS120は電子機器100のOSであり、デバイスドライバ選択プログラム121を内部モジュールとして備える。デバイスドライバ選択プログラム121については後述する。JavaVM130は、Java言語で実装されたソフトウェアを実行するJava仮想マシンである。ネイティブデバイスドライバ140は、バイナリコードによって実装されたデバイスドライバである。
電子機器100は、OS120が起動するとき、常駐Javaプログラム131を自動的に起動するように設定されている。JavaVM130は、その設定にしたがって常駐Javaプログラム131を実行する。以後JavaVM130は、OS120がシャットダウンされるまで、常駐Javaプログラム131を実行し続ける。
常駐Javaプログラム131の配下には、Java言語によって実装されたバイトコードデバイスドライバ132が配置されている。常駐Javaプログラム131は、バイトコードデバイスドライバ132をプラグイン形式で任意にロードし、またはアンロードすることができる。
バイトコードデバイスドライバ132とネイティブデバイスドライバ140は、それぞれ複数種類設けてもよい。また、バイトコードデバイスドライバ132とネイティブデバイスドライバ140のなかには、それぞれ上述の製品毎デバイスドライバと種別毎デバイスドライバが存在する。
図2は、電子機器100に外部デバイス200が接続されたときの動作手順を示す図である。記載の都合上、構成要素の符号は省略した。以下、図2の各ステップについて説明する。
(図2:ステップ(1))
電子機器100の接続ポートに外部デバイス200が接続されると、CPU110はその旨を検出する。
(図2:ステップ(2))
CPU110は、OS120に対し、外部デバイス200に適したデバイスドライバを選択するように指示する。OS120は、その指示にしたがって、デバイスドライバ選択プログラム121を起動する。
(図2:ステップ(3))
デバイスドライバ選択プログラム121は、ネイティブデバイスドライバ140のなかに、外部デバイス200に適した製品毎デバイスドライバが存在するか否かを検索する。該当する製品毎デバイスドライバが存在すれば、そのデバイスドライバをOS120に提供し、OS120はそのデバイスドライバを用いて外部デバイス200を認識する。該当するデバイスドライバが存在しない場合は、ステップ(4)に進む。
(図2:ステップ(4))
デバイスドライバ選択プログラム121は、バイトコードデバイスドライバ132のなかに、外部デバイス200に適した製品毎デバイスドライバが存在するか否かを検索するように、JavaVM130を介して常駐Javaプログラム131へ依頼する。常駐Javaプログラム131は、バイトコードデバイスドライバ132のなかから該当するデバイスドライバを検索する。該当する製品毎デバイスドライバが存在すれば、そのデバイスドライバをOS120に提供し、OS120はそのデバイスドライバを用いて外部デバイス200を認識する。該当するデバイスドライバが存在しない場合は、ステップ(5)に進む。
(図2:ステップ(5))
デバイスドライバ選択プログラム121は、ネイティブデバイスドライバ140のなかに、外部デバイス200に適した種別毎デバイスドライバが存在するか否かを検索する。該当する種別毎デバイスドライバが存在すれば、そのデバイスドライバをOS120に提供し、OS120はそのデバイスドライバを用いて外部デバイス200を認識する。該当するデバイスドライバが存在しない場合は、ステップ(6)に進む。
(図2:ステップ(6))
デバイスドライバ選択プログラム121は、バイトコードデバイスドライバ132のなかに、外部デバイス200に適した種別毎デバイスドライバが存在するか否かを検索するように、JavaVM130を介して常駐Javaプログラム131へ依頼する。常駐Javaプログラム131は、バイトコードデバイスドライバ132のなかから該当するデバイスドライバを検索する。該当する種別毎デバイスドライバが存在すれば、そのデバイスドライバをOS120に提供し、OS120はそのデバイスドライバを用いて外部デバイス200を認識する。該当するデバイスドライバが存在しない場合は、適当なデバイスドライバが存在しない旨をOS120に回答する。
(図2:ステップ(1)〜(6):補足)
電子機器100の接続ポートが複数ある場合は、外部デバイス200を電子機器100に複数接続することもできる。この場合、電子機器100に接続された外部デバイス200毎にデバイスドライバ選択プログラム121を起動してそれぞれの外部デバイス200について上記ステップを実行してもよいし、単一のデバイスドライバ選択プログラム121が全ての外部デバイス200について上記ステップを実行してもよい。
以上、電子機器100に外部デバイス200が接続されたときの動作手順を説明した。なお、デバイスドライバ選択プログラム121は、OS120配下のプログラムモジュールとして実装してもよいし、OS120の一部として実装してもよい。
<実施の形態1:まとめ>
以上のように、本実施形態1に係るデバイスドライバ選択プログラム121は、バイトコードデバイスドライバ132のうち外部デバイス200の製品毎デバイスドライバを検索し、適したものが見つからなかった場合は、ネイティブデバイスドライバ140のなかから種別毎デバイスドライバを検索する。これにより、種別毎デバイスドライバよりも製品毎デバイスドライバを優先して選択することができる。
また、本実施形態1に係るデバイスドライバ選択プログラム121は、ネイティブデバイスドライバ140のうち外部デバイス200の製品毎デバイスドライバを検索し、適したものが見つからなかった場合は、バイトコードデバイスドライバ132のなかから製品毎デバイスドライバを検索する。これにより、デバイスドライバの実装形態によらず、製品毎デバイスドライバを常に優先することができる。
また、本実施形態1に係る電子機器100は、常駐Javaプログラム131を常時実行し、その配下のバイトコードモジュールとして、バイトコードデバイスドライバ132を備えている。これにより、デバイスドライバ選択プログラム121がバイトコードデバイスドライバ132を検索するとき、その検索要求を受け取るインターフェースが常駐プログラムとしてあらかじめ用意されていることになる。すなわち、バイトコードデバイスドライバ132を検索するために逐一Javaアプリケーションを起動する必要がなくなり、そのための処理負荷や起動時間を低減することができる。
<実施の形態2>
実施形態1では、常駐Javaプログラム131およびその配下のバイトコードデバイスドライバ132がJava言語によって実装されている例を説明したが、その他の実行環境に依存しないバイトコードを用いるプログラム言語を用いてこれらを実装することもできる。例えば、Microsoft(登録商標)社の.NETなどがその1例として考えられる。
なお、バイトコードによって実装されているデバイスドライバは、物理層の制御に関してはより下層のデバイスドライバに委譲するのが通常である。したがって、バイトコードデバイスドライバ132は、電子機器100および外部デバイス200の物理信号を制御するレイヤーよりも上位のデバイスドライバとして実装されていることが望ましい。ネイティブデバイスドライバ140もバイトコードデバイスドライバ132と同じレイヤーのデバイスドライバであるため、同様である。
例えば、外部デバイス200としてUSB規格に準拠したデバイスを想定する。USB規格では、(広義の)デバイスドライバのレイヤーとして、バスドライバ、コアドライバ、(狭義の)デバイスドライバが規定されている。バイトコードデバイスドライバ132とネイティブデバイスドライバ140は、USB規格における(狭義の)デバイスドライバとして実装されていることが望ましい。
100:電子機器、110:CPU、120:OS、121:デバイスドライバ選択プログラム、130:JavaVM、131:常駐Javaプログラム、132:バイトコードデバイスドライバ、140:ネイティブデバイスドライバ、200:外部デバイス。

Claims (7)

  1. 電子機器に外部デバイスが接続されたとき、前記外部デバイスを前記電子機器のOSに認識させるためのデバイスドライバを選択する処理を、前記電子機器が備える演算装置に実行させるデバイスドライバ選択プログラムであって、
    前記デバイスドライバ選択プログラムは、前記OSの一部または前記OSの内部モジュールとして実装されており、
    前記電子機器は、前記デバイスドライバとして、
    バイナリコードで実装されたネイティブデバイスドライバと、
    実行環境に依存しないバイトコードで実装されたバイトコードデバイスドライバと、
    を備えており、
    前記デバイスドライバ選択プログラムは、前記演算装置に、
    前記バイトコードデバイスドライバのうち、個別の前記外部デバイス毎に開発されているデバイスドライバを検索するバイトコード製品検索ステップ、
    前記バイトコード製品検索ステップにおいて該当する前記バイトコードデバイスドライバが見つからなかった場合、前記ネイティブデバイスドライバのうち、前記外部デバイスの種別毎に開発されているデバイスドライバを検索するネイティブ種別検索ステップ、
    を実行させ
    前記電子機器は、
    実行環境に依存しないバイトコードで記述された常駐アプリケーションを常時実行しており、
    前記バイトコードデバイスドライバは、
    前記常駐アプリケーションの配下で実行されるバイトコードモジュールとして実装されており、
    前記デバイスドライバ選択プログラムは、前記バイトコード製品検索ステップにおいて、前記演算装置に、
    前記バイトコードデバイスドライバのうち、個別の前記外部デバイス毎に開発されているデバイスドライバを検索するように、前記常駐アプリケーションに対して依頼し、その結果を受け取るステップを実行させる
    ことを特徴とするデバイスドライバ選択プログラム。
  2. 前記演算装置に、
    前記バイトコード製品検索ステップを実行させる前に、前記ネイティブデバイスドライバのうち、個別の前記外部デバイス毎に開発されているデバイスドライバを検索するネイティブ製品検索ステップを実行させ、
    前記ネイティブ製品検索ステップにおいて該当する前記ネイティブデバイスドライバが見つからなかった場合、前記バイトコード製品検索ステップを実行させる
    ことを特徴とする請求項記載のデバイスドライバ選択プログラム。
  3. 前記演算装置に、
    前記ネイティブ種別検索ステップにおいて該当する前記ネイティブデバイスドライバが見つからなかった場合、
    前記バイトコードデバイスドライバのうち、前記外部デバイスの種別毎に開発されているデバイスドライバを検索するステップを実行させる
    ことを特徴とする請求項1または2記載のデバイスドライバ選択プログラム。
  4. 前記ネイティブデバイスドライバと前記バイトコードデバイスドライバは、前記電子機器上の物理信号を制御するレイヤーよりも上位のレイヤーのデバイスドライバとして記述されている
    ことを特徴とする請求項1からのいずれか1項記載のデバイスドライバ選択プログラム。
  5. 前記ネイティブデバイスドライバと前記バイトコードデバイスドライバは、USB規格におけるデバイスドライバレイヤーのデバイスドライバとして記述されている
    ことを特徴とする請求項1からのいずれか1項記載のデバイスドライバ選択プログラム。
  6. 請求項1からのいずれか1項記載のデバイスドライバ選択プログラムと、
    前記ネイティブデバイスドライバと、
    前記バイトコードデバイスドライバと、
    前記デバイスドライバ選択プログラムを実行する演算装置と、
    を備えたことを特徴とする電子機器。
  7. 実行環境に依存しないバイトコードで記述された常駐アプリケーションを備え、
    前記バイトコードデバイスドライバは、
    前記常駐アプリケーションの配下で実行されるバイトコードモジュールとして構成されており、
    前記演算装置は、前記常駐アプリケーションを常時実行する
    ことを特徴とする請求項記載の電子機器。
JP2011068094A 2011-03-25 2011-03-25 デバイスドライバ選択プログラム、電子機器 Active JP5613090B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011068094A JP5613090B2 (ja) 2011-03-25 2011-03-25 デバイスドライバ選択プログラム、電子機器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011068094A JP5613090B2 (ja) 2011-03-25 2011-03-25 デバイスドライバ選択プログラム、電子機器

Publications (2)

Publication Number Publication Date
JP2012203678A JP2012203678A (ja) 2012-10-22
JP5613090B2 true JP5613090B2 (ja) 2014-10-22

Family

ID=47184620

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011068094A Active JP5613090B2 (ja) 2011-03-25 2011-03-25 デバイスドライバ選択プログラム、電子機器

Country Status (1)

Country Link
JP (1) JP5613090B2 (ja)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5294892B2 (ja) * 2009-01-14 2013-09-18 キヤノン株式会社 画像形成装置、装置、制御方法、及びプログラム
JP2011048503A (ja) * 2009-08-25 2011-03-10 Kyocera Mita Corp 画像形成装置

Also Published As

Publication number Publication date
JP2012203678A (ja) 2012-10-22

Similar Documents

Publication Publication Date Title
US12056519B2 (en) Virtual machine migration method and apparatus
CN103034510B (zh) 可按需要动态调整的uefi bios快速安全启动方法
RU2490695C2 (ru) Разделение режимов работы для изменений приложения
US7660979B2 (en) Multi-mode computer systems and operating methods thereof
EP2705422B1 (en) Dynamically redirecting boot to another operating system
JP5976020B2 (ja) アンチマルウェアメタデータのルックアップを行うためのシステム及び方法
US9003175B2 (en) System and method for accelerated boot performance
JP6136127B2 (ja) コントローラ、電子機器及びusbデバイスの制御方法
US10540498B2 (en) Technologies for hardware assisted native malware detection
US9274804B2 (en) Overlapped boot task fetches and boot task execution to reduce boot time in an electrical device
JP2009259108A (ja) 情報処理装置および情報処理装置の制御方法
JP2012079130A (ja) デバッグ支援プログラム、デバッグ支援装置、及びデバッグ支援方法
US20150113532A1 (en) Cloudboot system, virtual machine with the cloudboot system, and method for starting up the virtual machine
EP2390786A1 (en) Information processor provided with configuration change function, system configuration change method, and system configuration change program
JP2013519168A5 (ja)
JP2014127209A (ja) 仮想マシンのコンピュータプログラムインストールシステム及びその方法
US20130160009A1 (en) Control computer and method for deploying virtual machines
US20120151094A1 (en) Method and Apparatus for Internet Browsing
TWI450090B (zh) 關於改變程式之啟動列表以判定電腦系統性能是否增進之方法及系統
US20120144390A1 (en) Customized computer image preparation and deployment including virtual machine mode
JP5613090B2 (ja) デバイスドライバ選択プログラム、電子機器
CN104516752B (zh) 一种信息处理方法及电子设备
JP5562376B2 (ja) ウイルス対策コンピュータシステム
JP5613091B2 (ja) デバイスドライバ起動監視プログラム、電子機器
CN103365694A (zh) 一种b/s系统初次运行时的ie环境设置方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20131003

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140530

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140603

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140715

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140812

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140905

R150 Certificate of patent or registration of utility model

Ref document number: 5613090

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250