FreeBSD 5.4-RELEASE 初期利用者のための手引き FreeBSD リリースエンジニアリングチーム Copyright (c) 2002, 2003 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.4-RELEASE の現状を 5.X 系列のリリース または FreeBSD 一般に不慣れな 利用者の立場から詳細に述べていま す。 リリースエンジニアリングの背景となる事情、 新機能のハイラ イト、初期利用者が直面する可能性のある障害を記載しています。 また、4-STABLE 開発ブランチの将来のリリース計画と 既存のシステ ムをアップグレードするためのヒントをいくつか紹介しています。 _________________________________________________________ 1. はじめに FreeBSD 5.X は、2 年ぶりに公開される新しいメジャーバージョンで す。 さまざまな新機能に加えて、システムアーキテクチャレベルで の開発も 数多く反映されています。ただしこの進歩は、まだ広く試 験されていない 新しいコードが非常に多く導入された結果でもあり ます。 そのため、現在の 4.X リリースと比較すると、 初期の 5.X リリースは安定性や性能、 場合によっては機能性などの点で劣って いるかも知れません。 リリースエンジニアリングチーム はこのような理 由から、新しいリリースにおいて発生しうる問題を ユーザが自覚し て (そして対処する準備ができて) いない限り、 古い FreeBSD リリ ースを 5.4-RELEASE にアップグレードするのを 明確に非推奨として います。 特に、今までどおりの動作を期待する慎重なユーザには、 しばらくの間は (4.9-RELEASE のような) 4.X リリースで運用するこ とをおすすめします。 5.X へのアップグレードを考える時期として は、 おそらく 5-STABLE 開発ブランチが作成された後が適当でしょ う。 これは 5.3-RELEASE の公開あたりになる見込みです。 (FreeBSD 5.X はいわゆる``卵鶏問題''を抱えています。 プロジェク トでは皆が可能な限りリリースを 安定で信頼性の高いものにしよう と考えているのですが、 その安定性と信頼性を得るには、広い範囲 での試験、 特にシステムの新しい機能に対する試験が必要です。 し かし、たくさんのユーザにシステムを試験してもらうためには、 実 際のところ最初のリリースを作成し、 配布しなければならないので す!) この文書では、FreeBSD 5.4-RELEASE のインストールと運用における いくつかの問題点について説明しています。 まず、FreeBSD のリリ ース工程の概要について解説し、 次に FreeBSD 5.4-RELEASE の特筆 すべき新機能のいくつかと、 不注意からユーザが陥りやすいと思わ れる問題について紹介します。 また、4-STABLE ベースのリリースを 使い続けようと考えているユーザ向けに、 今後の 4-STABLE 開発ブ ランチにおける短期・中期的なプランについても触れます。 最後に 、4.X システムを 5.4-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.4-RELEASE には魅力的な機能がたくさん含まれています。 しかし現時点では、それがすべての皆さんの期待に応えられるもので はないかも知れません。 この文書では、リリースエンジニアリング の背景と 5.X 系列の特筆すべき新機能の一部について、 初期リリー スを使う上でのいくつかの欠点についてとりあげました。 また、将 来の 4-STABLE 開発ブランチの計画と、 初期リリースを利用する人 向けのアップグレードのヒントも説明しています。 _________________________________________________________ このファイルの他、リリース関連の文書は ftp://ftp.FreeBSD.org/ からダウンロードできます。 FreeBSD に関するお問い合わせは、 へ質問 を投稿する前に解説文書をお読みください。 FreeBSD 5-STABLE をお使いの方は、ぜひ メ ーリングリストに参加ください。 この文書の原文に関するお問い合わせは まで、 日本語訳に関するお問い合わせは、 まで電 子メールでお願いします。