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

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


川辺と申します。

>>>>> "Naoto" == Naoto Shimazaki <igy@xxxxxxxx> writes:

Naoto> よろしいかと。

そっ、そうなんですか 。

Naoto> 「あらかじめ hook しておいた関数を呼ぶような明解な方法は
Naoto> ないの?」と考えてるんだろうなと、私は想像していた訳です。

そうですね。組み込み系では普通そうしちゃいますね。

Naoto> Linux ではなんらかの既存のデバイス抽象化レイヤとインタフェースするか、
Naoto> さもなければ read, write, select (poll) でインタフェースするしか
Naoto> ないので、その先が pthread かどうかはあんまり関係ないというか。

はい。少なくとも、fileopのインターフェイスを全く介さない方法は難しい
(と言うか、新規にシステムコールを組み込むしか無いかな)と思います。

でも、2.6.x系の epoll だとレベルトリガーとエッジトリガーと言う割り込み
系でお馴染の概念が導入されているので、ちょっと面白そうかなと思います。

同じ 2.6.x系だと futex のおかげで、やっとプロセス間共有のmutexとかcond
とか使える様になるし。(ってこれは、無関係かな。)

Naoto> 個人的には、async I/O するくらいなら multithread にしたほうが
Naoto> きれいだと思います。

はい。私もマルチスレッド派です。と言うかここ4年位は多数スレッド(1000オー
バ)のものを書くことが多くなりました。
性能上どうしてもと言う特殊なケースに限り非同期I/Oのお世話になる感じで
すね。あっ、ネットワーク系の場合には、pollでタイムアウトと言う感じで使っ
たりしてます。

昔は、よく wait_for_something と言う感じの名前の関数を書いて、自分でイ
ベントディスパッチしたりしたのですが、今となっては効率がいいとは言えな
いですね。
# X11のソースは、R4以降ちゃんと見てないので、今でも同じ名前かしら。
# R4の頃は、X端末へのポーティングとかもやってたんですけどねぇ。
--------
  Kawabe,Yoshihiro <ripula@xxxxxxxxxxxxxxx>
  Who is calling me from where?
  Knock on my shell and my mind? from Pearl song.

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

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