back

DragonFly BSD 1st impression

2004年 7月 11日、あるひとつの BSD が 1.0-RELEASE を迎えた。FreeBSD, NetBSD, OpenBSD、そして BSDI BSD/OS。今までは 4つの *BSD があったということになるが、これからは今回取り上げる OS もそのひとつとして数え上げられることになるだろう。*BSD はそれがさも当然のことであるかのように fork し続け、我々は新しい選択肢を得る。このことは、開発力の分散という点でまれに非難されることがあるが、開発者自身のことを第一に考えるのならば悪くはない方法だ。実装したいものを実装したいように実装する。それが、_*BSD である_ということの証明なのかもしれない。

FreeBSD は素晴らしい性能を、NetBSD は美しい設計を、OpenBSD は卓越したセキュリティを、BSD/OS は商用ならではの安定性と機能性を、ある時は協力し合い、またある時は罵り合い、それぞれ追求してきた。 Linux の登場で幾分日陰者の存在となり、幾分開発スピードも遅くなったものの、現在でもそれぞれの目標に向かって開発が進められている。

しかしそんな中、それじゃダメなんだと、俺ならもっと上手くできると、そう思った開発者がいた。その開発者は FreeBSD から fork したプロジェクトをはじめ、自分が思い描くコードを書きはじめた。そのプロジェクトに興味を持った何人かの *BSD Developer が、その後を追った。ある者は気分転換のため、ある者はより活発なプロジェクトで仕事をするため、そしてまたある者は自分の力を存分に発揮できる場所を求めて。

目指すものは、INNOVATION 。その BSD の名は、DragonFly

Upgrade From FreeBSD 4-Stable

DragonFly は FreeBSD 4.x から fork したプロジェクトなので、FreeBSD 4.x から FreeBSD ユーザにはお馴染みの方法でインストールすることができる。インストーラ付きの iso-image も用意されてはいるが、私は FreeBSD 4.x のユーザだったので、この方法で DragonFly をインストールした。具体的な手順としては、DragonFly の src/UPDATING に書いてある通りだ。私は下記の通りの手順で Upgrade を行った。

FreeBSD 4.x の /etc/make.conf や /src/sys/i386/conf/XXXX で更新することが可能ではあるが*1、 cvsup が終った後で両者を DragonFly のものと比較しておくことを勧める。

  1. cvsup -g -L 2 stable.supfile
  2. cd /home/df/src
  3. make buildworld
  4. make buildkernel
  5. make installkernel
  6. make installworld
  7. make upgrade
  8. sync && sync && sync && shutdown -r now

ソースのダウンロードには allbsd.org を利用した。

上記の手順の中で、make upgrade のみが FreeBSD ユーザに馴染みの無いターゲットであると思うが、これは src/Makefile を見ても分かる通り、/etc を更新するターゲットである。FreeBSD の mergemaster のような繊細さはないが、現状の DragonFly では必要十分だということなのだろう*2

問題点

何事もなければ DragonFly の boot message が表示され、システムが立ち上がるはずだ。私の場合、システム自体は問題なく立ち上がったものの、幾つか少々気になる点があった。

wmmemload は正直立ち上がらなくても全然困らないのだが、vje が動かなかったというのは少々残念だ。ただ、vje 自体は 4年も前の製品であるわけだし、ある意味では仕方の無いことなのかも知れない。また、時計の問題に関しては現在調査中だ*3

変更点

カーネル開発者ではない私が見て、FreeBSD 4.x から変わったと思える点を下記に示す。

rcNG

FreeBSD 5.xNetBSD で採用された rcNG が採用されている。個人個人の好き嫌いはあるにせよ、これは *BSD の正常進化形ということになっているようだ*4

dfports

cvsweb から見ても分かる通り、現在の dfports は構想段階の域を出ていない。徐々に整備されていくのを待っている状態だ。今後に期待したい。

$ ps ax | grep \(*\) | grep -v grep | grep -v bash

ps の結果はリンク先のファイルの通りだ。先にも書いたが、私はカーネル開発者ではない。よって、結果を書き写すのみで特にコメントはしない(できない)。

総評

正直に書けば、今の DragonFly はある種の好奇心を持った人以外はインストールすべきではない。特に FreeBSD 4.x を自分のシステムとして運用している人は(FreeBSD 5.x に移行しないという意味でも)どちらかと言えば安定重視の人だろうし、今の DragonFly はそこそこ安定しているにせよ安定性や統一性という観点で見れば FreeBSD 4.x よりも優れているとは言いがたい。 FreeBSD 5-Stable が 3ヵ月後に控えている今となっては、DragonFly の印象も薄くなってきているだろう。

しかしながら、DragonFly はまだ 2年目に突入したばかりのプロジェクトだ。いくらでも変わりようはある。私は、DragonFly にある種の可能性を見出すことができた。あなたにもそれが見えるだろうか。もし見えるのであれば、それが DragonFly をインストールする確かな理由になるだろう。

あとがき

いや、もうぐだぐだですね。技術的な事が読みたい人は本家へ行ってくださいということで。のっけから Project X 風のデッドコピーになっているのはご愛敬、字をタイプするごとに抽象的な話になってしまうこの指を呪いたいくらいです。 orz

というわけで、とりあえず今まで取り組んできた翻訳等のまとめ的なものとして、この文書を書きました。翻訳の方も全然進んでませんし、 *BSD (に限らずどの OS でも)はインストールなんて前座みたいなものですので、終りではないんですが。はじまりの終りというか、そんな感じです。

こんな文章じゃダメだ。そう思った方もいるでしょう。正直、私自身がそう思っていたりします。ですので、そう思った方は是非次にこう思って頂きたい。"それじゃダメなんだ。俺なら、もっと上手くできる"。皮肉ではなくて、本当に期待しています。

更新履歴

  1. 1, 実際に私はこの 2つのファイルに関しては特にいじっていない

  2. 2, ちなみに、FreeBSD の mergemaster も /usr/sbin に用意されている

  3. 3, acpi まわりがあやしいと思い、disable にしてみたが解決はしなかった。clock まわりは DragonFly になってから相当手を入れているようなので、そこが原因なのかも知れない

  4. 4, OpenBSD では採用されていない