「ユーザーモードドライバー」の版間の差分

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

主な開発環境[編集 | ソースを編集]

関連項目[編集 | ソースを編集]

参考文献[編集 | ソースを編集]