Magic Symlinks

あれ、NetBSDではシンボリックリンク先をアクセス時に決定する 機構があったのか。たしか昔NewsOSにはsymlinkの値に環境変数を設定すると その環境変数を展開してくれるというのがあって、あら便利と 思ったのだがSunOSの方にはないから使用を諦めていた。

そしたらなんとNetBSDにはあった。知らなかった。いつからだろう。sysctl変数 vfs.generic.magiclinks=1 にすると、 @domainname @hostname @emul @kernel_ident @machine @machine_arch @osrelease @ostype @uid @ruid というマジックリンクが使えるようになる。展開される値は 推して知るべし。いやいや symlink(7) 参照。

~/bin とかにコンパイル済みバイナリを置きたいとき、 実際の実行ファイルを ~/arch/i386 ~/arch/x86_64 とかに 置いといて、ln -s arch/@machine ~/bin とするとか、 /tmp をユーザごと別々に持たせるとかこれでできる。 ああ、せめてFreeBSDで使えてくれればわりと使いまくりだったかもしれんのだ が。

NetBSD5のうれしいところ

CHANGESを眺め中。おおお、

msdosfs高速化

msdosfs: Significantly improved writing speed (up to 16x
faster).
        [reinoud 20071228]

ついこないだ、なんかNetBSDでUSBメモリのアクセススピードが断トツ遅いと 気付いて、計ったらどうやらmsdosfsらしいとアタリがついて がっかりしていたところだった。ためしに書いてみたらむっちゃ速くなった。 けどumountできるまでは相応の時間がかかる。

msdosfs: Add large read / readahead support by Paul Ripke
        (introduce run-length detection to msdosfs_bmap(),
        from FreeBSD).  [christos 20080105]

こっちは読み出し速度に関係あるのかな。あう、X21はUSB1.1しかないから どの程度の高速化か分からんでござる。今度別のマシンで試そう。

httpd

んで、OS標準のhttpdがついたらしい。あこれ意外に重宝するかも。 出先でCGIのデバッグするときに「あの巨大なapacheを持って来るのかぁ」 とやる気なくしたことが多々あり。

/usr/libexec/httpd -b -C .rb /usr/local/ruby/bin/ruby \
-p http -u /usr/local/share/htdocs

おお、こんな感じでちゃんと起動した。SSIが使えないけどCGIは行ける。

ifconfig_xxN in rc.conf

rc.conf 内のifconfig用変数の値に改行が使える 用になったらしい。セミコロンもOK。