私は現在、オペレーティングシステムに関するコースを行っています。
カーネルは、ユーザーアプリケーションとCPUなどのコンピューターのデータ処理要素との間のブリッジとして機能するオペレーティングシステムのコア部分であることを理解しています。
では、なぜドライバー(タッチパッドドライバーなど)が必要なのですか?カーネルがすべてのコンピューターハードウェアを制御しないのですか?
私は現在、オペレーティングシステムに関するコースを行っています。
カーネルは、ユーザーアプリケーションとCPUなどのコンピューターのデータ処理要素との間のブリッジとして機能するオペレーティングシステムのコア部分であることを理解しています。
では、なぜドライバー(タッチパッドドライバーなど)が必要なのですか?カーネルがすべてのコンピューターハードウェアを制御しないのですか?
ハードウェアデバイスを製造している企業は文字通り数千(数十万ではないにしても)あるからです。オペレーティングシステム会社は、それらすべてを処理するソフトウェアを作成できないため、ハードウェア会社がハードウェアと通信できるソフトウェアを作成するための汎用プログラミングモデルを提供します。
注意すべき重要な点は、ドライバーは実際にはカーネルの一部ではありませんが、ユーザーモードで実行され、通常は実行される通常のアプリケーションとは異なり、コードがエグゼクティブモードで実行されるため、低レベルの特権(ハードウェアへの直接アクセス)があります。ハードウェアに直接アクセスしないでください。要点は、OSがハードウェア制御ソフトウェア(ドライバーと呼ばれる)を作成する方法を提供すると、ベンダーや個人は、ハードウェアデバイスの特殊な機能を利用できるソフトウェアを自由に作成できるということです。
また、一部のハードウェアデバイス(キーボード、マウス、多くのビデオドライバー、モニターなど)はよく知られた標準に準拠しており、ほとんどのOSにはこれらのデバイスのサポートが組み込まれています。一方、一部のデバイスには標準がないか、標準に準拠していませんが、他のデバイスには両方の種類の機能があります。つまり、デフォルトドライバーからアクセスできる機能のサブセットと、標準に準拠していない機能のサブセットです。したがって、デフォルトのドライバーではサポートされていません。このようなすべての場合において、ハードウェアメーカーは、ハードウェアの詳細を認識しているため、すべての機能を効率的に利用できる独自のドライバーを提供しています。
確かに、カーネルはすべてのハードウェアを制御します。ただし、そこには非常に多くの異なるハードウェアデバイスがあります。
この多種多様なデバイスに対処するために、開発者は専用のモジュールを作成します。これらはドライバーと呼ばれます。