Search


Category Archives

2008年02月16日

デバイス

大事なので覚えましょう!

デバイスドライバは、グラフィックディスプレイ、プリンタやイーサネットボードなど、ある特定の入出力デバイス(ハードウェア)を制御し、アプリケーションソフトウェアに対して抽象化したインターフェースを提供するためのソフトウェア。「デバドラ」「ドライバ」とも略される。

ワープロや表計算などのアプリケーションなどから、グラフィックディスプレイ、プリンタ、ネットワークカードなどのデバイスを利用する時には、OSが提供する共通化されたAPI(アプリケーション・プログラミング・インターフェイス)により利用でき、抽象化されたAPIとハードウェアとの間の対応は各ハードウェア用のデバイスドライバが処理する。

このような仕組みにすれば、ハードウェアの差異を吸収することができ、特定のハードウェアに対応するソフトウェアを書かなくても、APIにあわせたアプリケーションプログラムを作ることで、ソフトウェアは不特定多数のハードウェアを利用することができる。

広く共通化が進んだハードウェア(キーボード、マウス、USBなど)では、OS内部に標準ドライバが含まれている場合が多い。標準ドライバがサポートしないハードウェアに関しては、一般に、そのハードウェアを提供するメーカが、デバイスドライバを製品に添付するか、あるいはインターネット上で配布する。

ドライバは、オペレーティングシステム(OS)の一部として機能する。 ユーザプロセスでのAPI呼び出しをきっかけに、ドライバのコードが呼び出されるが、ドライバのコード自身は、ユーザプロセスではなく、カーネルコードの一部として動作する。

上で言う抽象化されたAPIとは、ほとんどの近代的なOSでは、open, read, write, ioctl, close というAPIに統一化されている。歴史的にいうと、これらのAPIは、記憶装置上のファイルにアクセスするためのAPIであるが、これがデバイスに対してもアクセス可能なように拡張された形で提供されているのが、一般的な作りである。すなわち、デバイスに対して、入出力の準備をするopen処理、デバイスからデータを入力するためのread処理、デバイスにデータを出力するためのwrite処理、デバイスに対して特別な処理を行うためのioctl処理、入出力処理を終えるためのclose処理、などである。

read,writeで実際に何が行われるかは、デバイスごとに異なる。例えば、プリンタに対してwriteを行うと印字されるが、サウンドデバイスに対してwriteを行うと、音が鳴る。マウスに対してreadを行うと、マウスの移動量が読み出せる。デバイスによっては、read、writeの片方にしか意味がない場合も多い。例えば、プリンタに対してreadを行うと、何も行われない場合がほとんどである。(ペーパーエンプティ状態が読める、という実装もあり得るが。)read,writeでは何もせずに、実際の入出力をioctlだけで行う、という実装も良く用いられる。
(以上、ウィキペディアより引用)

何か不具合があったらまずはデバイスを調べましょう!

3929 転送電話 川根 の今までの考え。
4228 立川 デリヘル 多和田 的発想
国分寺 デリヘル嬢 池見 的思考能力
3929 転送電話 川根 の今までの考え。
2729 若槻 氏がんばってますよ
3029 小清水 氏がんばってますよ
3329 新崎 氏がんばってますよ
3630 私設私書箱 征矢 氏の毎日の憂さ晴らしの日記
3930 私設私書箱 川守田 氏の毎日の憂さ晴らしの日記
4229 国分寺 デリヘル 太宰 的思考能力

trackbacks

trackbackURL: