キャラクタ型ドライバ

キャラクタ型ドライバは単純なハードウェアに適している。

メジャー番号とマイナー番号

コンピュータに新しいドライバを追加=ドライバにメジャー番号を割り当てること


デバイスドライバの作成、登録方法のまとめ

1:モジュールをコンパイラ。 % gcc -O -c <ドライバ名>.c

2:スーパーユーザで、モジュールを登録。 # insmod <ドライバ名>.o

3:デバイスノードを/dev内に作成。

メジャー番号の動的割り当て

すべてのドライバ関数はメジャー番号とマイナー番号を組み合わせたinode->i_rdevを持つ。

ファイル操作、ドライバは通常のファイル操作のようにデバイスを操作することができる。

ファイル構造体_ struct file_operations

openメソッド

releaseメソッド(なぜ closeを使わないのか?)

readメソッド

writeメソッド

サンプルプログラムは本書(オライリージャパン)のWebページからたどれます。

キャラクタ型ドライバの高度な機能

ioctlメソッド

I/Oのブロック

スリープと目覚め:interruptible_sleep_on()sleep_on()wake_up_interruptible()wake_up()

ドライバをリエントラントなコードで書く

待ち列

ブロック処理と非ブロック処理

selectメソッド

非同期通知

lseekメソッド:デバイスを探す

デバイスファイルでアクセス制御