FreeBSD 5.3 「安定」するも、実用には未だ難

FreeBSD-5の登場以来、FreeBSD派の人たちは、この新しいコードベースが安定する日を待ち焦がれていた。4つの版がリリースされ、多くの開発が行われた。そして、ついに、FreeBSD-5はバージョン5.3で安定の域に達した。しかし、コードベースの安定とソフトウェアの安定とを混同してはならない。基本的な部分については今後大きな変更はないだろう。しかし、FreeBSD 5.3は、今もバグや問題点を抱えているのだ。

FreeBSDはUnix系の完全なオペレーティング・システムであり、多くのプログラマが参加する1つのグループによって、そのすべてが開発されている。この点で、GNU/LinuxやプロプライエタリUnixとは一線を画す。完全なオペレーティング・システムとしてのGNU/Linuxには中核となるまとまった開発者グループはなく、多くのプロジェクトや企業がそれぞれの方法でパッケージ化し配布している。また、プロプライエタリUnixではソースは非公開、ライセンスも制限的で、比較的少数の、通常はプロプライエタリなハードウェア・アーキテクチャ上でのみ動作する。FreeBSDは、従来、品質・速度・信頼性・拡張性に定評があり、使いやすく、理解もしやすい。設定も容易で、コマンドラインからの操作も簡単だ。Portsシステムには10,000本以上のソフトウェアがあり、動作するハードウェアも多様、デスクトップでもサーバでも容易に使うことができる。

FreeBSD-5の現状と移行

FreeBSD 5.3がリリースされるまで、最新の「正式リリース(production release)」はFreeBSD-4シリーズだった。5.xシリーズが安定に向かうとともにFreeBSD-4のリリースは「遺産(Legacy)」になると思われてきたが、最新バージョンは4.10にまでなっている。FreeBSD-5では新しい技術が大胆に採用される――実績ある4.xシリーズを大きく改善する――はずだった。ところが、計画が始まると、すぐに足を掬われてしまった。開発者間の軋轢、そして野心的すぎて実装に失敗するなど、設計上の問題点が噴き出したのである。その結果、FreeBSD-4プロジェクトを継続し予定以上に多くの開発者を割り当てなければならなくなった。

ULE(これは英文名称の頭文字を取ったものではない。フルスペルはSCHED_ULEで、従来のSCHED_4BSDと対照的な命名になっている)スケジューラは、安定性とパフォーマンスに関する問題を解消できず、5.3の標準プロセス・スケジューラになるはずが、まったく役に立っていない。スレッド・サブシステム群の効率と安定性にも問題が残る。ネットワーク・サブシステムはマルチスレッド化されたため、SMPシステム上では高速になった。しかし、3Com(SysKonnect/Yukon)のギガビットLANチップを採用している場合、ドライバにバグがあるためにネットワークにまったくアクセスできないことがある。さらに、SysKonnect/Yukonを利用している場合は、ネットワーク負荷の高い状況下で問題が発生することがあり、Intel Pro/1000チップを使っている場合も同様だ。運の悪いことに、筆者のテスト・システムのオンボードLANには、すべて、該当するネットワークチップが使われていた。しかも、それは、最近の大手メーカー製マザーボードで使われている人気の高いギガビットLANチップセット2種なのだ。さらに、筆者のテストでは、ハイパースレッド・コンピュータ上のSMPを有効にしてコンパイルしないと、起動の途中で停止してしまうことも判明した。既知の問題には、こうした問題点が列挙されているので参照されたい。

こうした多くの重大な問題が含まれていることを考えれば、4.xや以前の5.xで運用されているサーバを5.3に移行するようすべてのユーザに推奨するのは適切でないように思われる。ともあれ、FreeBSDプロジェクトが用意している移行の手引きを見ていただきたい。

先陣から脱落したFreeBSD 5.x

FreeBSD 5.xは完全64ビットAMD64オペレーティング・システムでは機先を制した。しかし、今では後塵を拝しており、速度完全性の点でさらに遅れているのはWindows XP 64ビットだけだ。SUSEとRed HatとGentooの64ビットGNU/Linuxは、いずれも完成の域に達している(Debianも間近だ)。しかし、FreeBSD 5.3には、完全32ビットFreeBSDバイナリ互換性や64ビットLinuxバイナリ互換性など、長く待たれている機能が搭載されていない。Linux 32ビット互換性についても、非公式無保証の対策があるのは従来通りだが、基本的には非互換だ。さらに、システムメモリが4GB以上のシステムには重篤な信頼性の問題があり、AMD64アーキテクチャはこの制限に抵触しうる。また、筆者はAsus K8V Deluxe AMD64ワークステーション上でAMD64版FreeBSD 5.2.1を数か月間使ってきたが、このマシンでは5.3リリースが使えないことも判明した。このテストマシンでは、すでに触れたオンボード・ネットワーク・アダプタに関するドライバの問題のためにi386版もまともに使えず、5.2.1-RELEASEに戻すしかない。

5.2.1からの改善点

ここまでFreeBSD 5.3の抱える問題点を挙げてきたが、前版から大きく改善された個所も数点ある。

  • Windows NDISバイナリ・ドライバがカーネル・レベルでサポートされた。これにより、無線NICの互換性が改善される。
  • GCCが3.4.2になった。Binutilsは2.15に、GDBは6.1に、X.orgは6.7に、GNOMEは2.6.2に、KDEは3.3.0になった。
  • 前版のリリース以降に発見されたバグとセキュリティの改修が施されている。

二流品のリリース

FreeBSDチームは、5-STABLEの目標の一部は達成したようだ。しかし、その一方で致命的なバグを数多く抱え込むことになった。FreeBSDは、これまで可用性・信頼性・拡張性の高いオペレーティング・システムだった。しかし、最近の3つのリリースは水準以下で、次第にレベルを下げ、ついには筆者のテスト・マシンではほとんど使い物にならないオペレーティング・システムをリリースするに至った。FreeBSD開発チームは伝統的に上質のコードを書き、品質の高いオペレーティング・システムを作ってきた。しかし、FreeBSD 5.3-RELEASEは、この評価を裏切っている。

プロジェクトリーダーのScott Longは、とりわけバグ潰しとテストに努めたとリリースの発表の中で述べているが、筆者のシステムで発見した諸々の問題を考慮すれば(しかも、そうした重大な問題点の一つは、リリース候補版のテストの際に発見しメーリングリストに報告してあったものだ)、Longの主張は甘すぎるという他はない。FreeBSDチームには、政策的技術的に適切に行動し、オペレーティング・システムの設計と開発における名声を取り戻すよう望みたい。

ソフトウェアの種類 オペレーティング・システム
製作者 FreeBSDプロジェクト
対応アーキテクチャ i386、IA64、Alpha、PC98、SPARC、AMD64
ライセンス BSD
対象システム Webサーバまたはメール・サーバ。その他、デスクトップやワークステーションのオペレーティング・システムとして
価格(小売り) 無償ダウンロード。サポートを必要とする場合は、CDセットを購入
前版 5.2.1
製品のWebサイト ここを見よ

Jem Matzan 3冊の著作がある他、The Jem Reportのチーフ・エディタ。OSTGの寄稿編集者でもある。

原文