Pythonでデバイスドライバ

Pythonでブロックデバイスドライバを書く方法。

fusd(circlemud.org)を使う。これでキャラクタデバイスを書けるかどうかはわからん。まあ受け口となるカーネルモジュールとコールバックなりなんなりでコードを実行するためのユーザライブラリという組み合わせはfuse(sourceforge.net)などでもおなじみであるので、Pythonのモジュールを用意してくれちゃうというのもまあ、王道と言えるだろう。

Pythonのモジュール自体はけっこうちゃんと作ってあるように見える。open/closeでprint文が入ってしまうがまあこれはopen()/close()をオーバーライドすればよい話みたい。

#! /usr/bin/python</p> <p>import fusd</p> <p>class myclass(fusd.OpenFile):<br /> def do_read(self, req):<br /> print dir(req)<br /> print &#8220;len=&#8221;,req.length, &#8220;flag=&#8221;,req.flags<br /> print &#8220;pid=&#8221;,req.pid, &#8220;uid=&#8221;,req.uid, &#8220;offset=&#8221;,req.offset<br /> req.setdata(req.offset, &#8220;Hello&#8221;)<br /> req.finish(&#8220;Hello&#8221;.count(&#8220;&#8221;)-1)</p> <p>dev=fusd.Device(&#8220;device-name&#8221;, 0666)<br /> dev.openFileClass=myclass<br /> fusd.run()<br />

みたいな感じで。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です