web-dev-qa-db-ja.com

ドライバーはオペレーティングシステムの一部ですか?

OSに含まれているものと含まれていないものを理解するのが難しい。プリンタードライバーやグラフィックドライバーなどのデバイスドライバーはOSの一部ですか? OSの定義を考えると、ドライバーはOSの一部だと思います。

15
fireant

はい、ドライバーはOSの一部です。これらはOSカーネルと同じ特権レベルで実行されます。ドライバーを作成するには、OSの内部について十分に理解している必要があります。ドライバーの役割は、ハードウェアの抽象化を提供することです。これにより、アプリケーションは、ハードウェアの特定の詳細を知る必要がなく、OS API(アプリケーションプログラミングインターフェイス)を介してハードウェアを使用できます。多くの場合、同じハードウェアを多くのアプリケーション間で同時に共有することもできます。

ドライバーがOSの一部ではないとユーザーを誤解させるのは、多くのベンダーがOSとは別に作成したハードウェア用のドライバーを提供していることです。実際、多くのドライバーは、ロードしてOSに動的に参加できるロード可能なモジュールとして提供されています。それらが使用されなくなると、OSから「切断」され、正常に実行され続けます。

ロード可能かどうかにかかわらず、ドライバーは常にシステムで使用できるようにする必要のあるデバイスに固有であるため、OSの「オプション」部分である場合もありますが、操作時にドライバーはそれに参加します。

13
Claudio

「OS」という用語は多くの意味を持ちます。

ほとんどのオペレーティングシステムでは、カーネルはすべてを管理および「実行」するコードの一部であり、ハードウェアへのアクセスを調停しますが、通常、それ自体では興味深いことは何もできません。その役割は、アプリケーションを実行するためのフレームワークを提供することです。それなら上に」。非常に多くの人々のOSの定義には、使い慣れた標準化された環境を構成するユーティリティ、シェル、およびプログラムが含まれます。

ドライバーはカーネルに依存しており、プラグインのようにカーネルを「拡張」すると言うのがおそらく最も正しいでしょう。 Linuxは、「ロード可能なカーネルモジュール」の概念をサポートしており、すべてのデバイスドライバーをロード可能なカーネルモジュールにすることができます。これらのモジュールの1つ以上が「組み込み」であり、カーネルから分離されていないカーネルを構築することも可能です。したがって、Linuxで「モジュールレス」カーネルを構築することは実際に可能であり、組み込みしたモジュール以外のハードウェアをサポートすることはできません。

私はWindowsの本質にあまり詳しくありませんが、ごく少数の「ミニポート」ドライバーを除いて、すべてのドライバーは起動時にロードされる外部ファイルであると信じています。 Windowsでサービスを作成する方法を少し掘り下げてみると、ドライバーは実際にはWindowsでの特別な形式のサービスにすぎないようです。一部のプログラムは、低レベルでハードウェアにアクセスするためのドライバーをインストールしますが、必ずしもデバイスを駆動する必要はありません。これらは通常、デバイスマネージャーの「非プラグアンドプレイ」ドライバーです。したがって、ドライバはLinuxでロード可能なカーネルモジュールと概念的に同じ機能を提供するようにも見えます。

簡単に言えば、OSなしでは使用できず、OSが起動しないと役に立たないため、OSの一部であると言いますが、描画される線はいずれの場合もかなり恣意的です。

5
LawrenceC

OSの一部ではないドライバーはありません。ドライバは、OSがデバイスまたはハードウェアと通信するのに役立つと言えます。 OSには、Windows XPやVistaのようにデフォルトですべてのドライバーが含まれているわけではありませんが、Windows 7には必要なドライバーのほとんどが含まれているため、OSの一部ではないことにご注意ください。

1
Deb