next up previous
次へ: システムコールの再実装(dio_read)

情報システム実験(10)

馬目 洋一


Date: 2005年11月7日

LINUXデバイスドライバ」(Linux Device Drivers)を参照するばあいに、今 後はL.D.D.と略すことにする。

前回までの実験で基本的なシステムコールを実装できた。それらのシステムコー ルは、open、close、read、writeであった。実装したreadとwriteを使えばバイ ト単位で基本的なデータの入出力が行える。

一般にシステムと言われるものは、デバイスドライバとアプリケーションプログ ラムから構成されている。

通常、デバイスドライバはハードウェアを製造した会社から供給される。そのた め複雑なデータ操作やデバイスの制御をおこなうには、ユーザがアプリケーション プログラムを工夫しなければならない。

この実験では私たちがデバイスドライバを作成している。

デバイスドライバを工夫しておけば、アプリケーションプログラムの作成が容易 になる。

今回の実験では、ビット単位でデータを入出力できるようにするために、デバイ スドライバのreadメソッドとwriteメソッドに工夫を加えてみる。

実際のドライバでは、複雑なデータ操作やデバイスの制御をおこなうためには ioctlシステムコールを使う。

しかしながら、今回の実験ではデバイスドライバを書く者の特権として、通常の readとwriteの動作を自由に変更できることを体験してみる。





MANOME Yoichi 平成18年12月26日