デバイスドライバ
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/04/02 07:32 UTC 版)
カーネルモードとユーザーモード
Windowsでは、デバイスドライバはカーネルモード(x86 CPU のリング0)またはユーザーモード(x86 CPU のリング3)で動作する[7]。ドライバをユーザーモードで動作させる最大の利点は安定性の向上であり、ユーザーモードのデバイスドライバは品質が悪くてもカーネルメモリを上書きしてシステムをクラッシュさせるということがない[8]。一方、カーネルモードからユーザーモードに移行させると性能が低下するので、性能が要求されるデバイスドライバはユーザーモードに移行できない。
ユーザーモードのモジュールはシステムコールを使わないとカーネル空間にアクセスできない。
仮想デバイスドライバ
仮想デバイスドライバはハードウェア周辺機器をエミュレートするもので、特に仮想化環境で使われる。例えば、Windowsの動作しているコンピュータ上でMS-DOSプログラムを実行する場合や、Xenなどの上で動作するゲストOSの場合である。ゲストOSがハードウェアと直接やりとりできるようにするのではなく、仮想デバイスドライバがハードウェアをエミュレートすることで、VM内で動作するゲストOS(とその中のデバイスドライバ)が実際のハードウェアにアクセスしているかのような幻影を生じさせる。ゲストOSがハードウェアにアクセスしようとしたとき、ホストOS内の仮想デバイスドライバがそれに対応して呼び出される。仮想デバイスドライバはまた、VM内に割り込みなどのプロセッサレベルのイベントを擬似的に発生させることができる。
仮想化環境以外でも仮想デバイスが使われることがある。例えば、Virtual Private Networkでは仮想ネットワークカードが使われ、iSCSIでは仮想ディスクデバイスが使われる。仮想デバイスドライバの好例としてDaemon Toolsなどがある。
オープンなドライバ
アプリケーションソフトウェアとは違い、デバイスドライバはハードウェアのアーキテクチャや仕様が公開されていなければ作成が困難であるため、オープンソース版のドライバ開発はクローズドソース版と比較して活発でなかったり機能や性能が劣ったりすることが多い。
- プリンター: CUPS
- RAID: CCISS[9]
- スキャナー: SANE
- ビデオ: Vidix、ダイレクト・レンダリング・インフラストラクチャ
- Linux用AMD Radeonグラフィックスドライバ [10]
- Linux用インテルグラフィックスドライバ [11]
- Linux用NVIDIAグラフィクスドライバnouveau
- ^ Microsoft はUniversal Printをドライバレスと言っている [1]
- ^ 印刷タスクの進行状況、紙切れやインク量の状態が読める、という実装もあり得る。
- ^ "A Microsoft-provided class driver is an intermediate driver designed to provide a simple interface between a vendor-written minidriver and the operating system." Class Driver and Minidriver Definitions. Windows Hardware Developer.
- ^ "The different technology-specific driver models use a variety of names for the specific and general pieces of a driver pair. ... Here are some of ... pairs ... audio miniport driver, audio port driver ... battery miniclass driver, battery class driver" Minidrivers, Miniport drivers, and driver pairs. Windows Hardware Developer.
- ^ “PrimeCell UART (PL011) Technical Reference Manual”. ARM. 2012年10月3日閲覧。
- ^ “MAKEDEV — Linux Command — Unix Command”. Linux.about.com (2009年9月11日). 2009年9月17日閲覧。
- ^ “User-mode vs. Kernel-mode Drivers”. マイクロソフト (2003年3月1日). 2008年3月4日閲覧。
- ^ “Introduction to the User-Mode Driver Framework (UMDF)”. マイクロソフト (2006年10月10日). 2008年3月4日閲覧。
- ^ “CCISS”. SourceForge (2010年). 2010年8月11日閲覧。 “Drivers for the HP (previously Compaq) Smart Array controllers which provide hardware RAID capability.”
- ^ Open Source Zone - AMD
- ^ Intel® Graphics for Linux* | 01.org
- ^ "Windows Drivers will run on all Window 10 variants" Windows Hardware Developers. Getting Started with Windows Drivers.
- ^ "Windows Universal Drivers" Windows Blogs. Windows Universal Drivers.
- ^ "The Windows Driver classification will extend and replace the current Universal Driver classification." Windows Hardware Developers. Getting Started with Windows Drivers.
- ^ "For a software driver, your two options are KMDF and the legacy Windows NT driver model." Choosing a driver model. Windows Hardware Developer.
- 1 デバイスドライバとは
- 2 デバイスドライバの概要
- 3 概要
- 4 標準ドライバ
- 5 開発
- 6 カーネルモードとユーザーモード
- 7 デバイスドライバ関連のAPIや規格
- 8 脚注
固有名詞の分類
- デバイスドライバのページへのリンク