0

私の友人がクラスでこの質問をしてきましたが、私はそれに答えることができませんでした。彼は尋ねた:

カーネルがデバイスドライバを介して物理ハードウェアを制御することがわかっているためです。このすべての機能が、カーネルで管理されるのではなく、デバイスコントローラー自体の内部に保持されているとしたらどうでしょうか。そのようなシナリオの結果はどうなるでしょうか?良いか悪いか?

この質問をオンラインで検索しましたが、このシナリオに関する情報を取得できませんでした。私は正しいキーワードをグーグルしていないのかもしれません。

これに対するあなたの洞察は、私が私の概念を明確にするのに役立ちます。

お答えください。

ありがとう。

4

1 に答える 1

0

あなたの質問は、「デバイスコントローラー内で物理ハードウェアを制御する」ことにより、「デバイスドライバー」を排除することを提案しているようです。これの前提は次のようです。

カーネルは、デバイス ドライバーを介して物理ハードウェアを制御します。

デバイス ドライバーのその説明は、開発者の観点からではなく、エンド ユーザーの理解のために私が考えているものと似ています。エンドユーザーはデバイスを認識しており、その抽象化を採用して各デバイスポートの特定の制御ビットまでそのデバイスを制御できるのはデバイスドライバーです。

ただし、デバイス ドライバーは、次のようなありふれたハウスキーピング タスクを担当します。

  • デバイスのステータスと可用性を維持する。
  • 操作のためのデバイスの構成。
  • データフローの管理、データ転送のセットアップ/破棄、ユーザー空間とカーネル空間の間でのデータのコピー。
  • 割り込みと例外の処理。

これらのタスクは、デバイス ドライバーに不可欠です。これらのタスクは、カーネル ドライバーの範囲外で周辺機器に転送することはできません。

場合によっては、デバイス ドライバーがデバイスを完全に制御するのではなく、デバイスの管理のみを試みることがあります (たとえば、パケット フラッド中の NIC ドライバー)。

「このすべての機能がデバイスコントローラー自体の内部に保持されている」場合でも、デバイスドライバーを排除できる可能性はまったくありません。また、デバイス ドライバーから周辺機器に発行される制御ディレクティブ/コマンドも存在します。

問題のハードウェア デバイスは、自律型ロボット デバイスではなく、コンピューター周辺機器である必要があります。デバイスは、コンピューターで動作するように設計されている必要があります。プロセッサとデバイスの間にあるインターフェイスは、タスクに適している必要があります。ペリフェラルがより「インテリジェント」になれば、おそらく CPU の負荷が軽減され、高レベルのコマンド インターフェイスが低レベルのサブ操作ディレクティブを置き換えることができます。ただし、「すべて」ではなく、「一部」の機能のみを周辺機器に転送できます。

于 2012-11-06T21:20:40.150 に答える