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

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


川辺と申します。

# なんか長く続けすぎてるかしら。

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

Naoto> でも Linux は今では非常にたくさんの CPU とプラットフォームに
Naoto> 移植されているのです。PC 以外のプラットフォームで Linux を
Naoto> いじってみるとかなり苦痛ですよ。

なるほど。SPARC版(SS-2が転がってる)をトライしようと仕掛けたことはあり
ますが、必要性が無くなってしまってやってません。PA-RISCマシンにも、入
れようかと画策しているのですが、こちらも急ぐ必要がなく放置です。(と言
うかもう長いことHP-UXすら起動してないな)

ただ、苦労が多かったろうことは、S390版のソースを観てると大変に感じます。

Naoto> 4.4BSD で再設計されました。それが今の NetBSD や OpenBSD の
Naoto> バスアーキテクチャに引き継がれています。

4.3renoの頃にVM周りがごそっと変わったり、アーキ関係が見通しがよくなっ
たりしましたね。MachのVMっぽい(と言うかそのもの)って感じが良さげでした
ね。それをついで、4.4は綺麗になったんでしょうね。

むかしいた会社で4.4BSDの国産PowerPCマシン(PPC604でPReP仕様なのですが多
分知ってる人は少ない気がする)を使った時は、SS-20(+Solaris2.4)より数段
使い勝手が良かった。(って、その時はカーネルは読んでないんですが .....)

このMLで言うのも問題ですが、最近のBSDのカーネルソースを向学のために
眺めたくなって来ました。仕事では縁が無さそうなので、完全に個人的趣味と
してかな。

Naoto> 私はあくまでもデバドラの話をしているのです。

そこに限ると、

Naoto> デバドラを設計する時、割込禁止時に割込許可状態を保存/復元すると
Naoto> フェイルセーフになるという考えはほとんど全く役に立たない、
Naoto> と言っているのです。

その通りだと思います。

Naoto> 錯覚であることを理解しましょう、というのが私の論旨です。

いえ、そこでは、特に錯覚はしてないのですが。
ドライバ限定の話としては、Naotoさんの論旨には賛成です。
まぁ、私がドライバを書いた(SVR系やむかぁーしのBSDとか、Unixっぽい組み
込み系とか)のなんて昔のことなので、昨今とは事情が変わってるかも知れま
せんが。

Naoto> interruptible_sleep_on() は割込許可状態で呼ぶ仕様なのです。

歴史的経緯は知らないのですが、敢えて初めにそう設計したのでしょうかね。
単に初期にそうなってしまって引き摺ってるだけってわけではないのですよね?

Naoto> Linux の割り込み周りの設計がダサいから、そうする必要が

初めから細かく考えて設計したのでは無く、単に行き当たりばったり的な実装
(もちろん、最近は熟考の上の設計で種々選択しているでしょうが)の積み重ね
で今に至っていると言う、失礼な妄想をついつい抱いてしまうのですが、気の
せいですよね?

Naoto> あるにすぎません。普通は interruptible_sleep_on() に
Naoto> 見られるような race condition を起こさないように、
Naoto> スケジューラ I/F の仕様を定めるものです。

はい、その通りだと思います。

Naoto> 上にも書きましたが、幅広いコンテキストで呼ばれるルーチンが
Naoto> 割り込み状態の保存and禁止と復帰を対で扱うのは必然です。

ですよね。なぜ、その常識だと思っていた(少なくとも、Linux誕生以前、80年
代後半に私が観たいくつかのカーネルでは)ことが無視されているのか、興味
が持てたりしますが。やはり、行き当たりばったり的なものなのでしょうか?

とはいえ、設計上の問題は抱えている気はしても、BSDやMach辺りを横に退け
ておくと、90年代前半のオープンシステム全盛の頃の商用Unixカーネルに比べ
ると格段素直で読み易いソースなんで、障害調査をしたり、限定用途において
はいじる時の苦労は少なく(比較問題ですが)思えます。
人間が古いんで、crash dumpが無いのには目点でしたが ...
Linus氏はKernel dumpを嫌いみたいですね。(Network対応したんだから、そろ
そろ入れて欲しいなぁ)
--------
  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を参照したい場合の設定について」
Follow-Ups: References: