馬目 洋一
Date: 2005年11月7日
「LINUXデバイスドライバ」(Linux Device Drivers)を参照するばあいに、今
後はL.D.D.と略すことにする。
前回までの実験で基本的なシステムコールを実装できた。それらのシステムコー
ルは、open、close、read、writeであった。実装したreadとwriteを使えばバイ
ト単位で基本的なデータの入出力が行える。
一般にシステムと言われるものは、デバイスドライバとアプリケーションプログ
ラムから構成されている。
通常、デバイスドライバはハードウェアを製造した会社から供給される。そのた
め複雑なデータ操作やデバイスの制御をおこなうには、ユーザがアプリケーション
プログラムを工夫しなければならない。
この実験では私たちがデバイスドライバを作成している。
デバイスドライバを工夫しておけば、アプリケーションプログラムの作成が容易
になる。
今回の実験では、ビット単位でデータを入出力できるようにするために、デバイ
スドライバのreadメソッドとwriteメソッドに工夫を加えてみる。
実際のドライバでは、複雑なデータ操作やデバイスの制御をおこなうためには
ioctlシステムコールを使う。
しかしながら、今回の実験ではデバイスドライバを書く者の特権として、通常の readとwriteの動作を自由に変更できることを体験してみる。