某日記

(前期)

平成16年4月1日(木曜日)

☆昨日

.酔っぱらってたのでさっさと寝た。

☆今日

.体が怠かったので半休。

.神保町経由で出社。

☆NetBSD/xmint68k

.前から高岳製作所の XMiNT という X 端末で NetBSD を動かせないか 検討していたのですが、ついにブートしますた。

.XMiNT は大きく分けて 2 つあります。一つは mc680x0 系で、 もう一つは SPARC 系です。このうち、 後者は MB86930 つまり SPARClite なため、 MMU を積んでおらず NetBSD は動きません。 前者は、

初代 XMiNT: mc68030
XMiNT C:    mc68ec030
XMiNT R:    mc68340
となっています。このうち MMU を積んでいるのは初代だけです。

.今回、手元に初代がなかったため、XMiNT C に mc68030 を積んで動かすことにしました:

.まだディスプレイドライバを作ってないのでシリアルコンソール経由で ネットブートしてみた結果:

NetBSD 2.0B (MINTC) #1: Thu Apr  1 20:50:24 JST 2004
    tshiozak@aoi:/usr/tmp/xmint/src/sys/arch/xmint68k/compile/MINTC
XMiNT-C (m68030 CPU/MMU, m68882 FPU, 25MHz clock)
total memory = 32768 KB
avail memory = 32256 KB
mainbus0 (root)
xmintio0 at mainbus0 mapped at 0xe0000000
mintmbe0 at xmintio0 addr 0xe8000000 intr 0x65: 
mintmbe0: Ethernet address xx:xx:xx:xx:xx:xx
zsc0 at xmintio0 addr 0xe9000000 intr 0x64
root device: mintmbe0
dump device: mintmbe0
file system (default generic): 
root on mintmbe0
nfs_boot: trying DHCP/BOOTP
nfs_boot: DHCP server: xxx.xxx.xxx.xxx
nfs_boot: my_domain=foo.bar
nfs_boot: my_addr=xxx.xxx.xxx.xxx
nfs_boot: my_mask=255.255.255.0
nfs_boot: gateway=xxx.xxx.xxx.xxx
root on aoi:/usr/tmp/xmint/root
root file system type: nfs
$

平成16年4月2日(金曜日)

☆昨日

.チャンピオン読んで寝た。

.まあ、当然というか何というかハードの資料はあるので、 初代 XMiNT か XMiNT C + mc68030 があれば、 多分簡単に NetBSD 動くんですけどねぇ。 公開できるかどうか怪しいけど。

☆今日

.晴れ。

平成16年4月3日(土曜日)

☆昨日

.サムライジ(3)を読んで寝た。

☆今日

.ドトールでマターリ。

☆続・デバイススペシャルファイルの複数オープン

.これ の続き。

.結論からいうと、vop のインターフェースに手を入れないと無理。 FreeBSD も、よくよく読んでみると区別できてない。

.理由:

  1. オープンを区別する必要があるということは、 デバイスの各操作から fp を区別できる必要があるということである。 ここで、fp は struct file のポインタ。 dup() されても fp は一つなので、 こう規定すると dup 時の振る舞いも決まるやね。
  2. デバイスの各操作は vop を経由する。
  3. vop は vnode に対する操作であって、fp とは直接関係ない。
  4. vnode というのはファイル(ffs なら i-node)と一対一に対応している。 一つのファイルを開いている複数の fp があっても、 参照する vnode は一つしか存在しない。
  5. よって vop は fp を区別する手段をもたない。 この辺のポリシーは、 たとえば sys_lseek() と VOP_SEEK() の関係を見るとよくわかる。
  6. よって、デバイスの各操作からオープンを区別する手段もない。

.fp を引数として渡せるようにする手もあるけど、 なんかダサいよね(lseek がああいう実装になってるのもそういうこと)。

.なお、なんでこんなことをしたいかというと PCM の仮想チャネルを実装したいという要求からなのだが、 FreeBSD がどうしてるかソースを見てみると、 /dev/dsp0.0, /dev/dsp0.1, .... という風に各々の仮想チャネルにスペシャルファイルを作って逃げてるから、 まあそんなもんでいいのかもしれず。

☆Mozilla

.どうも UTF-8 の時に、ちゃんと lang が設定されてないと KSC とかそういうフォントを優先して使いに行くようで始末が悪い。 preference の navigator -> language で ja を指定しても無駄だし、 デフォルト文字コードを日本語にしても駄目だし、 言語パックを ja にしても無駄。

.しょうがないから KSC と GB のフォントを抜いたら日本語のグリフを 使うようになったが、釈然としない。誰かいい解決方法があったら教えて。

.まあ、UTF-8 を使う人はちゃんと <html lang="ja"> とかしてください、ということで……。まあこれは UTF-8 に限らないんだけど。

平成16年4月5日(月曜日)

☆土曜

.ドトールでマターリ。

.BOOKOFF で DC 用の 「不思議のダンジョン 風来のシレン外伝 女剣士アスカ見参!」を 550 円で買った。

.「最長片道切符の旅 / 宮脇俊三」を半分ほど読んで寝た。

☆日曜

.ドトールでマターリ

.fmgen のソースを読んだりとか。対数で計算してるのね。なるほど。

.どっかにアレのアニメーション gif が落ちてないかなぁ、 なんて話から、某麻雀ゲームをプレイ。ちちゆれ。

.最長片道切符の旅の残りを読んで寝た。 これに載ってるローカル線の 1/3 から 1/2 はすでにないし、 もう四国を一筆書きに組み込むことも不可能だな。

☆今日のトピック

.ChuChu 6 月 1 日号 4/23 発売。買うこと>俺。

.オープンソースはなぜ大衆市場の要求を満たせないか 。 いろんな意味で興味深い。 もっとも、「なんで某 X が商品価値を持っているのか」 というところで長年考えてきた身としては、「何を今さら」ではあるのだが。 その辺に、「有料のもの」と「無料のもの」の壁があるわけです。

.DVD 書き込めるドライブ 。 安いな。そろそろ GSA-4082B くらいは買ってもいいかも。

☆続々・デバイススペシャルファイルの複数オープン

.これ のつづき。

.あるいは、デバイススペシャルファイルの場合には vnode を共有せずに、 オープンごとに新規に割り当てられるようにすれば、 vnode に closure を持つだけで済むのは確かだな。これならあまりダサくない。 破綻しそうだけど。

.devvp ってこれをやろうとしたのかな……。(み)の人に教えてもらった thorpej の Cloning bdev/cdev devices, step one をみると、まさに closure を持たせようとしてる。 ただ、やっぱり一つのスペシャルファイルに対しては一つの vnode が共有されるという仕組みである以上、 これだとクローニングはできないやね。

.fvdl の The devvp branch というのを見ると、vnode のクローニングに言及があるな。 VOP_OPEN() のインターフェースに手を入れて、 vnode をクローンできるようにすると。

.で、なんで止まってるのかな。 まあなんとなく vnode のクローンのところで破綻しそうだよな……。

.ところで、前から疑問なんだけど、「UNIX98 pty」って、 UNIX98 規格のどこで規定されてるの? grantpt(), ptsname(), unlockpt() の 規定はあるけど、 「/dev/ptmx がマスターで /dev/pts/* がスレーブ」 なんて記述は、UNIX98 のどこにも見当たらないんだけど。 (System V) STREAMS pty ならわかるんだけどなぁ……。 もしかして Linux あたりの方言?

☆夕方

.近所のファミリーマートにウィルキンソンのジンジャーエールが。

.ウィルキンソンのジンジャーエールは、 「ノーマル」と「ドライ」があるのだが、 ノーマルのほうが辛くてうまい。

.このあたり、酒の感覚で見るとちょっと用語に混乱する。 ファミリーマートでは、ご丁寧に「ノーマル」に「辛口」 とか表記してあるのだが、私は酒の感覚で「辛口=ドライ」 だと思って辛口でないほうを取ったらそっちがドライだった。 ラベルの色を忘れてなければ間違えなかったのだが。残念。

.理屈はいいので紫のラベルのほうを買え。

平成16年4月6日(火曜日)

☆昨日

.目隠しの国 (9) を読んで寝た。かなでっちゃんもエリちゃんもプリティ。

☆今日

.soda さんからメール。 やっぱり devvp は何かが破綻して仕切りなおしということになって それっきりみたい。

☆電波

.電波の医用機器等への影響に関する調査研究報告書

.どうも「最大干渉距離」から「安全距離」を求めるという方法論に対し、 「BSE の全頭検査は果たして必要なのか」という議論をせずに 全頭検査を実施するような方法論と同様の疑問を感じるのは私だけかのう。

.これは単なる疑問なのであって、もちろん否定するのが目的ではない。 世の中には「疑問を持つこと」が それすなわち「否定である」と感じる人も少なからずいるようだけれども、 そういう意図はない。 実際、「安全距離」ないしは「全頭検査」というものを否定する材料を、 私は全く持っていないし。なんらかの否定材料があるとすれば、 それは定量的かつ詳細な資料という形になると推測できるのでなかなか難しい。 まあ、これらの妥当性に対する漠然とした疑問を解消するためにも 同様の材料を必要とすると考えられるため、これは表裏一体ではある (だからこそ、「疑問を持つこと」は「否定」と取られるのかもしれない)。

.まあもっとも、携帯電話のマナーというやつは、 どちらかといえば実害の防止よりもペースメーカー利用者の心の安楽を 目的としてると考えるのが妥当な気はするのう。

.そういうのを気休めとも言うのだけど。 しかしながら、落とし所としては悪くない。

平成16年4月8日(木曜日)

☆昨日

.「先生、お昼は何になさいますか?」 「そうだなぁ、君にしようか」

☆今日

.それなりに忙しい。

☆NFS client-side locking support for NetBSD

.前々からやろうやろうと思ってた奴。 2.0B に対するパッチ 。

.ベースは FreeBSD のコードで、さらに大元は BSD/OS のコードなのだが、

  • カーネルがファイル名決め打ちで FIFO 開くなよ
  • これ LWP (FreeBSD では KSE) で破綻するやん
  • struct proc に手を入れてるのがヤラシイ
  • あまつさえメモリリークすらしてる模様
などツッコミどころが満載なので、特にカーネル側をばっさり書き換えて、 FIFO ではなく nfssvc() で待つようにしたりとか。

.とりあえず簡単なプログラムでは、ちゃんと動いてる模様。

.これ以上は面倒くさいから誰かやって。 というか、私 NLM の仕様はさっぱり知らんので、 そういうレベルで「ここ間違ってない?」 とか訊かれても答えようがなかったりして。 「ここ間違っとるから、こうせなな」とか、そういうのは歓迎。

平成16年4月9日(金曜日)

☆昨日

.「その向こうの向こう側(1) / 渡辺祥智」を読んで寝た。 やっぱりこの人の雰囲気好きだ。

☆今日

.いろいろ直した 。 いままでは lockd がいないと寂しい振る舞いをしていたが、 このパッチでは lockd がいないときは lock しようとしてもさっさと ENOTSUP するようにした。

.こうなると、 req/ans は read/write もしくは ioctl に直したほうがいいかもしれんな。

☆アレ

.わはは 。 ちなみに、「警官だからこそ」というののリンク先は、 警官による女子児童拉致に関連した警察の広報かなんかの話だった気がする。

.私も挙げるなら、

  • だからこそペースメーカ愛用者を守ります
  • だからこそ日本人を拉致から守ります
  • だからこそ士農工商民を守ります
  • だからこそアメリカ人を守ります
  • だからこそユダヤ人入植者を守ります
  • だからこそゲルマン人の純血を守ります
とか。左になにが来るかは察すれ。

.まー、主将が割と言い尽くしてるような気もするが、 この手の問題を考えるときには、 まず、そこには三者ないしは四者間の構造というのが 存在するということを意識して、 それぞれの立場や感情で考えてみないとダメよね。

.この種のスケープゴートの根本にあるのは、 マジョリティがマイノリティに対して持つ生理的嫌悪感なのよね。 もちろん、マジョリティの側のそういう「精神的な幼稚さ」 を擁護しようとも正当化しようとも思わんが、 でも「マジョリティが生理的嫌悪感を持つ」という事実は事実として存在する。 スケープゴートにされる側が卑屈になって、 言わなくてもいいようなことをムキになって言ったとしても、 そういう感情を煽るだけで逆効果だろうと思う。 だいたい、クソ真面目な顔をして「俺は女の子を守るぜ」とか言ったらさ、 そらみんな引くやろ。オタだろうがなんだろうが関係なしに。

.まあいずれにしろ、華麗にスルーが基本ですわよ (何かやるにしても、 正面突破ではなくて搦め手で行くのが、戦力的に弱い側の常套手段であろう)。 あるいは、COMIC LO のアレくらいに道化に徹すると、 陰が陽に転換されてよい。アレは両方を笑い飛ばしておる。 まあ、何か嫌なことに対して怒るだけではなくて、 笑うことと泣くことのできるくらいの精神的余裕を持つと、 世の中を生きるのもだいぶ楽になるやね。