デバイス管理
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/09/16 14:38 UTC 版)
実際に何らかの作業をするには、OSはコンピュータに接続された周辺機器にアクセスする必要があり、周辺機器はその開発元などが書いたデバイスドライバを通して制御される。デバイスドライバはOSがハードウェアデバイスとやりとりするためのプログラムであり、OSに対して何らかのハードウェアを制御・通信するための情報を提供する。ドライバはアプリケーションにとっても重要で不可欠である。ドライバの設計目標は抽象化である。ドライバの機能はOSの定めたインタフェースからデバイス固有のインタフェースに変換することである。理論上、デバイスは適当なドライバがあれば正しく動作する。デバイスドライバは、ビデオカード、サウンドカード、プリンター、スキャナー、モデム、LANカードなどに対応して存在する。一般的なデバイスドライバの抽象化レベルを次に示す。 ハードウェア側から見て直接インタフェースする。 高度なインタフェースを使用する(ビデオBIOSなど)。 低レベルなデバイスドライバを使用する(ディスクドライバを使用するファイルシステムドライバなど) ハードウェアと共にシミュレーションを行う。すなわち、実際には全く異なる何かを行う(廃れたデバイスの代わりに最新のデバイスを使用するなど)。 ソフトウェア側から見てOSがハードウェア資源に直接アクセスできるようにする。 ドライバとして基本的な部分だけを実装。 ドライバ以外のソフトウェアとのインタフェースを実装(例えば、TWAIN)。 何らかの高度な言語を実装(例えばPostScript)。 例えば、ユーザー向けに何かを画面に表示する場合、アプリケーションがカーネルに要求し、その要求がディスプレイドライバに送られ、ディスプレイドライバが実際の文字やピクセルの描画を行う。 カーネルは使用可能なデバイスの一覧を保持しなければならない。この一覧は、事前に知られている場合(例えば、組み込みシステムでは利用可能なハードウェアが変われば、カーネルを書き換える)、ユーザーが設定する場合(古いPCや個人用に設計されていないシステムなど)、OSが実行時に検出する場合(プラグアンドプレイ)がある。プラグアンドプレイのシステムでは、デバイス管理は最初に様々なバス(PCIやUSB)上をスキャンして実装されたデバイスを検出し、対応するドライバを探す。 デバイス管理は各OS固有の部分であり、カーネルの設計によってドライバの扱い方は異なるが、一般にカーネルはドライバが物理的にデバイスにアクセスするための入出力ポートやメモリ空間を用意する必要がある。デバイスへのアクセスはコンテキストスイッチを引き起こしたり、CPUを浪費したりすることになり易く、性能オーバヘッドの元となるため、デバイス管理の設計は重要である。
※この「デバイス管理」の解説は、「カーネル」の解説の一部です。
「デバイス管理」を含む「カーネル」の記事については、「カーネル」の概要を参照ください。
- デバイス管理のページへのリンク