「ユーザーモードドライバー」の版間の差分
imported>News4vip (ページの作成:「'''ユーザーモードドライバー'''(英語:user mode driver)とは、ユーザーモードで動くように実装された[[デバイスドライバ...」) |
imported>Mono Book |
||
1行目: | 1行目: | ||
− | '''ユーザーモードドライバー''' | + | '''ユーザーモードドライバー'''([[英語]]:user mode driver)とは、[[ユーザーモード]]で動くように実装された[[デバイスドライバー]]のことである。 |
== 概要 == | == 概要 == | ||
− | ユーザーモードドライバーとは、[[カーネルモード]]で動く低レベルな[[デバイスドライバー]]と、それを[[ユーザーモード]] | + | ユーザーモードドライバーとは、[[カーネルモード]]で動く低レベルな[[デバイスドライバー]]と、それを[[ユーザーモード]]から利用できるようにするAPIライブラリ([[SDK]])を用いて作られた[[デバイスドライバー]]のことである。 |
古い時代の[[デバイスドライバー]]は[[カーネルモード]]で動いていた。そのため[[プログラマー]]が利用できる[[API]]は非常に限られ、[[C言語]]の標準ライブラリすらまともに使えないなどの制約があった。また、一般的な[[プログラム]]とは異なり[[デバッグ]]も難しいうえに、ひとたび[[バグ]]が発生すると[[OS]]ごと[[クラッシュ]]するという厄介な代物であった。 | 古い時代の[[デバイスドライバー]]は[[カーネルモード]]で動いていた。そのため[[プログラマー]]が利用できる[[API]]は非常に限られ、[[C言語]]の標準ライブラリすらまともに使えないなどの制約があった。また、一般的な[[プログラム]]とは異なり[[デバッグ]]も難しいうえに、ひとたび[[バグ]]が発生すると[[OS]]ごと[[クラッシュ]]するという厄介な代物であった。 | ||
− | そこで考えられたのが[[カーネルモード]] | + | そこで考えられたのが[[カーネルモード]]で全てを処理するのではなく、[[ユーザーモード]]との[[データ]]のやりとりに特化し、[[バグ]]の入り込む余地がないくらいシンプルな[[カーネルモード]]で動く[[デバイスドライバー]]を用意し、それを利用して[[デバイスドライバー]]のメイン処理を[[ユーザーモード]]で書いて動かしてしまおうという手法が登場した。これがユーザーモードドライバーである。 |
− | この概念自体は古くから存在していたが、全てが[[カーネルモード]] | + | この概念自体は古くから存在していたが、全てが[[カーネルモード]]で動く旧来のデバイスドライバーに比べ、ユーザーモードドライバーは速度的に非常に不利であり、[[コンピューター]]、とくに[[PC]]の性能が低かった時代には敬遠されていた技術である。 |
+ | |||
+ | 近年では[[PC]]の性能が桁違いに向上したこともあり、[[ファイルシステム]]や[[GPU]]などの速度が求められる分野でもユーザーモードドライバーに移行しつつある。とくに[[ファイルシステム]]は[[UNIX]]の[[FUSE]]や[[Windows]]の[[Dokan]]などの[[SDK]]が登場したことで広く認知されるようになってきた。また、[[GPU]]なども徐々にユーザーモードドライバーに移行しつつある。 | ||
== 主な開発環境 == | == 主な開発環境 == |
2014年10月7日 (火) 07:32時点における最新版
ユーザーモードドライバー(英語:user mode driver)とは、ユーザーモードで動くように実装されたデバイスドライバーのことである。
概要[編集 | ソースを編集]
ユーザーモードドライバーとは、カーネルモードで動く低レベルなデバイスドライバーと、それをユーザーモードから利用できるようにするAPIライブラリ(SDK)を用いて作られたデバイスドライバーのことである。
古い時代のデバイスドライバーはカーネルモードで動いていた。そのためプログラマーが利用できるAPIは非常に限られ、C言語の標準ライブラリすらまともに使えないなどの制約があった。また、一般的なプログラムとは異なりデバッグも難しいうえに、ひとたびバグが発生するとOSごとクラッシュするという厄介な代物であった。
そこで考えられたのがカーネルモードで全てを処理するのではなく、ユーザーモードとのデータのやりとりに特化し、バグの入り込む余地がないくらいシンプルなカーネルモードで動くデバイスドライバーを用意し、それを利用してデバイスドライバーのメイン処理をユーザーモードで書いて動かしてしまおうという手法が登場した。これがユーザーモードドライバーである。
この概念自体は古くから存在していたが、全てがカーネルモードで動く旧来のデバイスドライバーに比べ、ユーザーモードドライバーは速度的に非常に不利であり、コンピューター、とくにPCの性能が低かった時代には敬遠されていた技術である。
近年ではPCの性能が桁違いに向上したこともあり、ファイルシステムやGPUなどの速度が求められる分野でもユーザーモードドライバーに移行しつつある。とくにファイルシステムはUNIXのFUSEやWindowsのDokanなどのSDKが登場したことで広く認知されるようになってきた。また、GPUなども徐々にユーザーモードドライバーに移行しつつある。
主な開発環境[編集 | ソースを編集]
- FUSE
- Dokan
- Windows Display Driver Model
- Windows Vistaで導入かつ強制されたビデオカード用のユーザーモードドライバー。混乱はあったが長い目でみるとGPUが非常に扱いやすくなった。