[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]

[linux-users:102095] Re: 組込Linuxドライバの作成方法


At Thu, 4 Mar 2004 15:56:21 +0900,
Yoshihiro Kawabe wrote:
> で、元々話題がドライバレベルとユーザ空間上で動作している状態のアプリケー
> ションとのインターフェイスと言うことだったので、カーネルAPIとして、
> Unix系には欠ているなんらかの新しいインターフェイスがあるのかと思いまし
> た。

私は kernel space と user space の境界の話ではなく、
デバドラとカーネルの他の部分との境界と API の話だと
思ってました。中間になんらかのフレームワークがあらかじめ
用意されていれば、それを利用するのが自然だからです。

// Network I/F などはその部分は悩みようがない。

> Naoto> Unix でも、kernel から userland への up call を用いて
> Naoto> スレッドのプリエンプション等を実装している例はあります。
> Naoto> もっとも up call を API として使用している例は知りません。
> 
> これは、signalのことですか?

いいえ。Scheduler Activations です。
もちろん、ここで使われている up call は API ではありません。

> Linuxのドライバでも、Sound系(OSSもALSAも)やV4L、IEEE1394(rawやDVとか)、
> SCSI Generic などのドライバは、

mmap のためのインフラはこれらに限らずどんなドライバでも利用できます。

実際去年仕事で mmap とスキャッタギャザ DMA で限りなくゼロコピーな
ドライバを実装しましたが、大変簡単に実装できて楽でした。

> で、イベ
> ントの発生をSIGIOにすると、雰囲気だけはおっしゃられている様な感じに見
> えるインターフェイスになります。

でも SIGIO を待つのに、結局 select を使うハメになりませんか?
signal hander から個別の event handler を直接ディスパッチ
するのはいくらなんでもやらないでしょうから。

--
Naoto Shimazaki

この情報があなたの探していたものかどうか選択してください。
yes/まさにこれだ!   no/違うなぁ   part/一部見つかった   try/これで試してみる

あなたが探していた情報はどのようなことか、ご自由に記入下さい。特に「まさにこれだ!」と言う場合は記入をお願いします。
例:「複数のマシンからCATV経由でipmasqueradeを利用してWebを参照したい場合の設定について」
Follow-Ups: References: