APIとの関係
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/10/20 12:11 UTC 版)
ドライバは、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だけで行う、という実装も良く用いられる。
※この「APIとの関係」の解説は、「デバイスドライバ」の解説の一部です。
「APIとの関係」を含む「デバイスドライバ」の記事については、「デバイスドライバ」の概要を参照ください。
- APIとの関係のページへのリンク