アクマくんにお願い:2000年06月分

Last-modified: Wed, 28 Jun 2000 19:05:20 JST

[static,style:furuta,jconv:jcode,cache:on]
powered by tds-Tomsoft Diary System 1.01-beta0


[トップ(一覧)] [最新版] [<<前月] [今月] [翌月>>]

2000年06月02日(金)

どなどな

しばらくの間客先常駐らしいです。 というわけで、朝から環境構築作業だす。 ssh-keygen して indentity.pub を配ってほえほえ。 network 的には太いところなので、ssh して作業するのも 苦にならないのが救いと言えば救い。

しっかし、何が我慢できないって、やはしキーボードですな。 My keyboard を使っても良いらしいので、 月曜には忘れずに持ってくることにしよう。

LFS

とあるところに LFS 布教話を書いた手前、自分でも 使いこんでみることにするのです。 NetBSD-current (1.4Z) での fsck_lfs での 修正コードもcommitされたようですし。

確かに、以前(1.1 の頃だったっけ..)とは 比べものにならないほど安定して使えます... Log が一周しないうちは。

一周以内に納まるなら(つまり、ガベージコレクタが 動き出さないうちは)かなり安定している雰囲気です。 X11 の make World や NetBSD-current の make dependall にも耐えます。 しかし、ガベージコレクタが動きだすと、かなり不安定です。 panic 死や突然死がよくおきます。

dumplfs(8) で "ifile" が拾えなくなることが多いです。 fsck_lfs(8) である程度修復が可能になるようですが、 検出した問題を全て修復できるわけではないようです。 dump_lfs(8) (dumplfs(8) と紛らわしいが、こちらは dump(8) の LFS 版) は 全く動作していないようみ見えます。

あ、そうそう、致命的なのは、-o ro で mount_lfs(8) したものを umount(8) すると、固まります。 正確に言うと、umount(8) の kernel context が突っ走り初めて、 他の process がほとんど実行されなくなります。 でも我慢して待っていればちょっとは実行されるみたい。 ちょうど、300bps の modem 経由で使っている感じです。:-)

一体 kernel で何がおこってるんだろうといろいろ調べようとする けど、やがて "no more segment" panic 死します。 ddb で trace すると、umount が sync 経由で lfs_segwrite とか呼び出してやんの。 おい、-o ro で mount されてるのに、 sync から lfs_segwrite って一体? (^^;


2000年06月03日(土)

睡眠不足

先週はかなり無理をしていたようで、 断続的に電池不足でダウン。無駄が多い。

xsrc

NetBSD-current base の X 環境を作って使ってみる。 なぜだかわからないけど、かなり頻繁にキー event を拾えなくなる症状が 頻発する。しかし、その状態でも fvwm95 はキー event を拾っている。 ショートカットに割り当てたメニューは起動するけど、 kterm やら emacs やらでキー入力できなくなっている状態。

格闘してみたが、簡単には解決できそうになかったので、断念。

Modula-3

Polytechnique Montreal Modula-3から source コードを持ってきて(でかい、26MB もある) FreeBSD で bootstrap コンパイルしてみる。Modula-3 はコンパイラ自身が Modula-3 で書かれているし、make の代替(m3build)も Modula-3 で記述されていて、 makefile も m3makefile とやらの謎のコードを書かないといけないらしい。 そこで、各環境用にコンパイルしてあるもの(ただしアセンブル以前)を 持ってきてアセンブル&リンクを行なってコンパイラ、リンカ、m3build など を作成してから、膨大な量のライブラリやパッケージをコンパイルする。

途中でコンパイルに失敗する場所があったので、 いろいろ調べてみる。 どうやら、lex の出力コードをコンパイルしようとして、 flex と lex の微妙な違いでコケている感じ。 m3makefile 中に

if equal (TARGET, "LINUX") or equal (TARGET, "LINUXELF") or
    equal(TARGET, "LINUXLIBC6")
  include_dir ("flex-bison")
else
  include_dir ("lex-yacc")
end

なんていうのがあったので、ここに or equal(TARGET, "FreeBSD3") を 入れたら、上手く通るようになった。本当にテストしてるんかいな。

ところで、これはデフォルトでは /usr/local/pm3 というディレクトリ以下に bin, doc, lib, man などのサブディレクトリを作って インストールするみたいですけど、ports を作るとしたらそういう形式で いいのかしらん? それとも /usr/local 以下に直接展開する方が正しいんだろうか?

NetBSD native に移植できないか、いろいろ調べてみてまわる。 まぁ絶対無理ではなさそうだけど、安定して動いてくれるかどうかは 謎な雰囲気。とりあえず、C のサポートルーチンをいくつかと、 設定ファイルをいくつかごにょごにょしてやれば、動きそうなめぼしは つけられたと思うけど、こればっかりは実際に動かしてみないと何とも。

ところで、せっかく作業をしたばかりだと言うのに次のバージョンが release されとるじゃないか。がびーん。


2000年06月04日()

掃除

部屋の収拾がつかなくなっている状態なので、 意を決してお掃除モードに突入する。 結果、堆く積上げられた本の山に呆然としてしまう。 本棚足りません。本棚を置く部屋も足りません(泣)


2000年06月06日(火)

ぐるぐる

どひ〜まぢっすか。びっくりした〜。

おめでとう。責任重大だね。

こちらも おめでとうございます。

イベンツ予定

という訳で、BSD week 予定。6/8 のみ午後半休なのです。


2000年06月07日(水)

jkh & imp 迎撃

そこ、うるさくて話が聞けないです。

わしら「merge どうすんの」 jkh「SMP は走り出したけど、他は全然未定かな。まあいいとこどりになるっしょ」 <- 意訳しすぎ。

...てな感じですか。 やぱし、BSD/OS のカーネルに FreeBSD のドライバを移植するってのが いいとこ取りの基本っしょ (^^;


2000年06月08日(木)

dconf-jp meeting

BOF 前に集まって dconf-jp のオフミ。 面子は uch, itojun, aki, AoiMoe, nakagawa, furuta だったっけ? うーむ、最初に書記決めとくんだった、失敗。

とりあえず、

... てな話だっけ? 求むつっこみ。

N+I BSD BOF

補完予定


2000年06月09日(金)

補完予定


2000年06月12日(月)

同期 I/O の実現

_

やっぱし ちょっと気になります。おっしゃってることは間違っていないような気がするけど、 用語の使い方に違和感があります。 私ならこう書きます。

_

おそらく、趣味の問題という気はしますが、 「カーネルスレッド」を未定義で使われると、狭義の 「ユーザーコンテキストを持たず、 カーネルモードだけで実行され、 決っしてユーザーモードになることのないプロセス」 のことを想像してしまいます。 「プロセスに対応するカーネルスレッド」があると考えるよりも、 「プロセスはカーネルモードとユーザーモードから成る」と考えた方が 私はしっくりきます。 それから「割り込みスレッド」という用語もしっくりこないのですが、 こちはらあまり誤解を産みそうにないので、趣味以上のものではないと思います。 また、以上出典を御存じでしたら、教えてください。

_

MINIX では、ユーザプロセスとタスク、タスクとカーネル、カーネル内のデバ イスドライバのカーネルスレッドと割り込みスレッドの同期は、いずれも send(), recieve() システムコールを介したメッセージパッシングで行われる。 メッセージパッシング処理には、その内部に race condition を回避するため の仕組みが組み込まれているため、同期のための特別な仕組み (伝統的 UNIX で用いた割り込みレベルの操作のような処理) は不要である。

これってそうでしたっけ? spl*() は critical region の保護に必要ですが、 send(), recieve() は内部に race condition を回避する仕組があって、 sleep(), wakeup() にそれがない、というのはかなり納得いかないのですが、 反論しようにも今 MINIX の source code を参照できる環境にないので 確認できないのです。

_

UNIX の場合複数の sleep() しているプロセスに wakeup() すると 全員が起床するのに対して、MINIX の場合 recieve() しているタスク に send() すると、受取人は一人だけ、という違いが 本質的なんではないでしょうか、この場合。

_

それから、カーネル内の同期に send(), receive() の理由なんですけど、 意識してるという程度ではなくて、 fs と mm を含めて考えれば間違いなくマイクロカーネルですよね。 内部的なつくりとしては、デバイスドライバは (アドレス空間を共有している)タスクです。 MINIX の場合、単純さが第一で効率は第二ですから、 (マイクロカーネルの為に) すでに存在している同期メカニズムをそのまま使った、 とも考えられますよね。


2000年06月15日(木)

補完

6/7, 6/8 の分。ふう。

おーとまとん

う、「エレガンント」と言われると困るけど、 (有限)オートマトンから正則表現への変換は、理論上きわめて機械的に実装できると思います。 たいていのオートマトン理論の本に載ってると思います。

CVS

私も今の仕事でも CVS 使ってますが、 成果物として一部 Excel の出力を扱わねばならなくて、 CVS 管理してます。 必ずしもテキストファイルじゃなくても使えない訳じゃないです。 特に管理対象の大部分がテキストファイルだけども、 同一ツリー内で一部バイナリファイルも扱う必要がある場合等は CVS 管理してしまった方が楽だと思います。

むしろ、バージョン管理されずに 日付付きファイルが多量にばらまかれている現状をどうするかとか、 CVS の管理手法に対する心理的抵抗感とか、 上手くいかない場合のサポートとか、 そっちの方が大変だと感じてます。sigh.

CVS の手順とかは、メンバーさんが皆 emacs 使いだったので 「面倒なら VC 使え」で押しきってしまいました。 自分が使うだけだと便利なツールなんですが、 人に使ってもらえるようにするのは、大変ですね。

ぐる

昨日、都内某所のファミレスでも そういう話題になったような... どうも、合意事項らしいです。 昨日自宅に献本が届いてましたが、まだ封をきってないです。 うう、チェックしなくちゃ (;_;)

ICANN At Large

なるほど、私も数日前に申し込みしてます。 手続きを終えるには国際郵便が届くのを待たないといけませんが。

某 ML で聞いた話だと、(ちょっと昔の数らしいのですが) 日本からの会員はかなり少い模様で、 発言力を確保するうえでマズいらしいです。

別にドメインを沢山持ってようが、持ってまいが、 登録は誰でもできます。 たとえばですね、 「.mil ドメインを米軍だけが独占するのはけしからん。 coffee.mil とか wo.mil を使わせろ」 って、何のネタでしたっけ?


2000年06月28日(水)

keep alive

むう、たまには更新しよう。

流行りもの

プログラマ度は 142.2

ぐる

_ 池袋のパーツ屋

どこで買っても良いものならば、私ゃ BIC パソコン館の地下1階を時々使うなあ。

_ USENIX 2000

ああ、あたしも発表とか無しの気楽な立場で行ってみたい。

_ Minix 256倍

うーみゅ (^^; どこから砂原先生が? とりあえず執筆者に砂原研の人はいないです。

_ ICANN 申し込み

はい、そゆことだと思います。 別にドメインホルダーじゃなくても、 各種ドメイン名のユーザーとしてお世話になっとるわけだし、 ドメイン名以外にも IP アドレス空間とか 管理するべき資源はありますからね。

という訳で、まだの人はドメインホルダーじゃなくても、 登録しときませう。つうか、 楽しいイベントに参加しない人々の気がしれない、ってとこですか? :-)

フレッツアイ

各所で話題のフレッツアイですが、 ZOOTにしようかと考え中。 プレスリリースによると、月額 1000 円固定で、固定 IP というのがポイント。 ただし、「RS/6000 (UNIX)」のあたりに、 その、何というか一沫の技術的不安が... (^^;


[トップ(一覧)] [最新版] [<<前月] [今月] [翌月>>]

このページは、

Copyright(C) 1999,2000 Atsushi Furuta <furuta@bsdclub.org> All rights reserved.