FreeBSD 5.3-RELEASE 初期利用者のための手引き FreeBSD リリースエンジニアリングチーム Copyright (c) 2002, 2003 by FreeBSD リリースエンジニアリングチーム $FreeBSD: src/release/doc/ja_JP.eucJP/early-adopter/article.sgml,v 1.11 2004/01/17 03:20:48 hrs Exp $ FreeBSD は Wind River Systems, Inc. の登録商標です。 これは近いうちに 変わる見込みです。 Intel, Celeron, EtherExpress, i386, i486, Itanium, Pentium および Xeon はアメリカ合衆国およびその他の国における Intel Corporation またはその 関連会社の商標または登録商標です。 Microsoft, FrontPage, MS-DOS, Outlook, Windows, Windows Media および Windows NT は アメリカ合衆国および/またはその他の国における Microsoft Corporation の登録商標または商標です。 Sparc, Sparc64, SPARCEngine および UltraSPARC はアメリカ合衆国およびそ の他の国における SPARC International, Inc. の商標です。SPARC の商標を つけた製品は Sun Microsystems, Inc. が開発したアーキテクチャに基づいて います。 製造者および販売者が製品を区別するのに 用いている表示の多くは、商標と されています。 この文書に登場する表示のうち FreeBSD Project がその商標 を確認しているものには、その表示に続いて ``(TM)'' または ``(R)'' 記号 がおかれています。 この記事では、FreeBSD 5.3-RELEASE の現状を 5.X 系列のリリースまたは FreeBSD 一般に不慣れな 利用者の立場から詳細に述べています。 リリースエ ンジニアリングの背景となる事情、 新機能のハイライト、初期利用者が直面 する可能性のある障害を記載しています。 また、4-STABLE 開発ブランチの将 来のリリース計画と 既存のシステムをアップグレードするためのヒントをい くつか紹介しています。 _________________________________________________________________ _________________________________________________________________ 1. はじめに FreeBSD 5.X は、2 年ぶりに公開される新しいメジャーバージョンです。 さ まざまな新機能に加えて、システムアーキテクチャレベルでの開発も 数多く 反映されています。ただしこの進歩は、まだ広く試験されていない 新しいコ ードが非常に多く導入された結果でもあります。 そのため、現在の 4.X リリ ースと比較すると、 初期の 5.X リリースは安定性や性能、 場合によっては 機能性などの点で劣っているかも知れません。 リリースエンジニアリングチーム はこのような理由から、 新しいリリースにおいて発生しうる問題を ユーザが自覚して (そして対処す る準備ができて) いない限り、 古い FreeBSD リリースを 5.3-RELEASE にア ップグレードするのを 明確に非推奨としています。 特に、今までどおりの動 作を期待する慎重なユーザには、しばらくの間は (4.9-RELEASE のような) 4.X リリースで運用することをおすすめします。 5.X へのアップグレードを 考える時期としては、 おそらく 5-STABLE 開発ブランチが作成された後が適 当でしょう。 これは 5.3-RELEASE の公開あたりになる見込みです。 (FreeBSD 5.X はいわゆる``卵鶏問題''を抱えています。 プロジェクトでは皆 が可能な限りリリースを 安定で信頼性の高いものにしようと考えているので すが、 その安定性と信頼性を得るには、広い範囲での試験、 特にシステムの 新しい機能に対する試験が必要です。 しかし、たくさんのユーザにシステム を試験してもらうためには、 実際のところ最初のリリースを作成し、 配布し なければならないのです!) この文書では、FreeBSD 5.3-RELEASE のインストールと運用における いくつ かの問題点について説明しています。 まず、FreeBSD のリリース工程の概要 について解説し、 次に FreeBSD 5.3-RELEASE の特筆すべき新機能のいくつか と、 不注意からユーザが陥りやすいと思われる問題について紹介します。 ま た、4-STABLE ベースのリリースを使い続けようと考えているユーザ向けに、 今後の 4-STABLE 開発ブランチにおける短期・中期的なプランについても触れ ます。 最後に、4.X システムを 5.3-RELEASE にアップグレードする際の注意 点を示します。 _________________________________________________________________ 2. FreeBSD リリース工程の概要 FreeBSD では、ソースコードリポジトリに複数の開発ブランチを置く という 開発モデルを採用しています。中心となるブランチは ``CURRENT'' と呼ばれ 、 CVS リポジトリでは HEAD というタグが付けられています。 新機能はまず 、このブランチにコミットされます。 つまり CURRENT には新機能が一番最初 に追加されますが、 その新機能の追加やデバッグが原因でシステムが壊れて しまうこともある、 ということです。 FreeBSD リリースの大部分は、いくつかある ``STABLE'' ブランチから作成さ れます。これらのブランチには、CURRENT である程度試験された機能だけが追 加されます。 現時点で活発に開発されている STABLE ブランチは 1 つだけで す。 そのブランチは ``4-STABLE'' と呼ばれており、 FreeBSD 4.X リリース はすべてこのブランチから作成されました。 このブランチは CVS リポジトリ で RELENG_4 というタグが付けられています。 FreeBSD 5.0 と 5.1, 5.2 は CURRENT ブランチをベースにしています。 最初 の 5.0 は CURRENT ブランチからの 2 年ぶりのリリースでした (前回の HEAD からのリリース FreeBSD 4.0 は 2000 年 3 月でした)。 FreeBSD 5.0 のリリース後、少し経過した時点で FreeBSD CVS リポジトリに RELENG_5 というタグが打たれ、 ``5-STABLE'' というブランチが作成される 予定です。 以前の 2 つの stable ブランチ (3-STABLE および 4-STABLE) は 、 それぞれの ``x.0'' リリースの直後 (それぞれ 3.0 と 4.0) に 作成され ていました。しかしこの方法では、 新しい STABLE ブランチが作成される前 に、 CURRENT ブランチが安定する 十分な時間が確保できないという問題があ ります。 そのためリリースエンジニアリングチームは、 各ブランチがそのブランチの 持つ性格に対して 比較的安定した状態になったことを確認してから、 CVS リ ポジトリに 5-STABLE ブランチを作成することを予定しています。 おそらく ブランチが作成されるまでに、5.X 系列からリリース版がいくつか公開される でしょう。 5-STABLE ブランチの登場は、5.3-RELEASEの前後 あたりになると 見込んでいます。 FreeBSD リリースエンジニアリング工程に関する詳細は、 リリースエンジニ アリングのウェブページ および、``FreeBSD リリースエンジニアリング'' と いう記事をご覧ください。 きたる 5-STABLE 開発ブランチについての特記事 項は ``5-STABL 開発ブランチのロードマップ'' という記事をご覧ください。 _________________________________________________________________ 3. 新機能 FreeBSD 5.X の大きな魅力の 1 つは、数多くの新機能です。 これらの新しい 機能は、FreeBSD 4-STABLE 開発ブランチには統合できなかった 大きなアーキ テクチャレベルの変更も当然ながら含まれています (一方で新しいデバイスド ライバやユーザランドユーティリティなど、 それ自身で完結している改良点 は、4-STABLE ブランチに移植されています)。 すべてを網羅したものではあ りませんが、簡単にまとめてみましょう。 * SMPng: ``次世代''に向けた SMP マシン対応です (開発中)。 現在進んで いる作業では、さまざまなカーネルサブシステムにおいて 細粒度 (fine-grained) SMP ロックをおこない、カーネル内で実行される スレッ ドの数を増やすことを目標としています。詳しくは FreeBSD SMP プロジ ェクト のページをご覧下さい。 * KSE: カーネルスケジュールエンティティ (Kernel Scheduled Entities; KSE) は、スケジューラアクティベーション (Scheduler Activations) の 手法と同様の、 1 個のプロセスが複数のカーネルレベルスレッドを 持て るようにするための機構です。この機構で pthread(3) API を使用して マルチスレッドのユーザランドプログラムを実現するために、 libkse と libthr のスレッドライブラリが提供されています。 * 新しいアーキテクチャ: i386, pc98, alpha アーキテクチャに加え、 新 たに sparc64, ia64, amd64 アーキテクチャに対応しました。 * GCC: コンパイラツールチェインが GCC 2.95.X ベースのものから、 GCC 3.3.X に更新されました。 * MAC: 高い拡張性を持ち動的にロード可能な、 強制アクセス制御 (Mandatory Access Control; MAC) ポリシに対応しました。 * GEOM: ディスク I/O 要求を変換する拡張性の高いフレームワークです。 GEOM をベースにした GBDE ディスク暗号化機能が実験的に開発されてい ます。 * FFS: FFS ファイルシステムが (クラッシュから高速に復帰する) バック グラウンド fsck(8) 処理 と ファイルシステムスナップショットに対応 しました。 * UFS2: UFS2 オンディスクフォーマットが新たに追加されました。 これは 、ファイル単位での拡張属性と巨大なファイルに対応しています。 また 、UFS2 は newfs(8) のデフォルトのフォーマットになりました。 pc98 を除くすべてのプラットフォームにおいて、 sysinstall(8) はデフォル トで UFS2 のファイルシステムを作成します。 * Cardbus: Cardbus デバイスに対応しました。 * Bluetooth: Bluetooth デバイスに対応しました。 さらに詳しい新機能のリストは、各 FreeBSD 5.X リリースのリリースノート に書かれています。 _________________________________________________________________ 4. 初期リリースを使う上での欠点 FreeBSD 5.X には説明したような新機能が追加されているのですが、 問題が あったり、意図どおりに動かないという部分もいくつか存在します。 これは ほとんどの場合、多くの機能がまだ開発中であることに起因したものです。 次に、問題のある部分のいくつかをまとめたリストを示します。 * たとえば、上の新機能リストにある SMPng や KSE など、 開発がまだ終 わっていない機能が多くあります。 これらの機能はテストと実験用途に は向いているものの、 製品品質には達していないかもしれません。 * カーネルのデータ構造体や ABI, API が変更されたため、 サードパーテ ィ製のデバイスドライバは、 FreeBSD 5.0 に対応させるための作業が必 要です。 また、5-STABLE ブランチが作成される前、特に新しい マシン アーキテクチャでは、 ABI, API に多少変更が加えられる可能性がありま す。 (なるべく変更しないようにしていますが)、 ユーザから見える構造 体が変更される場合があるかもしれません。 そうした場合にはアプリケ ーションを コンパイルし直したり ports/packages をインストールし直 す必要があります。 * FreeBSD ベースシステムに含まれていた機能のいくつかが、 Ports Collection に移動しました。 大きなものとしては、Perl、 UUCP、ゲー ムの大部分 (すべてではありません) が該当します。 プログラムはサポ ート対象になっていますが、 ベースシステムからなくなったことは混乱 を招くかも知れません。 * 利用者と保守担当者が不足しているため、 FreeBSD ベースシステムの一 部が破綻状態に陥りました。 これら (の使われないことの多い機能) は 現在削除されています。 特筆すべき事例に、a.out 形式の実行ファイル の生成、 XNS ネットワーキング対応、X-10 コントローラドライバが挙げ られます。 * FreeBSD 4.0 で正しく動作していた多くの ports/packages が、 FreeBSD 5.X では構築できなくなったり、 正しく動作しなくなったりしています 。 これはほとんどがコンパイラツールチェインの変更と、 ヘッダファイ ルの整頓が原因です。あるいは、カーネルやデバイスにおける 対応の変 更によるものもあるでしょう。 * FreeBSD 5.X の多くの新機能が、 一般向けに広く公開される初めての機 会になります。 カーネルは、(SMPng などの) このような新機能によって 、 大きく変更されています。これらの変更が安定性と性能に どう影響す るか正確に評価するのは難しいでしょう。 * FreeBSD 5.X の新機能に含まれる問題点を追跡するため、 デバッグや診 断用のコードがある程度残されています。 これにより FreeBSD 5.X は 、4-STABLE より動作が遅くなっているでしょう。 * 4-STABLE 開発ブランチへの機能統合は、 -CURRENT で``安定した''後に のみ、行なわれます。 FreeBSD 5.X は、このような -STABLE ブランチの 持つ安定性を持っていません (訳注: FreeBSD 5.0 への新機能追加は、「 安定した後に統合」という -STABLE ブランチの慣習に則っていないとい う意味です)。 (5-STABLE 開発ブランチは、5.3-RELEASE の後あたりに作 成される予定です)。 * FreeBSD ハンドブック と FAQ のような文書は FreeBSD 5.X までに加え られた最近の変更を反映していないかもしれません。 このようにシステムの安定性に影響する欠点が多くあることから、 5.X 系列 が十分に安定するまでの間、 リリースエンジニアリングチームは、 現在の機 能性・安定性を重要視するサイトやユーザに対して 4-STABLE ブランチから公 開されるリリース版を利用することを推奨しています。 当初存在した安定性 に関する問題点の多くは解決されたと考えていますが、 性能に関する問題点 のいくつかは、また対処中のものがあります。 製品や ``ミッションクリティ カルな'' システムをアップデート する前にテスト環境でオペレーティングシ ステムのアップデートを試すのが、 システム管理における最良のやり方であ ることも注意しておきます。 _________________________________________________________________ 5. 4-STABLE ブランチに対する今後の予定 重要: 5.X シリーズがリリースされても 4.X リリースのサポートはある期間 続けられます。 実際に、FreeBSD 4.8-RELEASE は 5.0-RELEASE の 2 ヵ月後 の 2003 年 4 月に公開され、続いて 4.9-RELEASE が 2003 年 10 月に公開さ れました。 4-STABLE ブランチからの将来のリリースが出るとしたら、 それ にはいくつかの要素が絡んできます。 最も重要なのは、5-STABLE ブランチの 作成と、その安定性です。 CURRENT が 5-STABLE ブランチを作成できるほど に安定していなかった場合、 リリースは 4-STABLE ブランチから作成するこ とになるでしょう。 また 4-STABLE には、4-STABLE ブランチからの最終リリ ースが 告知されるまで、開発者の判断とリリースエンジニアリングの ポリシ に基づいて HEAD から新機能が統合されます。 ある程度ですが、リリースエンジニアリングチームは 開発者コミュニティと 同様にプロジェクト全体として、 将来の 4-STABLE リリースに対するユーザ のニーズを考慮するつもりです。 ただしそのニーズは、リリースエンジニア リング作業に必要な労力・資源 (特に開発者の時間、計算機資源、ミラーアー カイブ容量) に見合ったものである必要があるでしょう。 一般に、FreeBSD コミュニティは (ユーザと開発者の双方とも) 5.X ブランチ以降の新機能にひ かれて先に進む傾向があるようです。 これは、新機能を 4.X に移植 (および 保守) することが難しいためです。 セキュリティオフィサチーム は FreeBSD ウェブサイトの セキュリティのページ で公開されているポリシに基づき、 4-STABLE ブランチから作成されるリリースのサポートを継続します。 セキュ リティ勧告とセキュリティ上の修正がサポートするのは、 通常、各ブランチ 毎に最も新しい 2 つのリリースです。 セキュリティオフィサチームは、 他 のリリース版もこのルールに則ったサポートを行ないます。 現在のところ、リリースエンジニアリングチームは 4-STABLE 開発ブランチの 将来について具体的な計画は持っていません。 このブランチからの今後のリ リースは (もしあるとしたら) 簡単な ``ポイント'' リリースになるでしょう 。 それらのリリースはおそらく、4.9-RELEASE と比べて機能面で 大きな変更 が含まれていないことを示す 4.9.X というバージョン番号になるでしょう。 これらのリリースでは基本的に、セキュリティ問題の修正やバグの修正、 デ バイスドライバの更新 (特に新しいハードウェアの対応が、 既に存在するデ バイスドライバで簡単に可能な場合) が 重視されます。主要な新機能 (特に 5.X で 追加された新しい機構が必要なもの) は、おそらく、 これらのリリー スには追加されません。 _________________________________________________________________ 6. FreeBSD 4.X からアップグレードする際の注意点 この節では現在 FreeBSD システムを利用している方向けに、 FreeBSD 4.X シ ステムを 5.X システムにアップグレードする際の 注意点について説明します 。 FreeBSD をアップグレードする場合は、アップグレードしたいバージョン の リリースノートと errata 文書を読むこと、また、 ソースからアップグレ ードする場合には src/UPDATING を読むことが重要です。 _________________________________________________________________ 6.1. バイナリアップグレード おそらく最も単純な方法は、 ``すべてをバックアップして、再フォーマット 、再インストールし、 最後にバックアップを展開''することでしょう。 この 方法は、互換性がなかったり、古くて使えない実行ファイルや 設定ファイル によって、新しいシステムが汚染される問題を回避することができます。 ま た、新規にファイルシステムを作成することによって、 デフォルトフォーマ ットである UFS2 の新機能の恩恵を受けることができます。 現時点の sysinstall(8) のバイナリアップグレード機能は、 メジャーバージ ョンをまたぐアップグレードに対して 十分に試験されていません。 そのため 、この機能を使うことはおすすめできません。 特に、バイナリアップグレー ドは FreeBSD 4.X に存在して FreeBSD 5.X に存在しないファイルをシステム に数多く残します。 これらの古いファイルは何らかの問題を引き起こす可能 性があります。 例えば、古い C++ ヘッダ、 Ports コレクションへ移動した プログラム、ダイナミックリンクされた root ファイルシステムの 実行ファ イルをサポートするために移動した共有ライブラリが 挙げられます。 i386(TM) および pc98 プラットフォームの 4-STABLE では、 インストールメ ディアからの起動の際、 ISA デバイスの設定を起動時に変更できる UserConfig ユーティリティが利用できるようになっています。 FreeBSD 5.X では、この機能の一部が device.hints(5) 機構に 置き換えられました(同じ パラメータを指定できますが、 対話的なものではなくなっています)。 フロッピを使ったバイナリインストールには、 デバイスドライバのカーネル モジュールを含んだ 新しい 3 枚目のフロッピイメージが必要です。 この drivers.flp フロッピイメージは通常、 従来からある kern.flp や mfsroot.flp のフロッピイメージが置かれている場所と同じところに置かれて います。 i386 アーキテクチャにおける CDROM を使ったインストールでは、 ``非エミ ュレーション型''の起動ローダを使用するようになっています。 この利点は いろいろとありますが、フロッピイメージ用に切り詰めた カーネルではなく 、通常の GENERIC カーネルが 使用できるという点があげられるでしょう。 理論的には、Microsoft(R) Windows NT(R) 4 インストール CDROM が起動でき るシステムなら、FreeBSD 5.X CDROM も動作するはずです。 _________________________________________________________________ 6.2. ソースを使ったアップグレード 何はともあれ、src/UPDATING を読むことが非常に大切です。 ``To upgrade from 4.x-stable to current'' という節には、アップグレード手順がステッ プバイステップで書かれています。 説明されているとおり、正確に従ってく ださい。 たまにやる人がいるのですが、 手順を``飛ばしたり''してはいけま せん。 _________________________________________________________________ 6.3. 共通の注意点 Perl がベースシステムから削除されています。 すでに作成ずみの package から、もしくは Ports Collection から Perl をインストールしなければなり ません。 以前は Perl をベースシステムの一部として構築していたため、 Perl のアップグレードが難しく、多くの問題を引き起こしていました。 ベー スシステムのユーティリティで Perl を使うものは、 まだ使われているもの は Perl を使わないものに書き換えられ、 使わなくなったものは削除されて います。 sysinstall(8) は、大部分の配布物のインストール時に、 その配布 物の一部として Perl の package もインストールするようになっていますの で、 この変更に気づくユーザはごく一部でしょう。 基本的に、従来の 4.X で使っていた実行ファイルは 5.X でも動作します。 ただし、これには compat4x 配布物がインストールされていることが必要です 。 古い ports をそのまま使うことができる場合もありますが、 後方互換性 がない例も数多く判明しています。たとえば devel/gnomevfs2, mail/postfix , security/cfs の各 port は statfs 構造体の変更のため、コンパイルし直 す必要があります。 既存の 4-STABLE ベースのシステムに上書きする形でインストールや アップ グレードを行なった場合は、 /usr/include にある古いヘッダファイルを削除 することが非常に重要です。 バイナリインストールや installworld の前に 、 このディレクトリをリネームしておくと良いでしょう。 こうしないと、( 特に C++ プログラムで) コンパイラが古いヘッダと 新しいヘッダを混ぜて使 用してしまい、おかしな結果になる可能性があります。 MAKEDEV がもはや提供されなくなり、 また必要なくなりました。 FreeBSD 5.X は、必要に応じてデバイスノードを自動的に作成する デバイスファイル システムを利用しています。 詳細は devfs(5) をご覧ください。 UFS2 が newfs(8) を利用して作成するファイルシステムの デフォルトのディ スクフォーマットになりました。 また、pc98 を除くすべてのプラットフォー ムにおいて、 sysinstall(8) がディスクラベル作成画面で作成する デフォル トのファイルシステムになりました。 FreeBSD 4.X は UFS1 のみを認識する (UFS2 は認識しません) ので、 5.X と 4.X の両方がアクセスする必要のある ディスクパーティションは UFS1 で作成しなければならないことに注意してく ださい。 これは newfs(8) の -O1 オプションを利用するか sysinstall(8) のディスクラベル作成画面で指示することで 指定することができます。 この ような状況は、単一のマシンで FreeBSD 5.X と FreeBSD 4.X の双方を起動す るシステムでしばしば発生します。 ディスクフォーマット間のファイルシス テムを変換する方法は (バックアップして、ファイルシステムを再度作成し、 バックアップを展開する以外に) 存在しないことに注意してください。 _________________________________________________________________ 7. まとめ FreeBSD 5.3-RELEASE には魅力的な機能がたくさん含まれています。 しかし 現時点では、それがすべての皆さんの期待に応えられるものではないかも知れ ません。 この文書では、リリースエンジニアリングの背景と 5.X 系列の特筆 すべき新機能の一部について、 初期リリースを使う上でのいくつかの欠点に ついてとりあげました。 また、将来の 4-STABLE 開発ブランチの計画と、 初 期リリースを利用する人向けのアップグレードのヒントも説明しています。 _________________________________________________________________ このファイルの他、リリース関連の文書は ftp://ftp.FreeBSD.org/ からダウ ンロードできます。 FreeBSD に関するお問い合わせは、 へ質問を投稿す る前に解説文書をお読みください。 この文書の原文に関するお問い合わせは まで、 日本語訳に関するお問い合わせは、 まで電子メール でお願いします。