デバイスドライバーとそれが食べるもの

ドライバーとは何ですか?







尊敬されるハブユーザーとして、彼はおそらく「デバイスドライバー」が、デスクトップコンピューターまたはラップトップコンピューターに接続または含まれる厳密に定義されたタイプのデバイスを管理するコンピュータープログラムであることを知っています。



ドライバーの主なタスクは、デバイスを制御するためのソフトウェアインターフェイスを提供することです。オペレーティングシステムおよびその他のコンピュータープログラムは、デバイスの使用方法や動作を「知らない」ため、このデバイスの機能にアクセスします。



通常、ドライバーは、直接デバイスが接続されているバスまたは通信サブシステムを介してデバイスと通信します。 プログラムがドライバープロシージャ(操作のシーケンス)を呼び出すと、デバイス自体にコマンドを送信します。 デバイスが手順(「ルーチン」)を完了するとすぐに、データがドライバーに返され、そこからOSに送信されます。



ドライバーはデバイス固有であり、各オペレーティングシステムに固有です。 通常、ドライバーは、その実行時間に応じて、インターフェイスで非同期プロシージャを処理するための割り込み回路を提供します。



どのオペレーティングシステムにも「デバイスマップ」(デバイスマネージャーに表示されます)があり、それぞれに特定のドライバーが必要です。 唯一の例外は、OSによって直接制御される中央処理装置とRAMです。 それ以外の場合は、オペレーティングシステムのコマンドを一連の割り込み(悪名高い「バイナリコード」)に変換するドライバーが必要です。



ドライバーはどのように機能し、なぜ必要なのですか?



ドライバーの主な目的は、デバイスを操作するプログラミングプロセスを簡素化することです。



これは、ハード(鉄)インターフェースと、それらを使用するアプリケーションまたはオペレーティングシステム間の「変換器」として機能します。 開発者は、必要な各デバイスの低レベル機能の詳細を個別に説明することなく、ドライバー、高レベルのアプリケーション、およびプログラムを使用して記述できます。



既に述べたように、ドライバーは各デバイスに固有です。 彼は、デバイスが実行できるすべての操作と、ソフトウェアと鉄部品の間の相互作用が発生するプロトコルを「理解」しています。 そして、もちろん、特定のアプリケーションまたはOS自体の別の機能(「プリンターを使用した印刷」)を実行するオペレーティングシステムによって制御されます。



ハードディスクをフォーマットする場合、簡単に言うと、このプロセスは次のようになり、特定のシーケンスがあります:(1)最初に、OSはドライバーとオペレーティングシステムの両方が理解できるコマンドを使用して、デバイスドライバーにコマンドを送信します。 (2)その後、特定のデバイスのドライバーは、コマンドをデバイスのみが理解できる形式に変換します。 (3)ハードドライブはそれ自体をフォーマットし、結果をドライバーに返します。ドライバーは後でこのコマンドをオペレーティングシステムの「言語」に翻訳し、ユーザーに結果を提供します(4)。



デバイスドライバーを作成する方法







各デバイスには、「命令」と呼ばれる独自の厳密なコマンド実行順序があります。 低レベルのマシン命令は、出力でこの命令の実行中に得られた結果をドライバーに送信するバイナリコード(割り込み)であるため、デバイスの命令を知らないとドライバーを作成できません。



Linux用のドライバーを作成する場合、バスのタイプとそのアドレスだけでなく、デバイス自体の回路だけでなく、デバイスがドライバーに結果を与える電気的割り込みのセット全体を知る必要があります。



ドライバーの記述は、その「スケルトン」で始まります。つまり、「オン/オフ」などの最も基本的なコマンドであり、このデバイス固有のパラメーターで終わります。



そして、ドライバーではないもの



多くの場合、デバイスドライバーは、ソフトウェアおよび/またはハードウェア間の「中間」として機能する他のプログラムと比較されます。 「i」にドットを付けるには、次を指定します。







広告として-Windowsを実行しているデバイスの最新ドライバーをダウンロードする場所を常に知っています。



All Articles