2016年10月7日金曜日

デバイスドライバ

デバイスドライバとはなんでしょうか。デバイスドライバとは、コンピュータ内部に装着された装置、もしくは外部に接続したデバイスを制御・操作するためのソフトウェアです[1]。Linuxでは、デバイスドライバはLinuxのカーネルモジュールとして提供されています。なお、カーネルモジュールとは「カーネルモジュールとは、カーネルの機能を拡張するためのバイナリファイル」[2]です。すなわち、Linuxではデバイスドライバは「カーネルモジュール」なのです。

必要なデバイスドライバをLinuxのカーネルのなかに取り込むことを「ロードする」といいます。
なお、現在ロード済みのデバイスドライバを確認するにはlsmodコマンドを使用します。Terminalを起動して次のように打ってみます。
$ lsmod
すると以下のようにロードされているカーネルモジュールが表示されます。このように、lsmodは/proc/modulesの情報を出力します。/procディレクトリというのはLinuxカーネルの認識しているデバイスの情報が格納されているディレクトリでしたね。

Linuxでは通常必要なデバイスドライバは自動的にロードされます。手動でデバイスドライバをロードしたい場合はmodprobeコマンドを使います。なお、逆にアンロードしたい場合もmodprobeを使用します[3]。例えばcdromモジュール(CD-ROMドライバ)をアンロードしたいのであれば次のようにコマンドを書きます。
$ lsmod -r cdrom

[1] IT用語辞典 E-words 「デバイスドライバ 」の項目 http://e-words.jp/w/デバイスドライバ.html 2016年10月8日閲覧。
[2] Miracle Linux技術トレーニング 基本管理コース II 第1章 カーネルhttps://users.miraclelinux.com/technet/document/linux/training/2_1_1.html 2016年10月8日閲覧。
[3] ITpro Linuxコマンド集 http://itpro.nikkeibp.co.jp/article/COLUMN/20130909/503342/ 2016年10月8日閲覧。