2008年2月27日、待望のFreeBSD 7.0-RELEASE が発表された。1993年11月に遡る1.0-RELEASEの公開から14年と4ヵ月、前回の6.0-RELEASEから数えて2年4ヵ月、通算6回目になるメジャーバージョンアップとなる。ワイヤレス機能の強化、ARM、UltraSparc T1アーキテクチャへの対応などに加え、目新しい成果としてはマルチプロセッサ対応プロジェクト「SMPng (S ymmetrical M ulti P rocessor n ext g eneration) 」の開発がほぼ完成したこと、OpenSolaris(Sun Microsystems)のファイルシステムZFS が移植されたことなどが見どころとなる。
本特集では5回に渡って、7.0のインストールやアップグレード、目玉となる新機能を紹介していく予定である。今回は初回よろしくFreeBSDリリースの歴史をひもとき、「7.0のインストールしどき」 を探ることにしよう。
リリースエンジニアリング
まず、「 リリース」が出るまでの仕組をおさらいしておこう。
FreeBSDの開発は、新規機能を貪欲に取り込むCURRENTブランチでまず行われ、メジャーリリースを出す数ヵ月前に、新機能の開発主体から外し安定化を主目的とする「STABLEブランチ」に移行する。さらにリリース用のブランチが分かれ(RELENG_7の場合は2007年10月11日) 、数回のベータ版、RC(Release Candidate, リリース予備版)の発表、ならびにテストを経てRELEASE版が生成される。STABLE系列になってもしばらく(少なくとも-CURRENTの直下の番号である間)は、CURRENTでテストされた新機能が導入される。これを「Merge From Current: MFC」という。7.0-CURRENTの時代にテストされた新機能のうち、かなりの数が6系列でも利用できるのは、この理由によっている。
リリース樹形図
公開のおしらせメールをもってリリースの誕生日だとして、FTPサイトならびに昔のFreeBSDを保存してある「ftp-archive.freebsd.org」に残っているFreeBSDの樹形図を作ると、図1 のようになる。この図はいろいろな方面から読んで楽しむことができる。まず注目したいのはリリースの間隔で、
2.0 →(3年9ヵ月)→3.0 →(1年5ヵ月)→
4.0 →(2年10ヵ月)→5.0 →(2年10ヵ月)→
6.0 →(2年4ヵ月)→7.0
のように、だいたい2年半~3年弱に1回のペースで、メジャーなリリース版が出ているとわかる。
図1 FreeBSDの「誕生日リスト」 。点線はftp-archive.freebsd.orgに残っていない版。
リリースの寿命
「誕生」したからにはリリースには「寿命」があるとして、どのくらいの長さなのだろうか? X.0-RELEASEが出てから、「 これで最後のリリース」と宣言されるまでに出されたリリースのうち、ftp-archive.FreeBSD.orgに残っているリリースの数と、メンテナンス終了時期(予定も含む)をまとめると表1 のようになる。
表1 リリースの寿命
系列
最終版
リリースの数
最終リリース
メンテナンス終了
2
2.9
10リリース
11年4ヵ月
3
3.5.1
7リリース
1年8ヵ月
4
4.11
14リリース
4年11ヵ月
5
5.5
7リリース
3年4ヵ月
5年4ヵ月(予定)
6
6.3
4リリース
2年3ヵ月
5年4ヵ月(予定)
2006年4月1日にアナウンスされた2.2.9-RELEASEを擁するFreeBSD 2系列 が断然トップの長寿を誇る。筆者もdevelopers@に転送されてきた広報メールを見て最初「エイプリルフールか?」と思ったくらいで、息の長いメンテナンス努力に脱帽である。対照的に、3系列 は1998年に登場して2000年に最後のリリースが出ており、比較的短命の(20世紀の壁を超えられなかった)リリースであった。やはり著作権問題を取り除いた「4.4BSD-lite」ベースを謳い颯爽と登場した(とUNIX素人の私なんかも思ったものだった)嚆矢の系列であったことへのこだわりが、2系の長寿の遠因だろうかと考えたくなる。
FreeBSD 2系列といえば、当時のPC UNIXファンに少なからぬ影響を与えた『FreeBSD 徹底入門 第一版』( 翔泳社)も2.2.1-RELEASEをベースとしていたことも、併せて思い出される。
実は長寿リリースになるかどうかは、OSとしての完成度(パフォーマンス)と、新機能取り込みとのバランスで決まっている。FreeBSD2が出た後、3-CURRENTブランチで多くの新機能が試行錯誤された結果、いつまでたっても新バージョンが出ないことに業を煮やし、「 出してしまって後で直そう」というポリシーで3を出してしまったおかげで、3.2に至るまでOSとしての完成度が2系列よりも下がったということがあり、結果として2.2.8-RELEASEが商用目的にも耐える品質のOSとして長寿を保ったのである。
4から5系列に至る過程においても同様に、SMPngやUFS snapshot、バックグラウンドfsckなどの新機能が、完成度はともかく導入されたが、課題と開発の方向「ロードマップ」を明らかにした上で開発が行われたため、3系列で起こったような失敗は繰り返されていない。したがって、3系列の混乱が終わった後、4系列の時代がしばらく続き、その後は3年間程度間隔でリリースが公開されている。
X.0-RELEASEからX.1-RELEASEまでの期間
ユーザにとっての興味は、「 メジャーリリースはめでたくていいけど、安定して使えるんだろうか?」という問題であろう。FreeBSDの開発方針は「デフォルトは安全側」すなわち、実装で迷ったら安全な方を選択するというポリシーであるから、どの版でも安全ですよというのが大原則である。
とはいうものの、いざリリースしてみると思わぬところに不具合があったりするもので、「 メジャーリリースの直後のマイナーリリース(俗にX.1-R) 」を狙いたいと思うのが人情であろう(余談ながら、同じ理由でWindows Vistaに乗り換えられない人は筆者だけではないと想像する) 。そこで、X.0-Rが出てから直後のマイナーリリースが出るまでの間隔まとめると、表2 となる。
表2 メジャーリリース後に最初のマイナーリリースが出るまでの期間
系列
期間
2
7ヵ月
3
4ヵ月
4
4ヵ月
5
5ヵ月
6
6ヵ月
FreeBSD 3系列から数えると、次第にリリースまでの間隔が長くなってきていることに注目したい。この原因は、前述したようなロードマップの存在や、Developpers Summitなどで開発者間の情報交換が密になり開発の方向がクリアになっていることに因っているのであろう。エンジニアリングの腕が全体として高まっていることが見てとれる。
大胆予測 FreeBSD 7.0は「買い」か?
FreeBSDは、Linuxとは違い、バージョン番号の偶数奇数で安定、不安定を区別するポリシーではない。一方、前回のリリースからの間隔が短かかったので、長寿を期待できる(といっても最近は5年5ヵ月くらいがメンテナンスの一応の目安なのだが) 。さらに、最近のリリースエンジニアリングの腕が上がってきたので、X.0 でも少なくとも半年は楽しめると思われる。万が一、昔の3系列のようにマイナーバージョンアップが繰り返されたとしても、次回紹介する「freebsd-update」という仕組みにより、簡単にリリースを渡り歩けるようになったので安心である。
これらを総合すると、インストール、または、アップグレードするなら「今、すぐに、この場で」行なうことがお勧めだろう。新学期・新年度にあわせてOSも新調してみる、よい機会といえるだろう。筆者も早速、CPU、マザーボードとハードディスクを新調して試してみることにした(次回へ続く) 。