FreeBSD/pc98 5.1-RELEASE リリースノート FreeBSD プロジェクト Copyright (c) 2000, 2001, 2002, 2003 by FreeBSD ドキュメンテーション プロジェクト $FreeBSD: src/release/doc/ja_JP.eucJP/relnotes/common/new.sgml,v 1.86 2003/05/29 00:10:11 rushani Exp $ この FreeBSD 5.1-RELEASE 用リリースノートには、 5-CURRENT 開発ブランチ の FreeBSD ベースシステムに対する最近の 変更点の概要が含まれています。 FreeBSD カーネルおよびユーザーランドにおける変更点、 前のリリース以降 に発行されたセキュリティ勧告が書かれています。 また、アップグレードの 際の注意点も載せてあります。 _________________________________________________________________ Table of Contents 1. はじめに 2. 更新情報 2.1. セキュリティ勧告 2.2. カーネルの変更点 2.2.1. プロセッサ・マザーボードの対応状況 2.2.2. ブートローダの変更 2.2.3. ネットワークインターフェイスの対応状況 2.2.4. ネットワークプロトコル 2.2.5. ディスク・記憶装置 2.2.6. ファイルシステム 2.2.7. PCCARD 対応 2.2.8. マルチメディアへの対応状況 2.3. ユーザランドの変更点 2.4. 寄贈ソフトウェア 2.5. Ports/Packages Collection インフラストラクチャ 2.6. リリースエンジニアリングと統合 2.7. ドキュメンテーション 3. 前のリリースの FreeBSD からのアップグレード _________________________________________________________________ 1. はじめに この文書は NEC PC-98x1 ハードウェアプラットフォーム用 FreeBSD 5.1-RELEASE のリリースノートです。 これは FreeBSD に最近追加、変更、削 除された機能について解説したものであり、 FreeBSD の前のバージョンから のアップグレードについても言及しています。 この FreeBSD 5.1-RELEASE 配布物は release 配布物です。 この配布物はあ らゆるミラーの ftp://ftp.FreeBSD.org/ で見つけることができます。 この (もしくは他の) FreeBSD の release 配布物を取得する方法 は FreeBSD ハン ドブック の 付録 ``FreeBSD を取得する'' を参照してください。 FreeBSD release の 5-CURRENT 系列をはじめて利用するユーザは、まず ``FreeBSD 5.1-RELEASE 初期利用者の手引き'' をご覧ください。 この文書は (FreeBSD 配布ファイルの一部として、 もしくは FreeBSD ウェブサイト上の) リリースノートと同じ場所に置かれており、 FreeBSD 4-STABLE 開発ブランチ をベースにしたリリースと比較して、 FreeBSD 5.1-RELEASE を利用する際の 利点と欠点について重要な情報が書かれています。 FreeBSD をインストールする前に、必ずそのリリースの errata 文書をお読み ください。 errata 文書には、リリース工程の最後やリリース後に判明した ``最新の'' 情報が書かれています。 通常これに含まれているのは、既知のバ グ、セキュリティ勧告、 文書の訂正です。FreeBSD 5.1-RELEASE の最新版 errata 文書は、FreeBSD ウェブサイトから入手できます。 _________________________________________________________________ 2. 更新情報 この節では 5.0-RELEASE 以降に新たに追加・変更された ユーザに影響する機 能について説明します。 これには他のブランチ (FreeBSD 5.0-RELEASE 以降) へと 最近マージされた機能に加えて、5-CURRENT ブランチ に固有の項目も含 まれます。 リリースノートには、 5.0-RELEASE 以降に出されたセキュリティ勧告、 新し いドライバやハードウェア対応、 新しいコマンドやオプション、重要なバグ フィックスや寄贈ソフトウェア のアップグレード、 ports/packages やリリ ースエンジニアリング工程に関する大きな変更点が 書かれています。リリー スノートには、リリース間に加えられた FreeBSD の全変更点が書かれている わけではありません。 記載されている情報は、セキュリティ勧告、ユーザに 影響のある変更、 既存の構造に対する大きな改良点が中心としたものです。 FreeBSD に加えられた変更点のうち、 スペースの都合上ここに書かれていな いものも多数存在します。 それらはたとえば文書の修正や改良、ごく影響の 小さいバグの修正、 監査で見つかったセキュリティ上好ましくないスタイル で書かれたコードの修正、 ソースコードの整理などです。 _________________________________________________________________ 2.1. セキュリティ勧告 バージョン 1.11.5 の統合により、CVS にあったリモートから悪用可能なセキ ュリティ上の弱点が修正されました。 問題の詳細は、セキュリティ勧告 FreeBSD-SA-03:01 をご覧ください。 [MFC 済] OpenSSL がバージョン 0.9.7 にアップグレードされました。これには、 攻撃 者がある条件下で平文にアクセスできる、 OpenSSL へのタイミングベース攻 撃への対策が含まれています。 問題の詳細は、セキュリティ勧告 FreeBSD-SA-03:02 をご覧ください。 [MFC 済] 攻撃者からの詐称された TCP 接続を防止できるよう、 ``syncookies'' 機能 のセキュリティと性能が改良されました。 問題の詳細は、セキュリティ勧告 FreeBSD-SA-03:03 をご覧ください。 [MFC 済] sendmail にあった リモートから悪用可能なバッファオーバフロー問題が修正 されました。 問題の詳細は、セキュリティ勧告 FreeBSD-SA-03:04 および FreeBSD-SA-03:07 をご覧ください。 [MFC 済] XDR 実装にあった、リモートからのサービス妨害攻撃が可能になるような 境 界チェックのバグが修正されました。 問題の詳細は、セキュリティ勧告 FreeBSD-SA-03:05 をご覧ください。 [MFC 済] 最近公開された OpenSSL の 2 種類のセキュリティ上の弱点が修正されました 。 問題の詳細は、セキュリティ勧告 FreeBSD-SA-03:06 をご覧ください。 [MFC 済] _________________________________________________________________ 2.2. カーネルの変更点 CanBe の電源管理コントローラに対応しました。 [MFC 済] devfs(5) がオプション機能ではなく、必須になりました。 NODEVFS オプショ ンは、 指定可能なカーネル設定オプションから削除されています。 ehci(4) ドライバが追加されました。 これは USB 2.0 コントローラで使われ ている USB Enhanced Host Controller Interface に対応しています。 /dev/tty の許可属性の取り扱いにあった、小さなバグが修正されました。 こ れにより、su(1) の実行後も ssh(1) が使用できるようになっています。 fstat(2) が、TCP ソケットから読み込めるバイト数として 0 を返してしまう バグが修正されました。 kqueue(2) が、TCP ソケットから読み込めるバイト数として 0 を返してしま うバグが修正されました。 また、EVFILT_READ の NOTE_LOWAT フラグも修正 されています。 Linux エミュレーションモードが IPv6 に対応しました。 madvise(2) が、新しく MADV_PROTECT という動作に対応しました。 これは、 そのプロセスは非常に重要なもので、 スワップ空間が枯渇してしまった時で も kill してはいけない、ということを仮想メモリシステムに伝えるものです 。 その時のプロセスは、スーパユーザが所有するものである必要があります 。 (X-10 ホームコントロール製品で使われている) TW-523 電源インタフェース 用の tw ドライバが削除されました。 これは現在動作しておらず、5-CURRENT で動作させるには大幅な変更が必要です。 xten および xtend という、 ユー ザランドの制御プログラムも削除されています。 SMP における性能向上が期待できる、 新しい汎用のプロセススケジューラが スケジューラフレームワークに追加されました。 カーネルコンフィグファイ ルには、スケジューラをどれか一つだけ指定する必要があります。 従来のス ケジューラを使う場合は options SCHED_4BSD を、新しい (まだ試験段階の) スケジューラを使う場合には options SCHED_ULE を指定してください。 デバイスのメジャー番号が、デフォルトで動的に割り当てられるようになりま した。 この変更により、デバイスドライバに割り当てるメジャー番号のテー ブルを、 静的に集中管理する必要性がほとんど (互換性を保つため、従来の 静的なメジャー番号のままなっているドライバも二・三残っています) なくな り、デバイスのメジャー番号が足りなくなる可能性も低くなっています。 カーネルスレッド用の簡易的な遅延スイッチ機構が実装されました。 これは 、(割り込みハンドラなど) 他のプロセスと関係がない、 細かいコンテキスト スイッチによるオーバヘッドを削減するためのものです。 この機能は options LAZY_SWITCH を指定すると有効になります。 _________________________________________________________________ 2.2.1. プロセッサ・マザーボードの対応状況 _________________________________________________________________ 2.2.2. ブートローダの変更 i386 アーキテクチャ用ブートローダのうちの (boot1 および boot2) が boot という一つのファイルに統合されました。 これは、 ブートローダを操作した り書き込むプログラムの構造を単純化するための変更です。 PC98 ブートローダが SCSI MO メディアからの起動に対応しました。 [MFC 済] (以前、FreeBSD 4.X のモジュールが置かれるデフォルトのディレクトリだっ た) /modules ディレクトリが、 デフォルトで kern.module_path に含まれな くなりました。 サードパーティ製のモジュールは、 /boot/modules に置かれ なければならなくなっています。 Note: FreeBSD 4.X 用に設計されたモジュールはパニックをを引き起こし やすいため、 利用する場合は十分注意してください。 _________________________________________________________________ 2.2.3. ネットワークインターフェイスの対応状況 axe(4) ネットワークドライバが新しく追加されました。 これは ASIX Electronics AX88172 USB 2.0 チップセットをベースにした USB Ethernet ア ダプタに対応しています。 cm ドライバが IPX に対応しました。 [MFC 済] rue(4) ネットワークドライバが追加されました。 これは RealTek RTL8150 USB to Fast Ethernet コントローラチップをベースにした Ethernet アダプ タに対応しています。 802.11 リンク層に対応した wlan モジュールが新しく追加されました。 現在 、wi(4) ドライバ、an(4) ドライバがこの機能を利用しています。 インタフェースの設定時にカーネルパニック (や他の問題) を引き起こす可能 性があった、xl(4) ドライバのタイミングバグが修正されました。 _________________________________________________________________ 2.2.4. ネットワークプロトコル ipfw(4) の skipto ルールと log キーワードが、 以前のように同時に使える ようになりました。 また、ipfw(4) の uid ルールも動作するようになってい ます。 同一のカーネルで FAST_IPSEC と INET6 を同時に指定して構築することがで きるようになりました (ただし、両方の機能を同時に使用することはまだでき ません)。 NewReno を有効にしていると高速リカバリが途中で終了してしまうという、 TCP NewReno のバグが修正されました。 [MFC 済] TCP が、RFC 3042 で提案されている ``Limited Transmit'' 機構に対応しま した。 この機能は、ある特定の条件下における TCP ロスのリカバリ効率を向 上させることを目的としたものです。 net.inet.tcp.rfc3042 sysctl 変数で 有効にすることができ、 デフォルトでは無効になっています。 詳細について は、tcp(4) をご覧ください。 TCP が、RFC 3390 に記載されている、 より大きな初期輻輳ウィンドウサイズ に対応するように変更されました。 この機能は、短いデータ転送や、広帯域 で転送遅延量の大きい接続における スループットを向上させる効果がありま す。 net.inet.tcp.rfc3390 sysctl 変数で有効にすることができ、 デフォル トでは無効になっています。 詳細については、tcp(4) をご覧ください。 IP フラグメントの再組み立てコードが大量のフラグメントパケットを 受け取 った時の動作が、より洗練されたものになりました (これは、フラグメントパ ケットを利用したサービス妨害攻撃への 耐性を高めるための変更です)。 [MFC 済] TIME_WAIT 状態の TCP 接続が、 完全な TCP プロトコル制御ブロック (PCB) ではなく、 より容量の小さい特別な PCB を使うように変更されました。 こ れにより、TIME_WAIT 状態が使う構造体やリソースを、 従来よりも早く解放 することが可能になっています。 ``特権ポート (privileged ports)'' (bind(2) するのにスーパユーザ権限が 必要な TCP と UDP のポート番号) の範囲が設定できるようになりました。 設定には、 net.inet.ip.portrange.reservedlow および net.inet.ip.portrange.reservedhigh sysctl 変数を使います。デフォルトは 、伝統的な UNIX と同じになっています。 この機能は、スーパユーザ権限を 持たないネットワークサーバが、 従来特権が必要だったポートに bind でき るようにする目的で追加されました。 詳細は ip(4) をご覧ください。 非ブロッキング RPC コードにあったいくつかのバグが修正されました。 これ により、amd(8) を使って 5.1-RELEASE のサーバからマウントすることができ るようになっています。 7 年間正常に動作していなかった XNS ネットワーク対応が削除されました。 _________________________________________________________________ 2.2.5. ディスク・記憶装置 aac(4) ドライバが、ジャイアントカーネルロックなしに 動作するようになり ました。この変更により、SMP システム上の 複数の高負荷 I/O において、速 度性能がおよそ 20% 向上しています。 ata(4) ドライバが、現在知られている SiS チップセットすべてに対応しまし た (詳細はハードウェアノートをご覧ください)。 ata(4) ドライバが Promise SATA150、TX2、TX4 Serial ATA/150 コントロー ラに対応しました。 ata(4) ドライバがシャットダウン時に デバイスをフラッシュするようになり ました。 コンソールにフラッシュに対応していないデバイスから、 フラッシ ュに失敗したというメッセージが表示されるかも知れませんが、 それはこの 変更によるものです。 CAM レイヤが 2^32 個以上のブロックを持つデバイスに対応しました (1 ブロ ック 512 バイトとすると、これは 2TB より大きいデバイスに対応したことに 相当します)。 Note: この変更前後でアップグレードする場合は、 pass(4) もしくは xpt(4) デバイスを利用するユーザランドアプリケーションをすべて 再構 築しなければならないことに注意してください。 たとえば、ベースシステ ムに含まれる camcontrol(8)、 port に含まれる sysutils/cdrtools や multimedia/xmms がそれらに該当します。 cd(4) に数多くの変更が加えられました。 ユーザに影響がある主なものとし て、 ATAPI/USB/Firewire CDROM ドライブとの互換性向上があります。 geom(4) がオプション機能ではなく、必須になりました。 NO_GEOM オプショ ンは、 指定可能なカーネル設定オプションから削除されています。 iir(4) ドライバが更新されました。 この更新で、インストール時にディスク の検出ができないという問題が解決しています。 mly(4) ドライバにあった、 ハングアップするバグが修正されました。 UFS および UFS2 ファイルシステムが、 ボリュームラベルに対応しました。 ボリュームラベルは、 ボリュームを同定するために使われる、 デバイスの種 類に依存しない文字列です。 ボリュームラベルは newfs(8) もしくは tunefs(8) に -L オプションを指定することで設定することができます。 GEOM_VOL モジュールを使うと、 /dev/vol 以下に現れるボリュームラベルを 使ってボリュームにアクセスすることが可能になります。 vinum(4) ボリュームにルートファイルシステムが置けるようになりました。 詳しくは vinum(4) のマニュアルページをご覧ください。 しばらく壊れたままだった wfd ドライバと wst ドライバが削除されました。 _________________________________________________________________ 2.2.6. ファイルシステム 新しく DIRECTIO カーネルオプションが追加されました。 これはバッファキ ャッシュを経由せずに直接データを読み込んだり、 ユーザ空間のバッファに 直接データを書き込むことを可能にします。 この機能を使うには、ファイル 記述子に O_DIRECT フラグをセットすることと、 読み出し操作時のオフセッ ト・データ長の両方に、 物理メディアセクタ長の整数倍を指定する必要があ ります。 [MFC 済] NETNCP および Netware Filesystem 対応 (nwfs) が、正しく動作するように なりました。 smbfs にあった、アンマウントができない、 もしくはアンマウント時にカー ネルパニックが発生するというバグが 修正されました。 _________________________________________________________________ 2.2.7. PCCARD 対応 _________________________________________________________________ 2.2.8. マルチメディアへの対応状況 speaker(4) デバイス用の atspeaker.ko モジュールと pcspeaker.ko モジュ ールは、 speaker.ko という名前に変わりました。 _________________________________________________________________ 2.3. ユーザランドの変更点 adduser(8) が、シェルの特殊文字を含むパスワードを 正しく処理できるよう になりました。 従来のディスクラベルユーティリティに代わって、 bsdlabel(8) ユーティリ ティが導入されました。 これは従来のものと同様、ディスクパーティション にある BSD ラベルのインストールや表示、変更を行なったり、 ブートストラ ップコードのインストールを行なうことができます。 disklabel ユーティリ ティと比べて、使われなくなったオプションや パラメータの多くが削除され た点が異なります。 bsdlabel(8) には新しく -m オプションが追加されてお り、指定したマシンアーキテクチャに適したレイアウトを 使用できるように なっています。 adduser(8) に、ユーザのデフォルトログイングループを設定する -g オプシ ョンが追加されました。 chgrp(1) および chown(8) は、 -v オプションが複数個指定された場合、 所 有者/所有グループを変更する時に新旧の uid/gid を表示するようになりまし た。 config(8) に、 カーネルコンフィグファイルの device 指示子の指定を無効 にする nodevice 指示子が追加されました。 また、nooption と nomakeoption 指示子も追加されており、 それより前にある options および makeoptions 指示子をそれぞれ無効にします。 diskinfo(8) ユーティリティが追加されました。 これは、ディスクデバイス の情報の表示と、 ネイティブな性能試験を行なうためのものです。 disklabel ユーティリティが bsdlabel(8) に置き換えられました。 alpha 、i386、pc98 プラットフォームでは、disklabel ユーティリティは bsdlabel(8) へのリンクになっています。 dump(8) に、ディスクブロックをキャッシュする -C オプションが追加されま した。 これは、パスの間のファイルシステム更新を反映しないという欠点が ありますが、 ダンプ速度を向上させることが可能です。 dumpfs(8) に、ファイルシステムのパラメータを newfs(8) コマンドの形式で 表示する -m フラグが追加されました。 elf(5) 実行ファイルフォーマットの情報を表示するユーティリティ elfdump が追加されました。 fetch(1) は fetch(3) の .netrc に対応し、さらに、異なる .netrc を指定 する -N オプションが追加されました。 fetch(3) が .netrc に対応しました (詳しくは ftp(1) をご覧ください)。 ftpd(8) に、サーバメッセージ中に ftpd(8) のバージョンやホスト名などの 固有情報を表示しないようにする -h オプションが追加されました。 [MFC 済] ftpd(8) に、デーモンモードで listen するポート番号を 指定する -P が追 加されました。 また、デフォルトのデータポート番号は制御ポート番号より 1 少ない値になっており、 特定の固定値は使わなくなりました。 [MFC 済] ftpd(8) に使われる /etc/ftpchroot ファイルの書式が拡張されました。詳し くは、新しく追加された ftpchroot(5) のマニュアルページをご覧ください。 [MFC 済] ftpd(8) のログインディレクトリのパス名に、 chroot(2) 用のディレクトリ と、 chroot 環境でのカレントディレクトリが指定できるようになりました。 指定には、他の FTP デーモンでも使われている /./ というセパレータを使い ます。 これは ftpchroot(5) と passwd(5) の両方で指定可能です。 [MFC 済] fwcontrol(8) に、DV ストリームの送受信用オプション -R および -S が追加 されました。 [MFC 済] gstat(8) ユーティリティが追加されました。 これは、geom(4) サブシステム におけるディスクの稼働状態を表示するものです。 ipfw(8) に、(ファイアウォール機能そのものの有効化・無効化を含む) ipfw(4) におけるさまざまな制御を実現するため、 enable コマンド、 disable コマンドが追加されました。 これらは、従来の sysctl 変数よりも わかりやすく、 便利な操作手段を提供します。[MFC 済] jail(8) に、新しく -i フラグが追加されました。 これは、新しく作成した jail の識別子を出力します。 既存の jail の中でコマンドを実行する、jexec(8) ユーティリティが追加さ れました。 既存の jail を一覧表示する jls(8) ユーティリティが追加されました。 kenv(1) が、ルートファイルシステムのみがマウントされた状態で システム が起動している場合にも利用できるよう、 /usr/bin から /bin に移されまし た。 killall(1) に新しく -j オプションが追加されました。 これは、ひとつの jail にあるすべてのプロセスを kill します。 ユーザランドから geom(4) サブシステムの一部へのアクセスを提供する libgeom(3) ライブラリが追加されました。 mac_portacl MAC ポリシモジュールが追加されました。 これはユーザとグル ープに、TCP ポート、UDP ポートへの bind を許可するという単純な ACL 機 構です。 最近追加された net.inet.ip.portrange.reservedhigh sysctl 変数 と組み合わせて使うことを想定しています。 devfs(5) が必須となったため、 必要がなくなった MAKEDEV スクリプトは削 除されました。 mergemaster(8) に、置き換えられたファイルの内容を保存する -P オプショ ンが追加されました。 mixer(8) に、相対値を使ったボリューム調整が実装されました。 FFS スナップショットの作成を簡単に行なうための mksnap_ffs(8) プログラ ムが追加されました。 これは operator グループ に所属するユーザから利用 することを想定した SUID-root 実行ファイルです。 mount(8) および umount(8) に、 標準の場所にない fstab(5) を指定するた めの -F オプションが追加されました。 mount_nfs(8) に、UDP マウントポイントに対して connect(2) を行なわない ようにする -c フラグが追加されました。このオプションは、サーバが 標準 の NFS ポート番号である 2049 からの要求に応答しない、 あるいはその要求 に対してサーバが異なる IP アドレスを 使って応答する (サーバがマルチホ ーム構成の場合など) 時に使います。 vfs.nfs.nfs_ip_paranoia sysctl 変数 を 0 にすると、このオプションがデフォルト動作になります。 [MFC 済] mount_nfs(8) に、noinet4 と noinet6 マウントオプションが追加されました 。 これは、それぞれ IPv4 と IPv6 による NFS マウントを禁止します。 newfs(8) は、-O1 オプションを使って UFS1 が指定されていない限り、デフ ォルトで UFS2 ファイルシステムを作成するようになりました。 newsyslog(8) に、多くの新機能が追加されました。 * エントリの圧縮処理の開始前に、 前回開始した圧縮処理を強制終了させ る W フラグ (エントリのグループの場合は G フラグ) が追加されました 。 この機能は、大きいファイルを同時に圧縮する処理でシステムが過負 荷に なるのを避けるためのものです。 [MFC 済] * ローテーションを指定し、 設定ファイルに何も指定しなかった場合に使 われる ``デフォルトのローテート動作'' が指定できるようになりました 。 [MFC 済] * ファイルをローテートする時にシグナルを送らないようにする -s コマン ドラインフラグが追加されました。 [MFC 済] * ファイルをローテートする時に、シグナルを送る必要がないことを示す N 設定ファイルフラグが追加されました。 [MFC 済] * ファイルをローテートする時に、(プロセス単体ではなく) プロセスグル ープにシグナルを送ることを指定する U 設定ファイルフラグが追加され ました。 [MFC 済] nsdispatch(3) はスレッドセーフになり、 Name Service Switch (NSS) モジ ュールに対応しました。 NSS モジュールは libc に静的に構築したり、 dlopen(3) で動的にロードすることが可能です。 ロード・初期化は設定時 ( nsdispatch(3) が呼ばれ、 nsswitch.conf(5) の読み込み/再読み込みが行な われた時) に行なわれます。 新たに pam_chroot(8) モジュールが追加されました。 これはユーザに対して 、あらかじめ決まったディレクトリか、 ホームディレクトリの下にあるディ レクトリのいずれかに chroot(2) 操作を行なうためのものです。 pam_ssh(8) が書き換えられました。 その影響で、各セションは最初のセショ ンで実行されたエージェントに接続しようとするのではなく、 各セションに 対して個別に ssh-agent(1) が実行されるようになっています。 ping(8) に、送出パケットの ``Don't Fragment'' ビットをセットする -D フ ラグが追加されました。 ping(8) に、ICMP echo 要求の代わりに、 ICMP マスク要求メッセージやタイ ムスタンプ要求メッセージを使う -M オプションが追加されました。 ping(8) に、送出パケットの Type of Service ビットをセットする -z フラ グが追加されました。 pw(8) が、$ 文字で終わるユーザの追加に対応しました。 これは、主に Samba サービスの管理を容易にするための変更です。[MFC 済] pwd_mkdb(8) で生成される /etc/pwd.db および /etc/spwd.db パスワードデ ータベースの構造が、 バイトオーダに依存しない形に変更されました。 前処 理されたこれらのパスワードデータベースは、 異なるアーキテクチャ間で移 動させて利用することが可能になっています。 古いバイナリとの互換性を保 つため、 ファイルのエントリにはバージョン番号が含まれています。 rand(3) の、乱数列が 0 になってしまう可能性があったバグが修正されまし た (ただし rand(3) は、依然として実用的な用途には適していません)。 rtld(1) が新しく、 共有オブジェクト依存関係の動的マッピングに対応しま した。 このオプション機能は特に、 複数の異なるスレッドライブラリを使っ て実験する時に便利です。 ただし、デフォルトでは構築されません。 詳しく は libmap.conf(5) をご覧ください。 これはオプション機能のひとつで、デ フォルトでは無効になっています。 sem_open(3) が、 同じセマフォの複数回オープンを正しく処理できるように なりました。 これにより、sem_close(3) で呼び出し元のプログラムがクラッ シュすることはなくなっています。 srandom(3) の乱数シードアルゴリズムが、 より強いものになりました。 デバイス上のページングとスワップ処理を無効にする swapoff(8) コマンドが 追加されました。 関連するコマンド swapctl(8) も、他の BSD にあるような swapon(8) と swapoff(8) へのインタフェースに対応しました。 Note: swapoff(8) 機能は実験的なものと考えられています。 syslogd(8) は、syslog.conf(5) ファイル中でホストやプログラムを指定する 部分に、 複数のホストやプログラムを指定できるようになりました。 systat(1) に、新しく -ifstat ディスプレイモードが追加されました。 これ は、システム上の有効かインタフェースを通過するネットワークトラフィック を表示します。 usbhidaction(1) コマンドが追加されました。 これは、USB HID 制御に応じ て、設定された動作を行なうためのものです。 uudecode(1) と b64decode(1) に、 先頭フレーム行、もしくは最終フレーム 行が欠けた、 壊れたファイルをデコードするための -r フラグが追加されま した。 [MFC 済] vmstat(8) で fork 操作の統計を表示する -f フラグが再実装されました。 xargs(1) に、ユーティリティを複数並列に実行する -P オプションが追加さ れました。 xargs(1) に、コマンド実行前に子プロセス用に /dev/tty を再オープンする -o フラグが追加されました。 これは、子プロセスが対話的なアプリケーショ ンの場合に有用です。 KSE を使って POSIX スレッド機能を提供する libkse ライブラリがデフォル トでインストールされ、有効化されるようになりました。 このライブラリは 現在 M:N スレッド機能に対応しています。 プロセススコープ、システムスコ ープスレッドの両方を使うことができ、 並列レベルの取得・設定が可能です 。 デフォルトでは、並列レベルがシステムの CPU 数に設定されます。 各並 列レベルは 1 個の KSE と関連づけられおり、 すべてのプロセススコープス レッドはこれらの KSE の中で動作します。 システムスコープスレッドは、並 列レベルに対応する独立した KSE を取得します。 libkse はまだ作業中のも のであり、 デフォルトでは使われませんが、プログラムをリンクする時に -pthread ではなく -lkse を指定することで、 libc_r の代替品として使うこ とが可能です。 1:1 スレッドパッケージ (ひとつのアプリケーションにある すべての pthread に対して、ひとつの KSE とスレッドが対応するというもの) が実装 されました。 このモデルでは、カーネルがすべてのスレッドスケジューリン グを決定し、 すべてのシグナルを配送します。KSE コードのいくつかの部分 を使っており、 作業中の M:N スレッドの限定されたものだと考えてよいでし ょう。 libthr ライブラリは、 この機能のユーザランド部分として実装され たもので、 libc_r ライブラリの代替として使うことができます。 ただし 、libthr は (現時点では) デフォルトで構築されません。 従来から BSD で使われてきた /etc にある起動スクリプトが削除され、 NetBSD から移植された rc.d システムに置き換えられました (これは ``rcNG'' とも呼ばれています)。 従来あった機能はすべてそのまま残ってお り、特に /etc/rc.conf などのファイル群は、 今後も標準のシステムの起動 設定手段として継続して使われます。 rc.d システムは FreeBSD 5.0-RELEASE よりデフォルトになっていたため、この変更は、 ほとんどのユーザにとって 意識しなければならないものではないでしょう。 /etc にあった以下のファイ ルは削除されましたので、 従来のスタイルのスタートアップスクリプトをカ スタマイズしているユーザは 注意してください。 rc.atm, rc.devfs, rc.diskless1, rc.diskless2, rc.i386, rc.alpha, rc.amd64, rc.ia64, rc.sparc64, rc.isdn, rc.network, rc.network6, rc.pccard, rc.serial, rc.syscons, rc.sysctl. mergemaster(8), を実行すると、 これらのファイル を異なる場所に移動するかどうか尋ねられます。 詳しくは、rc.subr(8) をご 覧ください。 _________________________________________________________________ 2.4. 寄贈ソフトウェア ACPI-CA コードが、 20021118 スナップショットから 20030228 スナップショ ットに更新されました。 Bell Labs 由来の awk が 2003 年 3 月 14 日時点のスナップショットが統合 されました。 BIND がバージョン 8.3.4 に更新されました。 [MFC 済] ベースシステムに bzip2 スイート全体、特に bzip2recover がインストール されるようになりました。[MFC 済] CVS がバージョン 1.11.5 に更新されました。 [MFC 済] The DRM kernel modules have been updated to a snapshot from the DRI CVS repository, as of 24 April 2003. The DRM_LINUX kernel option hsa been removed because the handler is now provided by the Linux compatibility code. DRM カーネルモジュールが、 DRI CVS リポジトリの 2003 年 4 月 24 日時点 のスナップショットに更新されました。 必要なハンドラが Linux 互換機能に 追加されたため、 DRM_LINUX カーネルオプションは削除されました。 FILE がバージョン 3.41 に更新されました。 [MFC 済] GCC が 3.2.2 (リリース版) に更新されました。 文字列と浮動小数点数を変換する gdtoa ライブラリが統合されました。 ソー スは 2003 年 3 月 24 日付けのものです。 groff (および関連ユーティリティ) が、 バージョン 1.18.1 からバージョン 1.19 に更新されました。 IPFilter がバージョン 3.4.31 に更新されました。 [MFC 済] ISC DHCP クライアントがバージョン 3.0.1RC11 に更新されました。 [MFC 済] ISC DHCP クライアントには、新しく omshell(1) ユーティリティと dhcpctl(3) ライブラリが含まれるようになりました。 これらは、クライアン ト実行時の制御を行なうためのものです。 Kerberos IV 対応 (KTH eBones) が削除されました。 この機能を必要として いるユーザは、 security/krb4 の port (もしくは package) から入手するこ とができます。 Kerberos 5 の Kerberos IV 互換モードも削除され、 k5プロ グラム名 というユーザランドユーティリティは、 kプログラム名 という名前 に変更されています。 Kerberos 5 が buildworld の過程で、 デフォルトで構築されるようになりま した。 現在、MAKE_KERBEROS5 変数は使われなくなっており、 ベースシステ ムの Kerberos 5 を無効にするには、 NO_KERBEROS Makefile 変数を定義する 必要があります。 libpcap が、 同一のインタフェース上での複数のデータリンクタイプの選択 に対応しました。 lukemftpd (デフォルトでは構築・インストールされません) が、2003 年 1 月 22 日のスナップショットに更新されました。 OpenPAM がリリース ``Citronella'' からリリース ``Dianthus'' に更新され ました。 OpenSSH がバージョン 3.6.1p1 に更新されました。 OpenSSL がリリース 0.9.7a に更新されました。 このリリースには、AES と crypto(4) デバイス対応が含まれています。 sendmail がバージョン 8.12.9 に更新されました。 [MFC 済] tcpdump(1) がバージョン 3.7.2 に更新されました。[MFC 済] また、インタ フェースで利用可能なデータリンクタイプを一覧表示する -L フラグと、 パ ケットキャプチャ中にどのデータリンクタイプを使うのかを指定する -y オプ ションが追加されました。 texinfo がバージョン 4.2 から 4.5 に更新されました。 timezone データベースが tzdata2002d から tzdata2003a に更新されました 。 [MFC 済] _________________________________________________________________ 2.5. Ports/Packages Collection インフラストラクチャ 1 行の pkg-comment ファイルが、 各 port スケルトンから削除され、その内 容が Makefile の中に移動しました。 この変更により、 ports ツリーで消費 するディスク容量と inode 数が少なくなっています。 [MFC 済] port 構築における配布ファイルの取得で MD5 チェックサムが一致しなかった 場合に、 何回再取得を試みるかを FETCH_REGET Makefile 変数に指定できる ようになりました。 また、取得途中で止めたファイルの再取得にも対応して います。 pkg_create(1) に、それと衝突する package のリストを登録する -C オプシ ョンが追加されました。 このリストにある package がすでに存在している場 合、 (pkg_add(1) での) インストールは失敗します。 この衝突チェックは、 pkg_add(1) に -f フラグを追加することで無効にすることが可能です。 pkg_info(1) は、-b フラグの表示の際に BLOCKSIZE 環境変数の設定に従うよ うになりました。 pkg_info(1) に、 -q ``quiet'' オプションの動作に加えて、 最初に package 名を表示するという動作を行なう -Q オプションが追加されました。 _________________________________________________________________ 2.6. リリースエンジニアリングと統合 FreeBSD が公式に対応している GNOME のリリースが、バージョン 2.2.1 に更 新されました。 [MFC 済] FreeBSD が公式に対応している KDE のリリースが、バージョン 3.1.2 に更新 されました。 [MFC 済] 個別の krb5 配布物が廃止されました。 Kerberos 5 ライブラリとユーティリ ティは、 crypto 配布物に含まれるようになっています。 sysinstall(8) が、XFree86 の 個々のコンポーネントのインストールに再度 対応しました。 この変更により、(ユーザが意識することはありませんが) 配 布物のインストールを package として行なうための汎用の仕組みが組み込ま れました。 FreeBSD が公式に対応している XFree86 のリリースが、バージョン 4.3.0 に 更新されました。 [MFC 済] FreeBSD 2.X から 3.X、 FreeBSD 3.X から 4.X というメジャーバージョン間 のアップグレードを行なう機能が削除されました。 _________________________________________________________________ 2.7. ドキュメンテーション 文書セットに ``FreeBSD From Scratch'' と ``The Roadmap for 5-STABLE'' という記事が追加されました。 新しくデンマーク語 (da_DK.ISO8859-1) 翻訳プロジェクトが発足しました。 _________________________________________________________________ 3. 前のリリースの FreeBSD からのアップグレード 現存する FreeBSD システムからアップグレードするユーザは ``FreeBSD 5.1-RELEASE 初期利用者のための手引き'' を読むことを 強く 推奨します。 この文書は、通常 EARLY.TXT という名前で 配布物に収録されており、 また 、他のリリースノートが置かれているところにも一緒に置かれています。 こ の手引にはアップグレード時に注意を払うべき点に加え、 さらに重要な情報 として、 FreeBSD 4.X システムを使い続ける場合と FreeBSD 5.X へのアップ グレードした場合の、 それぞれの利点についてのまとめが書かれています。 Important: FreeBSD のアップグレードは、もちろん、 すべての データと 設定ファイルを バックアップしてからのみ行うべきです。 _________________________________________________________________ このファイルの他、リリース関連の文書は ftp://ftp.FreeBSD.org/ からダウ ンロードできます。 FreeBSD に関するお問い合わせは、 へ質問を投稿す る前に解説文書をお読みください。 FreeBSD 5-CURRENT をお使いの方は、ぜひ メーリン グリストに参加ください。 この文書の原文に関するお問い合わせは まで、 日本語訳に関するお問い合わせは、 まで電子メール でお願いします。