4

私が理解している限り、すべてのプログラムは、実行されているアーキテクチャの一連のアセンブリ命令にコンパイルされます。私が理解できないのは、オペレーティング システムがビデオ カードなどの周辺機器とどのように相互作用するかということです。ドライバ自体がCPUの一連の組み立て説明書じゃないの?

私が考えることができる唯一のことは、周辺機器によって監視されるメモリ領域を使用するか、バスを使用して操作を通信し、結果を受け取ることです。このプロセスの簡単な説明はありますか。

この質問が一般的すぎる場合は申し訳ありませんが、それは私を悩ませてきたものです。

4

2 に答える 2

3

簡単な説明と真実の説明があります。どちらかを選択してください。

簡単なものを試してみます。組み立て説明書に沿って、周辺機器との通信に特化したものがあります。ハードウェアは、たとえば、レジ​​スタに値を追加したり、RAM に何かを書き込んだりするのではなく、レジスタまたは RAM の領域からペリフェラルにデータを移動する (またはその逆) ことによって、それらを解釈します。

OS の内部では、たとえばサウンド ドライバがサウンド データとコマンド データを RAM にアセンブルし、OS がバス ドライバを呼び出してこれらの特別な命令を発行し、コマンドとデータをサウンドカードに移動します。サウンドカード ハードウェアは (うまくいけば) コマンドを理解し、データを再生すべきサウンドとして解釈します。

于 2012-05-24T02:14:17.597 に答える
3

あなたは基本的にあなたの推測で正しいです。CPU アーキテクチャに応じて、周辺機器は「メモリ マップド I/O」(特定のメモリ アドレスへの読み取りと書き込みを監視する場所) または他の特定の I/O 命令 (x86 の IN および OUT 命令など) に応答する場合があります。 .

デバイス ドライバーは OS 固有のソフトウェアであり、OS とハードウェア間のインターフェイスを提供します。

特定の物理デバイスには、監視する CPU からの信号に応答する方法を認識しているハードウェアがあるか、独自の CPU とファームウェアと呼ばれるソフトウェアがあります。デバイスのファームウェアは、どのオペレーティング システムにも固有のものではなく、通常、デバイスの電源がオフになった後でも、デバイスの永続的なメモリに保存されます。ただし、一部の周辺機器には、OS の起動時にデバイス ドライバーによって読み込まれるファームウェアが含まれている場合があります。

于 2012-05-24T02:14:38.877 に答える