Pythonでデバイスドライバ
Pythonでブロックデバイスドライバを書く方法。
fusd(circlemud.org)を使う。これでキャラクタデバイスを書けるかどうかはわからん。まあ受け口となるカーネルモジュールとコールバックなりなんなりでコードを実行するためのユーザライブラリという組み合わせはfuse(sourceforge.net)などでもおなじみであるので、Pythonのモジュールを用意してくれちゃうというのもまあ、王道と言えるだろう。
Pythonのモジュール自体はけっこうちゃんと作ってあるように見える。open/closeでprint文が入ってしまうがまあこれはopen()/close()をオーバーライドすればよい話みたい。
#! /usr/bin/python
import fusd
class myclass(fusd.OpenFile): def do_read(self, req): print dir(req) print “len=",req.length, “flag=",req.flags print “pid=",req.pid, “uid=",req.uid, “offset=",req.offset req.setdata(req.offset, “Hello”) req.finish(“Hello”.count(””)-1)
dev=fusd.Device(“device-name”, 0666) dev.openFileClass=myclass fusd.run()
みたいな感じで。
2003-09-16