Motoyuki's Diary (1999 年 8 月)

counter
[since Jan/22/1999 06:00 JST]
[ 日記の表紙 ] : [ 先月分 ] : [ 翌月分 ]

8 月上旬 : [8/1] [8/2] [8/3] [8/4] [8/5] [8/6] [8/7]

8 月 7 日 (土)

昨日の日記を 補完

Web 日記から

named のあのメッセージnamed -u [user] を指定してるからでしょう。 network interface が削除された場合、 named はその interface での socket を close します。 53 番 port をいじるためには root 権限が必要なのに、 named が -u で指定したユーザ権限で動作しているのですね。 最初の初期化のときは named が (-u で指定したユーザではなく) root 権限で 動いているから大丈夫なんだけど。

せっかくの -u オプションなのに、 network interface の追加や削除がおきる 場合は使いにくいのですね。うまい解決法を知ってる人がいたら教えてください。

小浜 さんの日記塩崎さんの 日記 から、「貢献」ということについて。自分ができる範囲、やりたい範囲で 行うのが貢献でしょう。小浜さんが日記でやっているように自分が興味を持った ことについて Web 上で情報をまとめるというのも立派な貢献ですよ。周囲の友人に 勧めるだけでも立派な貢献です。

*BSD と GNU

GNU は GNU 以外のソフトは考慮しなくてもよいはず、というのは candy さんが書いている通り でしょう。 binutils に関する feedback を忘れたというのが事実だとしても、 それを元に一般論として FreeBSD ユーザは非協力的だとか言われるのは ちょっと嫌だなと私自身は感じたので ああいうこと を 書いただけの話 *1 です。

*1 : a.out 形式のサポートを中止を決定した段階で、 GNU binutils は *BSD を相手にしないことに決めたんでしょ :-)。そういう相手に協力しなかった からといって一般論として「非協力的」と言われるのは嫌だなぁ、と。

私が GNU 関係のプロジェクトに対し何らかの否定的な意見を持ってる訳ではないし、 GNU binutils が a.out サポートを中止したことを批判している訳ではない。 GNU については今までにも何度かこの日記に書いてきたけど、 非常に肯定的にみている。

8 月 6 日 (金)

買物

秋葉原に出て買い物。パーツショップを巡ってから、ぷらっとホーム、 書泉ブックタワーといういつもの順序。

Intel の Ether カードは この件 で買ったもの。

GNU Emacs デスクトップリファレンスは家に帰ってから見たところ 1 ページ目から 意味不明の記述が。以下に引用 (下線は私)。

ESC x
ESC を押して放し、次に x を押します。
もちろん META キーのあるキーボードもあります。多くのキーボードで、 ALT キーが META キーの機能を果たします。使用するキーボードに META キーがある場合には、 それが CTRL キーとして機能します。 この場合、 META キーを押しながら g などの目的のキーを押します。

原文が正確にどうかはわからないが、同じ筆者の Leaning GNU Emacs, 1st edition にはほぼ同じ記述があって、

If your keyboard does have a META key, it works like the CTRL key described above, that is, you hold down the META key and press the desired key, such as G.

GNU Emacs を知らない人が機械的に翻訳するとこういうミスをするのだろうな、 という典型的な例のような気がする。翻訳後のチェックを担当した人も GNU Emacs 使ってないのでしょう。それにしても、最初のページからこういうのがあると 非常に興ざめだよ。

どうなんでしょうね > 翻訳者の日本ルーセント・テクノロジー (株) さん

天候

とても暑い。雲の間から太陽が出ているのだけど、ときどきバケツを ひっくり返したような雨が数分程度降ってくる。雨がやむとまた日がさす。

なんか東京の夏というよりは熱帯のスコールのような感じ。こういう天気が ここ数日続いているような気がする。

この後の「さくらといっしょ」の際にも話題になったんだけど、東京の天候が 確実に暑くなっている証拠だろうな。数年前までは最高気温 35 度なんてのは 一年に数えるくらいしかなかったような気もするんだけど...。

地球温暖化のせいも多少はあるかもしれないが、冷房の普及などによる 都市部の heat island 現象の影響が大きいのかな。

さくらといっしょ

渋谷に移動して「さくらといっしょ」宴会。某映画の券を持ってきて 「誰か買わない?」と誘ってた人がいたりする。 J.S. さんが誘ってたとしたら 本当に意外なのだろうけど、 Y.K. さんの場合はちょっと意外だっただけで 理解できなくもない :-)。

7 時から宴会を始めて 11 時半くらいまで飲んでいた。 6 人で 4 合瓶を 5 本 開けたから日本酒をかなり飲んだ計算になるのだけど、悪酔いせず、翌朝も 非常に爽快な目覚めだった。良い日本酒は全ての面で良い、ということだな。

にゃん さんの日記 にもあるように、話題は非常に高レベルな話から低レベルな話まで 多岐にわたっていた。 最近の FreeBSD 宴会 *1 は 参加人数が非常に多く盛況なのは非常に嬉しいのだけど、 こういう数人程度の宴会の良さというのはやっぱり別物だと思う。 人数が多くなってしまうとじっくりとした話ができなくなってしまう。

新宿始発 0:11 の中央線特別快速に乗って帰宅。非常に楽しい宴会でした。

*1 : 正確にいえば「さくらといっしょ」は FreeBSD 関係の宴会ではない、けどね。

8 月 5 日 (木)

FreeBSD

昨日 の続き。 おくじさんの 日記 の 8/5 から。オリジナルの作成者に対するフィードバックについては、 私が知る限りほとんどの場合に行っていると思う。渡辺さんが 日記 に書いているけど FreeBSD 固有のパッチがオリジナルにマージされたために FreeBSD のソースツリーからパッチ部分が削除されることって頻繁にあるしね。 実際に作業する立場からしても FreeBSD 固有のパッチをマージしてもらうほうが 遥かに楽ができる *1 し。

気になったので、 FreeBSD の ports コレクションについて調べてみたが、 何らかの理由で FreeBSD 固有のパッチがオリジナルに全然マージされないな というのをいくつか発見してしまった。その個々についてオリジナルの作者と パッチ作成者のどちらに (マージされない) 責任があるのかはわからないが、 FreeBSD 用パッチの作成者 (その port のメンテナ) がパッチを送るのを サボっている例はあると思う。

このあたりは FreeBSD 側として対処を改善する必要がある気がする。

binutils の場合は、 John Polsta が binutils 2.8.1 を FreeBSD の ELF 対応に 直して、 Doug Rabson が binutils 2.9.1 用にアップデートしている。 この時に 2.8.1 -> 2.9.1 のソース変更点を調べて問題がおこった場所を修正して いるはずだけど、 configure 部分に修正が必要だとは気付いていなかった可能性 もかなりある。 FreeBSD で binutils を make する時には configure は 使ってないからね。

FreeBSD の本家の ML をざっと見た限りでは、 binutils の最新版が FreeBSD で build できないという件は報告がないみたい。「最新版をいつ FreeBSD の ソースツリーに import するの」という話は出ているけど。 binutils の最新版の 追っかけをしている人はあまりいないような気がするので、「誰もそういうパッチが 必要なことに気付いていなかった」という可能性もかなりあるんじゃないかな。

binutils に関しては私が知らない事情がある可能性も高いので、 以上はあくまでも私の勝手な推測 *2 です。

私が昨日書いてたことが奇妙に見える理由は 塩崎さん が書いている通り です。

*1 : オリジナルがバージョンアップする度に自分でパッチを更新する手間を考えたら、 パッチをマージしてもらうほうがずっと楽。たいていの場合は二、三通のメールで 用が済むしね。 FreeBSD では (特に committer の場合は) いったん自分が手を出した部分は できるだけ引き続き担当することが暗黙のうちに要求されているので、 「パッチ作ったけど後は知らないよ」的な態度はとりにくい。

*2 : FreeBSD がバイナリ形式を ELF に変更するという大きなコストを払わなければ ならなかった最大の理由は「GNU binutils が a.out 形式のサポートを打ち切って しまった」ということだったりする。 a.out 形式のサポートが続いていたなら たぶん ELF への移行はなかったでしょう。
フリーのプロジェクト間の協力なんてそんなものですよね。自己のプロジェクトで 必要な部分のサポートを強要することなんてできないから。あくまでも相手が 「その気になってくれたら」という話でしかない。
私自身はできるだけ協力しあっていくべきだと考えてはいるけど、 協力によって得られる利益のほうが手間よりも遥かに大きいと思っているから だったりする。なので忙しくて協力するだけの手間をかけられない場合は 協力しないでしょうね。

まぁ、この手の話は主観的な問題だから何といおうとその人の勝手でしょう。 FreeBSD の ELF 対応作業に協力した一人としては、「GNU binutils って FreeBSD を無視する方針だったのね」と感じたのですが、これも主観的問題だからいいよね :-)

悔しい

Internet Week 99 でも FreeBSD の BOF をやろうという話が前からあるんだけど、よく調べたら ちょうど大学の総合卒業試験の週じゃないか。これでは見物に行くことも できない。非常に悔しい。

そんな時期にまで本業以外のことを考えている私がダメダメなのだろうけど。


8 月 4 日 (水)

今日

相変わらず暑い。が、だいぶ体が慣れてきたような気がする。

GRUB

おくじさんの 日記話題なって いるようです。おくじさんと FreeBSD ユーザとの間にどういうやりとりがあったかは 全く分かりませんが、塩崎さんが書いているように FreeBSD ユーザで GRUB 使ってるのは非常に少数派なのでフィードバックが少ないだけじゃないかと思う。

もう一つ考えられるのは GRUB を作っている側と FreeBSD プロジェクトとの 衝突かな。私は GRUB についてはほとんど知りませんが、 FreeBSD のブートローダの 部分に GPL なソフトが標準で入ることは絶対にないでしょう。 FreeBSD の方針の 一つとして、 GPL を満たさない場合でもきちんと使えるようにしようというのが あるからです。 FreeBSD 本家の ML を読んでいるとわかりますが、 GPL なソフトの 代替品として BSD Style License なソフトを採用しようという話が時々でてきます。

では gcc はどうなんだという話が出てくると思いますが、 gcc が必要ない場面 って考えられる (組み込みルータとか) ので gcc をシステムから削除することは 比較的簡単ですが、ブートローダとなると事情がかなり異なってきますよね。 gcc は他に選択の余地がないということも大きい。

人的資源が無意味に分散してる、って話を聞くとまっさきに Linux の distribution 乱立を思いおこすのは私だけじゃないと思う :-)。

それはともかくとして、 Linux 方面のかなりの人が信じている (と思われる) Cathedral and Bazaar 理論って無意味な分散を奨励しているような気がして 私自身はあまり好きではない。 GNU Hurd がどういう状況なのかは 私は全く知りません。

ML の参加者が異常に多くて active な人間が少ないっていう話、どこでも そうじゃないかな。 FreeBSD の doc-jp でいうと 本当に active な人間は片手で数えられるくらい、一度でも何らかの作業に参加した ことがある人は数十人、見ているだけの人はその 10 倍以上、というところだろうか。 私自身は

ML に入ってすぐ作業に参加するというのはちょっと敷居が高いかもしれない。 最初は黙って見ているだけで構わないから、暇なときに作業に参加する気になって くれる人が一人でも二人でも出てくれると非常に嬉しい。

と考えている。見られているのが本当に嫌だったら closed な ML にすればいいだけの話だものね。

Web 日記から

gorry さんの日記 から PC 汚染度チェック。 私の結果は

あなたは 167.4% コンピュータに汚染されています。

98% ぐらい駄目駄目です。 立ち直ることはおろか、コンピュータ無しでは生きていけませんし、 コンピュータが無くなった瞬間発狂するでしょう。 ここまできたら更なる精進をし、さらに上のレベルになりましょう。 このままだと娑婆に未練を残している様に見られてしまいます。 とにかく上を目指す以外道はないでしょう。 一般的な PC 用語は問題ありません。 でも、もっと精進すれば、歩くコンピュータ辞典と いわれることになるので、がんばりましょう。 貴方はどちらかというと、 UNIX マニアですね。 Windows のコマンドラインでつい「ls」などと叩いて 悔しい思いをしていることが多いことでしょう。 打倒ゲイツ OS を掲げて日々精進してください。

だそうです。

設問にけっこう疑問な点があったりする。 gorry さんも指摘しているけど、

問19:コンパイルの前にお祈りしたことがある。
お祈りなんかするほどのことかなぁ。「BUG 出すプログラムは作らない」までの 自信はないから自分に当てはまるものがない。
問21:FORTH, Ada, Algol がなんだかわかる。
FORTH, Ada, Algol を選んだ理由がよくわからん。
問23:8 インチディスクを使ったことがある。
昔使ってたけど今は持ってもいないという場合にはどれも当てはまらない。
問24:雑誌の付録にカセットテープがついていたのを知っている。
テープが付属していた雑誌はあったっけ? 書籍とかムックなら記憶にあるけど。

全般的に選択肢が片寄り過ぎてますね。問 10 のワープロとテキストエディタの 所もそう。適材適所で使うのが普通じゃないかな。数ページくらいのグラフィックを 多用した文書を作るなら Windows 上のワープロが便利だし、長文のレポート書くなら やっぱり LaTeX が楽。

上の結果で「打倒ゲイツ OS」などという表現があるのは最近の Linux ブームの 影響かな。 FreeBSD 関係で知っている人の間では「打倒 Microsoft」なんて あまり意識してない人が多いと思う。 UNIX に対して過剰な期待も過小評価もして いないという感じかしらん。 Windows や MacOS って非常にタコな OS だと思うけど、 わかってない人が使う分には適当 *1 じゃないかな。わかっている人がきちんと 管理された中 *2 で使う分には けっこう便利なツールでもあるし。

*1 : UNIX っていろいろなことが可能だからわかってない人が使うと非常に恐い、 ということ。

*2 : きちんとした firewall の中で使うとか、 Microsoft のメールソフトは セキュリティホールになりやすいので使わないとか。

8 月 3 日 (火)

Web 日記から

某所でコメントがついていたので 昨日の話題 の続き。

「UNIX でソースコードを配るようになった理由として gcc を挙げている」 などとは書いていないです。オープンソースが機能するためには、コンパイルする ための環境がフリーまたは安価に提供されていることがある意味で必須ですよね。 商用 UNIX では開発環境が別売りになって入手にかなりの費用がかかるように なってしまった時に gcc という極めて良質のコンパイラを 代替品 *1 として使うことが できました。なので「ソースコード配布を 維持 できた理由の一つが gcc」 という感じでしょう。

ソースコードを配布する文化ができたこと自体については古田さんが 日記 に書いている通りだと思います。

龍池さん から指摘が あった 日記更新ページ の誤動作の件ですが、どうもテレホーダイの時間帯に入ると Rimnet のサーバの負荷がかなり上がって しまうのが原因のような気がしています。見ていると 私の日記江洲さんの日記 のどちらかの更新時刻がおかしくなってしまう可能性が高いです。 st.rim も yk.rim もキャッシュサーバが間に入っているので、それが原因かも。

*1 : メーカ提供の cc があっても生成コードの質などの理由で gcc をインストールする 場合が多かったのだから「代替品」と言ってしまうのは変なのですが。

FreeBSD

CPU を酷使している状態で NFS サーバとしての性能が極端に低下してしまうという 昨日の話 の続き。

ISA ボードを抜き差ししてチェックしてみたところ、犯人は ISA バスの Ethernet カードである 3com 3c509-TPO であることが判明。 ifconfig ep0 しない状態でもダメなので、 ep ドライバの問題というよりは カード自体がタコなんじゃないかと思う。同じ ISA カードでも Sound Blaster AWE64 は問題なかった。

システム全体の性能を著しく損ねるようなカードに用はないので、 そのうち PCI バスの Ethernet カード (たぶん Intel のやつ) を買ってくるつもり。

テストをしていて気付いたのだが、 asuka で使っている EPoX の PP6-NF という M/B も大タコ。 BIOS の PnP configuration menu で Legacy ISA カードに明示的に割り当てたはずの IRQ を PCI のカードに割り振ろうとすることがあるようだ。 マシンをブートする途中で PCI のカードが突然死するような事態が何度かおきたので、 原因がわかるまでの間は結構悩んでしまった。

EPoX の EPoX の WWW ページ 見ると、 この会社は一応 BIOS update をユーザに提供してはいるんだけど BIOS 自体を 更新する頻度が著しく少ない。 ASUS のようにまめに update している会社の製品を選んだ方がいいような気がした。


8 月 2 日 (月)

FreeBSD

ちょっと面白いことに気付いた。

山梨の下宿と東京の実家では mserverasuka という ほぼ同じスペックのサーバが動いている。この二台では rc5-64 のような CPU を酷使するプログラムが稼働している時の動作がかなり 違うのである。

asuka は NFS サーバとしての 性能が極端に低下してしまい、ここのディスクを NFS mount しているマシン上での 作業が非常に苦痛になってしまう。これに対して mserver はほとんど影響がない。

どこで差がつくのか考えてみたが、

あたりくらいしか思いつかない。後者は明日にでも実験してみよう。

ちょっと FreeBSD 関係の作業を行った。徐々に復帰していこう。

Web 日記から

にゃん さんと同じく、財布のほうは たぶん 大丈夫 だと思います :-)

メールでも話題になったのだが、今回の参加メンバーは酒量という面からいうと かなり危険な気がする。何も考えなくてもいっぱい飲む人が半分を占めてるからね。 残り 半分の 方々が どれくらい飲むかはあまり把握してないのだけど、どうなんでせう?

子供 料金 ね。やるのならば

社会人料金 > 大学院生料金 > 学部生料金
を適用すべきでしょう ;-)。

実際にはこの年になって「学生だから割引料金」というのは一緒に参加する 人に悪くてかなり嫌だったりする。公共料金とか映画の入場券の割引とかなら平気で 使えるのだけどね。

最近かなりエンゲル係数の高い生活をしているような気がする。それも一日の食費が 数百円程度 *1 とかいう日もあるのに、週末になると宴会でどんと使っている。 食費に占める宴会費用の割合は計算していないけどかなり 高くなる *2 に違いない :-)。

いまは休みで東京にいるのだが、家にいる限りはきちんとした食事が 保証されているのが非常に嬉しかったりする。

Windows でソース公開のフリーソフトが少ない ことについて、もう一つ理由を挙げると すれば Windows では開発環境を整えるのにお金がかかるというのもあるような気が します。

むかしむかしの BASIC の時代にはソースがついていて 当たり前 *3 の世界でしたよね。 DOS に移行して C が普及した頃からソース公開がだんだん減ってきたように 私は感じています。 Windows でプログラミングするための開発環境って かなり高価 *4 なので、 ソースを公開しても利益を受ける人がかなり少数派になってしまっているのでは ないでしょうか。そういう実態ならソースを公開しようという動機が かなりなくなってしまうように思います。

UNIX の世界では、 gcc というフリーなコンパイラが普及していてソースを 入手すれば簡単に試せますよね。 UNIX に浸っていると当然のように感じてしまうの ですが、よく考えてみると重要な前提条件に思えます。 オープンソースを支えているのは GNU の gcc といっても過言ではないかもしれません。

*1 : 大学からすぐ近くに住んでいるのを利用して、三食とも家で食べたりしている。 炊飯器でごはんを炊いておいて、おかずは適当に一品くらい買って帰るとか いう感じ。

*2 : 山梨にいる間はほとんど酒は飲まない。月に一度あるかないか。

*3 : インタープリタ言語だから当然ではあるけど。

*4 : Borland が Turbo C, Turbo PASCAL で頑張っていた頃は Microsoft の開発環境も けっこう安いものが出ていたけど、 Borland が落ちぶれるにつれて どんどん高価なものばかりになってきているように思える。

8 月 1 日 (日)

今日

とりあえず恐怖の大王は大嘘だったらしい。

Web 日記から

make release の際に SMP の性能を活かす方法 ですが、 make release の中で make world している部分に ついては make -j に対応していますので、以下のパッチを /usr/src/release/Makefile に当てるとある程度まで SMP を活用することができます。

--- Makefile.orig	Sun Aug  1 23:59:23 1999
+++ Makefile	Mon Aug  2 00:00:43 1999
@@ -148,7 +148,7 @@
 	if [ -f /etc/resolv.conf ]; then \
 		cp -p /etc/resolv.conf ${CHROOTDIR}/etc; \
 	fi
-	cd ${.CURDIR}/.. && ${MAKE} installworld DESTDIR=${CHROOTDIR} NOMAN=1
+	cd ${.CURDIR}/.. && ${MAKE} -j4 installworld DESTDIR=${CHROOTDIR} NOMAN=1
 	mkdir ${CHROOTDIR}/${BOOTSTRAPDIR}
 	for i in ${BOOTSTRAPUTILS} ; do \
 		cp -p ${CHROOTDIR}$$i ${CHROOTDIR}/${BOOTSTRAPDIR} ; \
@@ -233,10 +233,10 @@
 	echo "	cd /usr/src"			>> ${CHROOTDIR}/mk
 .if make(release)
 	echo "	(cd etc; make distrib-dirs distribution)" >> ${CHROOTDIR}/mk
-	echo "	make world"			>> ${CHROOTDIR}/mk
+	echo "	make -j4 world"			>> ${CHROOTDIR}/mk
 .endif
 .if make(rerelease)
-	echo "	make all install"		>> ${CHROOTDIR}/mk
+	echo "	make -j4 all install"		>> ${CHROOTDIR}/mk
 .endif
 	echo "	touch /tmp/.world_done"		>> ${CHROOTDIR}/mk
 	echo "fi"				>> ${CHROOTDIR}/mk

この他にも工夫すればいけそうな個所がありますが、ディスクアクセスが 律速になっている部分が多いようなので、私はこれでとりあえず満足しています。

例が ちょっとダメ ですか :-)。いつもはもうちょっと工夫するのですが、今回は あまり時間の余裕がなかったのでメインマシンにアカウントを一つ作って 作業*1 しました。 最近の流行のように何かの画像を入れればいいのかもしれないけど、 時間も (その手の画像を入れる) 勇気もありませんでした。

*1 : 本来ならば FreeBSD をインストールする所から検証したほうがいいのだろうけど、 時間がないので新しくアカウントを作成して「生な FreeBSD」からどう設定するか 調べたのだ。自分の環境はいろいろいじってあるので変にいじりたくなかった。

Last update: $Date: 1999/09/01 09:52:45 $