• ベストアンサー

デバイスドライバについて

デバイスドライバというのがよくわかりません。デバイスをマシンに認識させるということですよね。なぜ、そのようなことができるのかがわかりません。 とくに、自分でデバイスドライバを書くというのは、どういうことなのでしょうか? 雑誌などでは、C言語で書かれていましたが、Java言語でも書く事はできるのでしょうか? 単純に、「なぜ書けるのでしょうか?」「何を見て書いているのでしょうか?(デバイスの仕様書のようなものがあるのでしょうか?)」 どうか教えてください。お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • terra5
  • ベストアンサー率34% (574/1662)
回答No.3

なぜ認識できるかというと、ある程度決まりがあるからです。 例えば,PCIカードには「お前は何者だ?」という質問をすることが出来, カードはこれに回答しなければいけない決まりになっています。 デバイスドライバは、OSがそのデバイスを使うためのサブルーチンの集まりと考えた方が判りやすいように思います。 例えば,OSが車というデバイスを制御できるとします。 この場合OSが呼ぶサブルーチンに窓を開けるという物があったとします。 この操作は車によって違いますから,車に合わせたデバイスドライバがあって、 ハンドルを回すとか、窓を開けるボタンを押すとか, 車に合わせた操作をするわけです。 自分でデバイスドライバを書くということは、 こういうようなサブルーチンを自分で書くことに相当します。 Javaで絶対に書けないとまでは言えないと思いますが, 最低でも何らかのJava以外で記述されたもが必要と思いますし, 実用的な物は実行速度や、JavaはJavaVMで実行されるといかそういうことが問題になって現実的に使えるものは 書けないと思います。 なぜ書けるかというと,そういうよう考えて作られた仕組みだからです。 もし、デバイスドライバが書けないとしたら、意味が無いです。 何を見ては,g_doriさんが書いている通りでしょうね。

その他の回答 (2)

  • g_dori
  • ベストアンサー率47% (330/699)
回答No.2

デバイスドライバ(以下ドライバ)は「デバイスをマシンに認識させる」と言うことが判っているなら、それがどういう事か考えてみたことがありますか? 「認識させる」と言う表現は、OSの仕様がドライバが無いとデバイスが見えないような仕組みになっているからでして、正確にはドライバには「通訳」という重要な仕事があります。 早い話、OSからは凡庸的なコマンドで、データをデバイスに流そうとします。しかし、デバイス単独でそのコマンドを理解することができません。そこでドライバという通訳が必要になります。 例えばOSは英語しか理解できず、デバイスは日本語、中国語、etcしか理解できない、と思って頂いてOKです。(英語がわかるデバイスはナイ) このままでは会話ができませんので通訳(ドライバ)が必要になる訳ですが、別段通訳が特定の人物である必要はありません。似たように通訳をこなしてくれれば別人でも問題ないことになります。 ドライバが訳を間違えたり、別の言語に訳してくれれば、当然デバイスは正常動作しません。(ドライバがガンガン更新されていく理由はこういうことです) この通訳の処理が気に食わなければ、「自作」ということになります。 結局のトコロメーカーの"人間"が作っているので、当然それを個人で作ることも可能です。 メーカーによってはソフトウェアインタフェース仕様書を一般公開している場合もありますし、マニュアルに記載するものもあります(大抵は制限付き公開で、正式なマニュアルは別売)。 それを利用できる方は自力で作ることが可能です。 UNIX関連の製品だとよくある話だと思いますよ。 で、JAVAに関しては・・・根本的に用途が異なると思いませんか?

  • z80b
  • ベストアンサー率44% (26/58)
回答No.1

Javaで書けるかわかりませんが。 デバイスドライバなんてOSの起動時にメモリ上に読み込まれて常駐し、 周辺装置からのハード的な割り込みによって呼び出される、OSに付属する プログラムの集合です。 詳しくはアドレスを書いておきますので、 そちらを見て下さい。

参考URL:
http://home.impress.co.jp/magazine/dosvpr/q-a/0004/qa0004_2.htm

関連するQ&A

  • デバイスドライバー作りに関する質問

    デバイスドライバーでは、アセンブリ言語を使う部分があるとの事で、アセンブリ言語の技術を伸ばす為、デバイスドライバーを作ってみようと思うのですが 実際はどれくらいアセンブリ言語を使うのでしょうか またはデバイスドライバーというのは組み込みの分野ですか?

  • Embedded2009のデバイスドライバについて

    いつもお世話になっております。 Windows Embedded Standard 2009(XPe)上で使用するデバイスについて 質問させてください。 現在Target Designerにてドライバのコンポーネントを組まずに ターゲットマシンにイメージ展開をし、 展開後にドライバCD-ROMを使用してデバイスを認識させる作業を行っております。 しかしながら、ディスプレイとオーディオデバイスはドライバのインストール 途中でエラーを発生させてしまい、中断させられてしまいます。 他のデバイスで言うと、チップセットやイーサネットがありましたが、 これは問題なく認識・動作致しました。 また、XP Proであれば問題なく全てのデバイスを認識できました。 PCメーカには問い合わせておりますが、約1週間応答がなく、 困っております。当面はXP Proで運用する予定で、メーカから2ヵ月後に 貸出機を借用して再度トライするつもりです。 恐らく組み込むコンポーネントに漏れがあるのだと推測しておりますが、 目星が付きません。 ちなみに、PMQファイルの生成は実機でWindowsPEをブートさせて Tap.exeを使いました。 ターゲットマシンは CONTEC製ボックスPC IPC-BX900P2-AC500です。 何卒宜しくお願いします。 質問内容に不備がありましたらご指摘ください。

  • デバイスドライバの作成

    デバイスドライバを作成するには、何を勉強したらいいですか? 動かしたいハードにより、全く異なるものなんですか?それとも、 だいたい同じような言語で書かれてるものなんですか?

  • WindowsXPのデバイスドライバのインストールで異なるデバイスとし

    WindowsXPのデバイスドライバのインストールで異なるデバイスとして認識してしまう現象の対策を教えてください。 <質問内容> USB機器を接続した際に、Windowsが異なるデバイスとして認識してしまう為、 接続したデバイスのドライバのインストールができません。 ・異なるデバイスとして認識させない方法  (※恐らくレジストリなどに情報が残っているのだと思いますが、適切な消去方法が不明です) ・新しいデバイスドライバのインストール方法  (※古い情報が残っていたとしても、インストールしたいドライバを適切にインストールできれば良いです) を知りたいというのが質問の趣旨です。 宜しくお願いします。 <状況> USB機器のドライバをインストールをしようとしています。 USB機器を接続すると、Windows画面右下のタスクトレイ部に「デバイスが接続され、ドライバのインストールを促すポップアップ」が出ると思います。 ここに、昔入れたドライバ(同類のUSB機器)が表示されしまう(異なるデバイスとして認識されてしまう)為、対象のデバイスとしてドライバのインストールができません。 対策として、以下を行っていますが改善しません。 ・別のUSBポートで試してみる ・昔入れたドライバのアンインストーラでアンインストールを行う ・デバイスマネージャで非表示デバイスの表示(非接続デバイスを含む)を行い、関連ドライバを削除 ・フリーのレジストリ整理ツールを使用して、レジストリの整理 <環境> USB機器:詳細をお伝えできません。 OS:WindowsXP

  • サウンドデバイスの認識とサウンドドライバ

    この前windows98を再インストールしてから音が鳴らなくなりました.サウンドボードはオンボードで,デバイスが認識されているのか確認したら,”その他のデバイスPCI Multimedia Audio Device”として認識されている(??)ようです.おそらくドライバをインストールすれば対応できると思うのですが,そのドライバが見つかりません.さらにサウンドドライバの入っていたFDをどこかになくしてしまい困り果てています.どこかにドライバってないものでしょうか?(EPSONのホームページにはなかったと思います)どなたか御助言お願いします. ちなみに使用しているのは EPSON社製 Type-SC C750 です.

  • デバイスとドライバーがなくなった

    光回線業者のモデムのwifiが弱いのでモデムを二台直列で繋いだら、ネットワークデバイス、プリンターデバイス、サウンドデバイスが消えました。 USBデバイスも反応しません。 ネットワークドライバーもなくなっているので再インストールしようとしても、デバイスを認識しないので、インターネットもできません。 音も出ないし、印刷もできません。 どこが壊れたのでしょうか。修理で治る余地はあるのでしょうか。 ※OKWAVEより補足:「富士通FMV」についての質問です。

  • ドライバはすべてのデバイスに対して必要ですか?

    この前、自分のノートパソコンにプロジェクタをつけて、壁に表示させようとしたら、表示できなかったのでこのプロジェクタに対してドライバがないのではないか? と思ったのですが、会社の同僚に「それは関係ない」 といわれました。 私の認識では、すべてのデバイスに対してドライバが必要だと思っているのですが、この認識は誤っているのでしょうか? もちろんドライバをインストールしなくても、デバイスが認識されることがあることはわかっています。しかし、それは最初からドライバがOS本体にインストールされているから(プラグアンドプレイが働いたということ)だと思っていました。 私が疑問に思うのは、ドライバがないことも、プロジェクタを通して壁に表示できなかった一原因である可能性があるのに、それを完全に否定されたような発言をされたことです。

  • win98用のデバイスドライバーが、、、、

    昨年末、我が家のパソコンが壊れ。winxpプリインストール済みのショップブランドパソコンを購入しました。 しかし、以前より楽しんでいるゲーム(win95用)がxpでは動かず、旧マシンの時に使用していたwin98も入れ デュエルブートできるようにしました。ところが、現マシンのビデオカード(マザーボードにオンボードされています。)のデバイスドライバーは98seにしか対応しておらず98では16色しか表示できない状態です。。そこで 現マシンのビデオカードも弱いので、若干のパワーアップを目指し。ビデオカードの購入を検討しております。 win98、winxpのデバイスドライバーを付属しつつ、32-64Mのメモリを積んだビデオカードで1万円位の物をご存知の方はいらっしゃいませんでしょうか? ちなみに、98は、95からのアップグレード版。現マシンのビデオカードのデバイスドライバをマザーボードメーカに探しに行きましたがやはり98se版しかありませんでした。。。

  • 実在しないPCIデバイス

    MSI i845のマザーボード(サウンドのみオンボード) にWIN2000を使っています。 先日 C-MEDIAドライバなる物を「WINDOWS UPDATE」から導入したのですが、その後マシンが 不安定に成り、再起動後復旧したと思ったら。「有りもしないPCIデバイス」がデバイスマネージャー上に 認識されてしまい「ドライバ要求」が起きます。要求された処で、実在しないデバイスに何のドライバを当てるのか?って話で、気持ちが悪いのですが「デバイス無効」にして有る次第です。 出来れば解消したいのですが、おわかりの方居ますでしょうか?よろしくお願いします。

  • ディバイスドライバーについて教えて下さい。

    旧PCのHDDを、新PC(グレードUP)に移行を考えています。ただマザーボードが違うので ディバイスドライバーが違います。HDDの移行の後ディバイスドライバーをインストールする事で OKでしょうか?何か支障があるでしょうか?教えて下さいよろしくおねがいします。

専門家に質問してみよう