「ユーザーモードドライバー」を編集中
ナビゲーションに移動
検索に移動
この編集を取り消せます。 下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。
最新版 | 編集中の文章 | ||
1行目: | 1行目: | ||
− | '''ユーザーモードドライバー''' | + | '''ユーザーモードドライバー'''(英語:user mode driver)とは、[[ユーザーモード]]で動くように実装された[[デバイスドライバー]]のことである。 |
== 概要 == | == 概要 == | ||
− | ユーザーモードドライバーとは、[[カーネルモード]]で動く低レベルな[[デバイスドライバー]]と、それを[[ユーザーモード]] | + | ユーザーモードドライバーとは、[[カーネルモード]]で動く低レベルな[[デバイスドライバー]]と、それを[[ユーザーモード]]から利用できるようにするAPIライブラリー([[SDK]])を用いて作られた[[デバイスドライバー]]のことである。 |
古い時代の[[デバイスドライバー]]は[[カーネルモード]]で動いていた。そのため[[プログラマー]]が利用できる[[API]]は非常に限られ、[[C言語]]の標準ライブラリすらまともに使えないなどの制約があった。また、一般的な[[プログラム]]とは異なり[[デバッグ]]も難しいうえに、ひとたび[[バグ]]が発生すると[[OS]]ごと[[クラッシュ]]するという厄介な代物であった。 | 古い時代の[[デバイスドライバー]]は[[カーネルモード]]で動いていた。そのため[[プログラマー]]が利用できる[[API]]は非常に限られ、[[C言語]]の標準ライブラリすらまともに使えないなどの制約があった。また、一般的な[[プログラム]]とは異なり[[デバッグ]]も難しいうえに、ひとたび[[バグ]]が発生すると[[OS]]ごと[[クラッシュ]]するという厄介な代物であった。 | ||
− | そこで考えられたのが[[カーネルモード]] | + | そこで考えられたのが[[カーネルモード]]で全部処理するのではなく、[[ユーザーモード]]との[[データ]]のやりとりに特化し、[[バグ]]の入り込む余地がないくらいシンプルな[[カーネルモード]]で動く[[デバイスドライバー]]を用意し、それを利用して[[デバイスドライバー]]のメイン処理を[[ユーザーモード]]で書いて動かしてしまおうという手法が登場した。これがユーザーモードドライバーである。 |
− | この概念自体は古くから存在していたが、全てが[[カーネルモード]] | + | この概念自体は古くから存在していたが、全てが[[カーネルモード]]で動く旧来のデバイスドライバーに比べユーザーモードドライバーは速度的に非常に不利であるため、[[コンピューター]]、とくに[[PC]]の性能が低かった時代には敬遠されていた技術である。近年では[[PC]]の性能が桁違いに向上したこともあり、[[ファイルシステム]]や[[GPU]]などの速度が求められる分野でもユーザーモードドライバーに移行しつつある。とくに[[ファイルシステム]]は[[UNIX]]の[[FUSE]]や[[Windows]]の[[Dokan]]などの[[SDK]]が登場したことで広く認知されるようになってきた。 |
− | |||
− | |||
== 主な開発環境 == | == 主な開発環境 == |