# FreeBSD/i386 4.5-RELEASE リリースノート

### FreeBSD プロジェクト

Copyright © 2000, 2001, 2002 by FreeBSD ドキュメンテーションプロジェクト

$FreeBSD: src/release/doc/ja_JP.eucJP/relnotes/common/new.sgml,v 1.5.2.14.2.2 2002/01/27 16:16:42 hrs Exp $

この FreeBSD 4.5-RELEASE リリースノートには、FreeBSD 4.4-RELEASE のリリース以降に FreeBSD ベースシステムに対して加えられた変更点がまとめられています。 変更点はカーネル、ユーザランドにおけるものだけでなく、 前回のリリース以降に発行され、 ベースシステムに影響のあるセキュリティ勧告も含まれています。 また、 アップグレードの際の注意点についても簡単に説明しています。

# 1. はじめに

この文書は IA-32 アーキテクチャ版 FreeBSD 4.5-RELEASE のリリースノートです。これには 4.4-RELEASE 以降に追加 (変更) された新機能および、前のバージョンの FreeBSD からアップグレードする場合におけるいくつかの注意点か書かれています。

この FreeBSD 4.5-RELEASE は release 版であり、ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/ および各ミラーサイトで公開されています。FreeBSD の release 版 (またはそれ以外) の入手法については FreeBSD ハンドブックの ``FreeBSD を入手するには''をご覧ください。

# 2. 更新情報

この節では 4.4-RELEASE 以降に新たに追加・変更された ユーザに影響する機能について説明します。 リリースノートの項目には通常、 新しいドライバや新しいハードウェアへの対応、 新しいコマンドや新しいオプションの導入、大規模なバグ修正、 寄贈ソフトウェアのアップグレードが含まれており、 それに加えて 4.4-RELEASE 以降に発行され、 ベースシステムに影響のあるセキュリティ勧告も記載されています。

FreeBSD に加えられた変更点のうち、 スペースの都合上ここに書かれていないものも多数存在します。 それらはたとえば文書の修正や改良、 ごく影響の小さいバグの修正、 監査で見つかったセキュリティ上好ましくないスタイルで書かれたコードの修正、 ソースコードの整理などです。

## 2.1. カーネルの変更点

amdpm(4) ドライバが追加されました。これは AMD 756 チップセットのシステム監視機能へのアクセスを提供します。

`kern.maxvnodes` の値が、使用 vnode 数の最大値としてきちんと機能するようになりました。 従来はキャッシュされていないページの vnode のみが解放可能でしたが、 その場合は大容量のメモリを搭載したマシンで多数の小さなファイルをアクセスした場合に vnode 数の増加を制限することができませんでした。現在は vnode の解放と再利用に `vnlru` というカーネルスレッドが使われています。

新しいカーネルオプション `KVA_SPACE` が追加されました。これは、 カーネルの仮想アドレス空間の大きさを再設定できるようにするためのものです。

FreeBSD の Linux バイナリ互換機能が `emulators/linux_base-7` (RedHat 7.X エミュレーション) の実現に必要なカーネル機能に対応しました。

カーネルの設定パラメータ `MAXTSIZ`、`DFLDSIZ`、 `MAXDSIZ`、`DFLSSIZ`、`MAXSSIZ`、 `SGROWSIZ` は、すべてローダからも (`kern.maxtsiz`、`kern.maxdfldsiz` などの変数で) 設定することが可能になりました。

カーネル設定パラメータ `maxusers` に `0` を指定した場合、起動時に自動的に適切な値が (搭載メモリ量に応じて 32 から 384 の間で) 設定されるようになりました。すべてのアーキテクチャの `GENERIC` カーネルにおいて、この `0` が標準値になっています。

pmc ドライバが追加されました。これは NEC PC-98NOTE の電源管理コントローラに対応しています。

カーネルのロードアドレスがシンボルテーブルに格納されるようになり、 ハードコードされたさまざまな定数が削除されました。 これにより、 異なるアドレスでコンパイルされたカーネルに対しても ps(1) が正しく動作可能になっています。

巨大なプロセス (あるいは非常に多数のプロセス) のコアダンプの際に、 長い間マシンが停止してしまう症状が起こらなくなりました。

カーネルの状態を保持するためにプロセスごとに割り当てられるメモリページの数が 2 から 3 に増加しました。これにより、 カーネルスタックのオーバフロー (および、 その後ろにあるプロセス固有のデータ構造体の破壊) の発生が起こりにくくなっています。

システムの負荷計算において、 負荷の測定間隔にいくらか揺らぎを持たせるような変更が行なわれました。 これは、 定期的に実行されるプロセスとの同期を防ぐためのものです。

デバッグ対応カーネルをモジュールと一緒に (つまり `makeoptions DEBUG=-g` を指定して) 構築した場合は、 完全を期すためにモジュールの構築もデバッグ対応を有効にして行なわれるようになりました。 この影響により、 モジュールをデバッグ対応カーネルと一緒に構築・インストールすると 以前よりも大きいディスク空間を占有するようになっています。

インストール CD のカーネルが `mfsroot` から分離されました。 これによりカスタマイズした FreeBSD の配布の作成がより柔軟に行なえるようになっています。

### 2.1.1. プロセッサ・マザーボードの対応状況

### 2.1.2. 起動ローダ関連

CDROM 用のブートストラップユーティリティ `cdboot` が新しく追加されました。これは El Torito bootable CDROM 規格を完全に実装していない BIOS でも、CDROM からの起動を可能にするためのものです。 また、この起動ローダは ``エミュレーションなし'' のモードで起動に対応しているため、起動可能 CDROM にエミュレーションモード用のフロッピディスクイメージを必要としないだけでなく、 CD からの起動に対応しているマシンでは (フロッピー用に機能を削ったカーネルではなく) 通常のカーネルを用いることが可能になっています。

> Note: この機能は FreeBSD 4.5-RELEASE の ISO イメージファイルでは無効になっており、 採用は次回以降のリリースになる見込みです。それまで、 この機能はカスタム版の配布を作成する際に利用することができます。

loader(8) に新しく bzip2 で圧縮されたカーネルやモジュールをロードする機能が追加されました (ただしこれは標準では無効になっているオプション機能であり、 有効化はコンパイル時に行なう必要があります)。

FreeBSD 起動ローダが 16K のディスクブロック長を持つファイルシステムからの起動に対応しました (従来はこれが 8K までに制限されていました)。

FreeBSD 起動ローダに新しく `-p` オプションが追加されました。 これはカーネル起動時におけるデバイス認識の際に、 メッセージが一行出力されるたびにカーネルを一時停止させるものです。

### 2.1.3. ネットワークインターフェイスの対応状況

an(4) ドライバが新しく ``monitor'' モードに対応しました。 ancontrol(8) に `-M` オプションを指定することで、 このモードに設定することが可能です。

bge(4) ドライバが追加されました。これは 3Com 3c996-T、 SysKonnect SK-9D21、SK-9D41 および Dell PowerEdge 2550 サーバの内蔵ギガビット Ethernet NIC などに使われている Broadcom BCM570x ファミリのギガビット Ethernet コントローラ用ドライバで、送信側における TCP/IP チェックサムの負荷低減機能、ジャンボフレーム、VLAN タグ挿入・削除機能に加え、 割り込み低減機能に対応しています。

dc(4) ドライバが新しく Conexant LANfinity RS7112 チップをベースにした NIC に対応しました。

de(4) ドライバは従来の受信ユニットに優先度を与えるという方式ではなく、 21143 の送受信ユニット間でラウンドロビンの調停を行なうようになりました。 これにより、高負荷時の転送速度において 10-15% 程度の性能向上が達成されています。

dgm ドライバが FreeBSD -CURRENT の変更を受けて更新されました。

em(4) ドライバが新しく追加されました。これは Intel 82542、 82543、82544 ギガビット Ethernet コントローラチップに対応します。また、 このドライバは送信側・受信側双方におけるチェックサムの負荷低減機能、 82543 および 82544 ベースのアダプタにおける巨大フレーム (jumbo frame) 機能にも対応しています。

faith(4) デバイスがロード・アンロード可能になり、 クローニング機能に対応しました。

fxp(4) ドライバが新しく Intel のロード可能マイクロコードに対応しました。 これにより受信側の割り込みコーリス機能 (訳注: interrupt coalescing; 割り込みの取りこぼしを防ぐ機能) やパケット結合機能など、NIC が対応している機能を利用できるようになります。 この機能は ifconfig(8) に `link0` オプションを指定することで有効になります。

gx(4) ドライバが新しく追加されました。これは Intel 82542 および 82543 ギガビット Ethernet コントローラチップをベースにした、光ファイバ、 メタル線の両方のタイプの NIC に対応しています。82542 と 82543 は両方とも VLAN タグ挿入機能に対応しており、82543 はさらに TCP/IP チェックサムの負荷低減機能を備えています。

sbni ドライバが新しく追加されました。これは ISA および PCI バス版の 2 点間通信インターフェイス (point-to-point communications interface) である Granch SBNI12 シリーズに対応しています。 これらのデバイスの設定には、FreeBSD Ports Collection に含まれている `sysutil/sbniconfig` の port が利用可能です。

sis(4) ドライバが新しく、SiS 635 および 735 マザーボードチップセットに内蔵されている SiS 900 系の オンボード Ethernet コントローラに対応しました。

sis(4) ドライバが VLAN に対応しました。

vlan(4) デバイスがロード・アンロード可能になり、 クローニング機能に対応しました。

wx(4) ドライバは公式に保守されないことが決定し、 廃止されました。Intel Pro/1000 ギガビット Ethernet インターフェイスを利用する場合は em(4) もしくは gx(4) ドライバを使ってください ( em(4) ドライバは Intel の支援を受けて開発されたものですが、動作するのは i386 アーキテクチャのみです。 gx(4) ドライバは FreeBSD プロジェクトが独自に開発したもので、 複数のプラットフォームで動作します)。

xl(4) ドライバが新しく、送信側・受信側双方における TCP/IP チェックサムの負荷低減機能に対応しました。これは、 この機能に対応している 3C905B、3C905C、3C980C などの NIC に対して有効です。

xl(4) ドライバにおいて、 統計情報のオーバフロー割り込みの処理に関連するバグが修正されました。 これはパケットの送受信速度が中から高程度になった時に、 処理速度が低下する原因となっていたものです。

インターフェイス一つ一つに用意される `ifnet` 構造体に、 ネットワークインターフェイスが対応している機能と、 どの機能が有効化されているかを示す部分が追加されました。 また ifconfig(8) を使って、 これらの情報を表示することが可能になっています。

インターフェイス一つ一つに用意される `if_inaddr` 構造体が、 線形リストからハッシュテーブルに変更されました。 これにより、多数の別名 IP アドレスを持っているホストの性能が向上しています。

特定のネットワークデバイス (特に dc(4) および sis(4)) においてパケット転送の性能が向上しました。 これは不必要なバッファのコピーの削除によるものです。

### 2.1.4. ネットワークプロトコル

bridge(4) および dummynet(4) に対していくつかバグ修正が行なわれ、 ロード可能モジュールとして利用できるようになりました。

select(2)/ poll(2) や pthreads を使用した場合の bpf(4) の読み出しタイムアウト機能がより正確に動作するようになりました。

ある条件下でスループットが低下するという、TCP NewReno 実装に存在していたバグが修正されました。

sysctl 変数 `net.inet.tcp.sendspace` および `net.inet.tcp.recvspace` で制御可能な TCP バッファサイズの標準値が、それぞれ 32K および 64K に増やされました。 このバッファサイズの従来の標準値は両方とも 16K でした。 ネットワークの混雑を緩和するため、sysctl 変数 `net.inet.tcp.local_slowstart_flightsize` の標準値は無限大から 4 に変更されています。

> Note: この標準バッファサイズが増加したことにより、 ネットワーク負荷の高いホストでは、 カーネルコンフィグファイルもしくは ローダから変更できる sysctl 変数 `kern.ipc.nmbclusters` を用いて `NMBCLUSTERS` パラメータを手動で増加させる必要があるかも知れません。 mbuf クラスタの状態は `netstat -mb` コマンドで監視することが可能です。

TCP 実装において、送信側で 0 のウィンドウサイズを受けとった場合、 接続が停止状態となってしまう可能性のあるバグが修正されました。

FreeBSD の TCP 実装に、未処理の受信 SYN セグメントに対するキャッシュが実装されました。 受信される SYN セグメントは TCP の 3-way ハンドシェイクが完了するまでキャッシュ内のエントリに格納され、 ハンドシェイクが完了した時点で、 通常の接続用のメモリを割り当てます。また、TCP 初期シーケンス番号 (ISNs) をクッキー (cookies) として用いることで、キャッシュのエントリを削除した後も 対応する ACK の受理を可能にしています。この ``syncache'' および ``syncookies'' と呼ばれる機能は、 TCP ベースのサービス妨害攻撃 (Denial of Service Attack) に対する耐性を向上させます。この機能の開発は DARPA と NAI Labs の支援の元に行なわれました。

### 2.1.5. ディスク・記憶装置

aac(4) ドライバが更新されました。この更新には、 アダプタの発行するコマンドの正しい処理、 ディスクデバイスの脱着、クラッシュダンプ機能、CLI 管理に必要な ioctl(2) コマンドの追加が含まれます。また、このドライバは Adaptec 社の認定と承認を受けています。

ata(4) ドライバが新しくたくさんの種類のチップセットに対応しました。 対応チップセットはハードウェアノートに記載されています。

ata(4) ドライバが 48 ビットアドレスに対応しました。これにより 137GB を超えるドライブが使用可能になっています。

The ata(4) ドライバに含まれていた、VIA 82C686B Southbridge チップを採用しているシステムでデータが破壊されるという問題が修正されました。

ciss ドライバが新しく追加されました。これは SCSI-3 共通インターフェイス (Common Interface for SCSI-3 Support) を使ったデバイスに対応するものです。 対応デバイスには、Compaq SmartRAID 5* ファミリの RAID コントローラ (5300、532、5i) があります。

新しく isp(4) ドライバが追加されました。これは Qlogic 2300、2312 Optical Fibre Channel PCI カードに対応しています。

ncv、nsp、stg の各 SCSI ドライバが、 モジュールとしてロード可能になりました。

### 2.1.6. ファイルシステム

FFS ディレクトリレイアウト優先度アルゴリズム (the directory layout preference algorithm; `dirprefs`) が、 ディレクトリブロックをディスク上に分散させるのではなく、 関連するディレクトリブロックをなるべくグループ化しようと試みるように変更されました。 これにより、FreeBSD Ports ツリーのように大規模なディレクトリ階層をたどる操作の速度が劇的に向上しています。 この変更は新規ディレクトリに対しても自動で透過的に作用します。

仮想メモリサブシステムは、標準で UFS ディレクトリメモリ要求を利用するようになりました (この動作は sysctl 変数 `vfs.vmiodirenable` で制御することが可能です)。

SCSI CDROM からルートファイルシステムをマウントできない原因と なっていたバグが修正されました (ATAPI CDROM はすでに対応済みです)。

ハッシュをベースに大規模ディレクトリエントリ検索の最適化を実装した `UFS_DIRHASH` が、`GENERIC` カーネルの標準設定で有効化されるようになりました。

ファイルシステムのコードに存在する多数のバグが修正されました。 それらは fsx というファイルシステム試験ツールによって発見されたもので (主に NFS の利用と関連する) ある条件下で、 データの損壊やカーネルパニックを引き起こす可能性を持っていました。

### 2.1.7. PCCARD 対応状況

FreeBSD -CURRENT の pcic(4) ドライバから、 たくさんの機能が統合されました。それにはバグ修正、ToPIC ベースのラップトップへの対応の強化、 いくつかのコントローラにおける 3.3V カード対応などが含まれます。

### 2.1.8. マルチメディアへの対応状況

MP3 プレーヤ Diamond Rio シリーズ用の urio(4) ドライバが新しく追加されました (このドライバのマニュアルページだけは、なぜか FreeBSD 4.3-RELEASE の時点で追加されていました)。

### 2.1.9. 寄贈ソフトウェア

IPFilter が IPv6 に対応しました。

#### 2.1.9.1. isdn4bsd

isdnphone(8) に新しく `-k` オプションが追加されました。 これはキーパッドを使って構内交換機 (PBX) や交換局にメッセージを送るためのものです。

isic(4) ドライバが、 新しく Compaq Microcom 610 ISDN ISA PnP カードに対応しました。

## 2.2. セキュリティ関連の修正

FreeBSD 4.4-RELEASE では、 バグによるセキュリティホールを避けるために ユーザごとにある `~/.login.conf` ファイルは 無効になっていましたが、バグが修正されたため、 現在はこの機能が有効になっています。

`UseLogin yes` が設定されている場合、 ユーザが高い権限で任意のコードを実行できてしまうという OpenSSH にあったセキュリティホールへの対応が行なわれました。 ちなみに、この設定項目の標準値は `UseLogin no` です (セキュリティ勧告 FreeBSD-SA-01:63 参照)。

pkg_add(1) が安全でない一時ディレクトリを使用していたことにより、 ローカルの攻撃者がインストール中のバイナリパッケージの内容を 改ざんできる可能性があったセキュリティホールへの対応が行なわれました (セキュリティ勧告 FreeBSD-SA-02:01 参照)。

pw(8) において、`/etc/master.passwd` 漏洩の危険性があった競合状態を解決するための対応が行なわれました (セキュリティ勧告 FreeBSD-SA-02:02 参照)。

k5su(8) において、 あるプロセスが一度放棄したスーパユーザ権限を再び得ることができる可能性のあるバグが修正されました (セキュリティ勧告 FreeBSD-SA-02:07 参照)。

exec(3) システムコールに含まれていた、 ローカルユーザが不正に高い権限を得ることができる可能性のある競合状態が修正されました (セキュリティ勧告 FreeBSD-SA-02:08 参照)。

## 2.3. ユーザランドの変更点

arp(8) が、各 ARP エントリに対応するインターフェイス名を表示するようになりました。

インストールフロッピに簡易版の camcontrol(8) が含まれるようになりました。(たとえば ``緊急のホログラフィックシェル'' から) これを使い、 起動後にデバイスを再スキャンしたり、SCSI バスに接続されたデバイスを表示したりすることが可能です。 またこれにはもう一つ、Adaptec APA-1460 のような aic(4) ベースの PCMCIA SCSI アダプタに接続されたデバイスを、 インストール中にアタッチして使うことができるようになるという利点もあります。

cat(1) が新しく UNIX ドメインソケットの読み出しに対応しました。

`compat4x` 互換機能の配布に 含まれる `libcrypto.so.1` と `libssl.so.1` が、`librsaUSA.so` および `librsaINTL.so` ライブラリに依存しないものになりました。この変更により、 FreeBSD 4.1-RELEASE 以前の FreeBSD 向けに構築されたバイナリに対する互換性が向上しています。

edquota(8) に新しいオプション `-f` が追加されました。これは (`-p` で指定された) quota プロトタイプの適用される範囲を、 ある一つのファイルシステムに制限するためのものです。

find(1) のオプション `-[acm]time` において、 さまざまな時間単位が使えるようになりました。

fmt(1) が書き直されました。この書き換えにより、 以前のものに含まれていた多数のバグが修正されています。

ftpd(8) に新しいオプション `-o` および `-O` が追加されました。 前者はすべてのユーザに対して、後者は guest ユーザに対して `RETR` コマンドを無効にします。`-A` オプションと適切なファイル許可属性を組み合わせることで、 アカウントを持たないユーザからのアップロードを受け付ける、 比較的安全な anonymous FTP サーバを構築することが可能です。

groups(1) および whoami(1) のシェルスクリプトが必要なくなりました。 これらの機能は完全に id(1) に統合されています。

ipfw(8) は、 標準で動的なファイアウォールルールを表示しないようになりました。 動的なルールは `-d` オプションを指定すると表示されます。また、`-e` オプションは、 無効になった動的なルールを表示します。

ipfw(8) に新しいファイアウォールルール `limit` が追加されました。 これはアドレス・ペアの間のセション数を制限するためのものです。

keyinfo(1) が Perl スクリプトではなく、C プログラムになりました。

`libfetch` が、FreeBSD -CURRENT に含まれているものと同じになりました。これには、 コールバック認証機能への対応が含まれています。

`libstand` が新しく、bzip2 で圧縮されたファイルが含まれるファイルシステムに対応しました。

X11R6 や他の UNIX 系 OS で使われているものと互換性を向上させるため、locale 名が変更されました。たとえば `en_US.ISO_8859-1` という locale 名は `en_US.ISO8859-1` に変わっています。 後方互換性は `/etc/locale.alias`、 `/etc/man.alias`、`/etc/nls.alias` の各ファイル中のエントリによって実現されます。次の表は locale 名の変更をまとめたものです。

FreeBSD 4.4-RELEASE | FreeBSD 4.5-RELEASE
--- | ---
`ISO_``*` | `ISO``*`
`ru_SU``*` | `ru_RU``*`
`DIS_``*` | `ISO``*``-15`
`*``.ASCII` | `*``.US-ASCII`

lpd(8) の制御ファイルに新しく、`o` という型のプリントファイル動作指定が追加されました。 これは MacOS 10.1 で生成した PostScript ファイルを印刷に対応したものです。

natd(8) に新しいオプション `-log_ipfw_denied` が追加されました。 これはアドレス変換後に ipfw(8) ルールでブロックされたパケットをログに記録します。

netstat(1) に、 統計情報をリセットする新しいオプション `-z` が追加されました。

netstat(1) に、 アドレスを数字で、 ポート番号をシンボルで表示する新しいオプション `-S` が追加されました。

newfs(8) の設定に含まれる 1 グループに対するシリンダ数 (cylinders/group) の標準が、 現在のファイルシステムパラメータに設定可能な最大値に設定されるように なりました。以前はこの標準値が 16 に固定されていましたが、 現在は `-c` オプションで値を設定することが可能になっています。 この変更には、 fsck(8) の性能向上と断片化 (fragmentation) の低減という効果があります。

newfs(8) で新規にファイルシステムを構築する際の ブロックとフラグメント長の標準値が、それぞれ 16384、2048 バイトに変更されました (従来の標準値は 8192、1024 バイト)。 この変更により多少ディスクの利用率が犠牲になるものの、 大抵の場合において性能の向上が期待できます。

newsyslog(8) に bzip2(1) を使ってログファイルを圧縮する機能が追加されました。

新しく行番号フィルタプログラム nl(1) が追加されました。

pciconf(8) に新しいオプション `-v` が追加されました。これは `-l` と共に指定された場合に、 認識されたデバイスのベンダ/デバイス情報を表示します。 標準のベンダ/デバイス情報データベースは `/usr/share/misc/pci_vendors` に置かれています。

ping(8) に新しいオプション `-A` が追加されました。これは、 パケットが失われた時にビープ音が鳴るようにするものです。

route(8) で間接経路を変更する際、変更後の経路が gateway 経路と同じ場合により多くの情報を表示するようになりました。

route(8) が ``net`/`bits`` ではない新しい記法 ``host`/`bits`` に対応しました。 これは netstat(1) と互換性を高めるためのものです。

route(8) が ``プロキシ専用'' の published ARP エントリを作成できるようになりました。

route(8) の `add` コマンドに、新しく `-ifp` 修飾子と `-ifa` 修飾子 が追加されました。

send-pr(1) に新しいオプション `-a` が追加されました。これは障害報告の `Fix:` セクションにファイルを挿入するために使います。

sh(1) において効率を改善するため、`test` が組み込みコマンドとして実装されました。

sysctl(8) に新しいオプション `-e` が追加されました。これは変数名と値の区切りを `:` ではなく `=` にするもので、 sysctl(8) の出力を sysctl(8) に再度入力させるような場合に有用です。

sysinstall(8) に対して、 インストール中に KLD をロードする機能が新しく追加されました。

sysinstall(8) がインストールメディアから実行された場合、`mfsroot` フロッピイメージなどのインストール用ファイルシステムイメージの `/stand/modules` ディレクトリにあるすべてのデバイスドライバが、 自動的にロードされるようになりました。ただし、 そのようにロードされたドライバは カーネルの起動メッセージには現れません。詳しい情報は、 sysinstall(8) のデバッグスクリーンに表示されます。

sysinstall(8) で新規作成されるファイルシステムすべて (ただしルートファイルシステムを除く) において、標準で Soft Updates が有効化されるようになりました。

sysinstall(8) が更新され、パーティションの自動分割 (``auto'') モードにおいて、 各パーティションの大きさがより適切に設定されるようになりました。 また、大きさが自動で設定されたパーティションは、 他のパーティションが削除された際にできる空き領域を自動的に使用するようになっています。

syslogd(8) に新しく (利用可能なすべてのアドレスを使うのではなく) 指定アドレスのみに bind する機能が追加されました。 有効にするには `-b` オプションを使います。

syslogd(8) に新しいオプション `-c` が追加されました。 これは連続して出力される同一内容の行の圧縮を 無効にするためのものです。

従来 vnconfig(8) に `-f` オプションを指定した場合は 16 デバイスまでしか設定することができませんでしたが、 この制限がなくなりました。

wall(1) に新しいオプション `-g` が追加されました。 これは指定されたグループのユーザすべてにメッセージを送ります。

whois(1) に新しいオプション `-c` が追加されました。これは国コードを指定することで、 問い合わせを特定の whois サーバに直接送るようにするためのものです。

### 2.3.1. 寄贈ソフトウェア

FreeBSD と一緒に配布されている IPFilter に、 ipfs(8) プログラムが追加されました。これは NAT エントリおよびステートフルルールの処理用に作成される状態情報をディスクに保存し、 再起動後に復元することを可能にするものです。 起動時に復元するための設定は rc.conf(5) の機能で対応しています。

NTP プログラムスイートがバージョン 4.1.0 に更新されました。

OpenSSH が バージョン 2.9 に更新されました。これには新しい 2 つのプログラム sftp(1) ssh-keyscan(1) が含まれています。また、既存の SSH セションの暗号鍵変更や ssh-agent(1) が新たに DSA 暗号鍵の転送に対応したこと、実験的な SOCKS4 プロキシ機能といった さまざまな改良が ssh(1) に追加されています。

> Note: `/etc/ssh/ssh_config` の標準設定は `Protocol 1,2` のままになっています。FreeBSD -CURRENT の標準設定は `Protocol 2,1` です。

`/etc/master.passwd` に `smmsp` ユーザおよび `mailnull` ユーザが追加されました。sendmail は `confDEF_USER_ID` が設定されていない場合、 セキュリティを確保する目的に標準で `mailnull` というユーザを使用します。 以前のように `mailnull` というユーザが存在しない場合には `daemon` というユーザが使われていました。 この変更により、ファイルや ( `mail/majordomo` のような) プログラムにメールを送信する際に許可属性の問題が起こることがあります。 その場合は、システムの ``*`.mc` 設定ファイルに

        define(`confDEF_USER_ID'、`daemon')

という行を追加すると、 以前と同じ動作に設定することが可能です。

smbfs ユーザランドユーティリティのバージョン 1.4.3 が統合されました。 smbutil(1) および mount_smbfs(8) はベースシステムに含まれており、 `net/smbfs` の port を使う必要はなくなっています。 mount_smbfs(8) は、 たとえ `LIBMCHAIN` および `LIBICONV` がカーネルに組み込まれていなくとも、自動的に `smbfs.ko` モジュールをカーネルにロードすることに注意してください。

tcsh がバージョン 6.11 に更新されました。

タイムゾーンデータベースが `tzdata2001d` リリースのものに更新されました。

#### 2.3.1.1. CVS

CVS がバージョン 1.11.1p1 に更新されました。

cvs(1) に新しいオプション `-T` が追加されました。これはリポジトリから砂場 (sandbox) にある `CVS/Template` ファイルを更新するためのものです。

cvs(1) `diff` に新しいオプション `-j` が追加されました。 これはブランチタグのリビジョンとの比較を実現します。

### 2.3.2. Ports/Packages Collection

認定の作業が遅れているため、FreeBSD 用ネイティブ版 JDK は 4.5-RELEASE のリリース後にまもなく行なわれることになりました。 配布開始のアナウンスは FreeBSD のウェブサイトと FreeBSD announce メーリングリスト `<freebsd-announce@FreeBSD.org>` で行なわれる予定です。

pkg_create(1) に新しく `-b` オプションが追加されました。 これはローカルにインストールされた package から package ファイルを生成します。

pkg_delete(1) に新しく `-r` オプションが追加されました。これは package の再帰的な削除を行ないます。

FreeBSD 4.5-RELEASE のリリースの数日前に XFree86 バージョン 4.2.0 がリリースされましたが、FreeBSD 4.5-RELEASE には XFree86 4.1.0 の package が含まれることになりました。 これは今回のリリースにそれを収録するための試験を行なう時間がなかったためです。 最新の (リリース後の) FreeBSD Ports Collection を用いることで、新しいバージョンの XFree86 をインストールすることが可能です。詳しい手順は FreeBSD ハンドブックの Ports Collection を使うには の章をご覧ください。

# 3. 以前の FreeBSD リリース版からのアップグレード

以前の FreeBSD リリース版からのアップグレードを行なうには、主に次の 3 つの方法があります。

- sysinstall(8) のバイナリアップグレード機能を使う方法。 おそらくこの方法が最も時間のかからない方法なのですが、 これは FreeBSD のインストール時に 特別なコンパイルオプションを指定していないことを前提としています。

- FreeBSD を完全に再インストールする方法。 技術的にはアップグレード手段の一つとは言えませんし、`/etc` の内容を手動で退避・復元したりする必要があるなど、 大抵の場合はバイナリアップグレード機能を使うより手間がかかります。 しかし、ディスクのパーティション分割を変更したい (とか、 変更しなければならない) 場合などには便利な方法でしょう。

- `/usr/src` のソースコードから構築する方法。 この手段は非常に柔軟な対応が可能ですが、 ディスク空間と時間、 そして専門的なノウハウを必要とします。また、 非常に古いバージョンの FreeBSD からのアップグレードは問題が発生することが多いため、 そのような場合にはバイナリアップグレード、 もしくは完全な再インストールを行なった方が効果的でしょう。

なるべくアップグレードを始める前に詳細について `INSTALL.TXT` をご覧ください。 ソースからアップグレードする場合は `/usr/src/UPDATING` にも目を通す必要があります。

最後になりますが、FreeBSD の -STABLE もしくは -CURRENT ブランチを追いかけるために用意された手段の一つをとりたいと考えているなら、 FreeBSD ハンドブックの ``-CURRENT vs. -STABLE'' の節をご覧になるようお願いします。

> Important: もちろん言うまでもないことですが、 FreeBSD のアップグレードは、データと設定ファイルを すべて退避させた後に行なうべきです。

このファイルの他、リリース関連の文書は ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/ からダウンロードできます。

FreeBSD に関するお問い合わせは、 <questions@FreeBSD.org> へ質問を投稿する前に解説文書をお読みください。

FreeBSD 4-STABLE をお使いの方は、ぜひ <stable@FreeBSD.org> メーリングリストに参加ください。

この文書の原文に関するお問い合わせは <doc@FreeBSD.org> まで、
日本語訳に関するお問い合わせは、<doc-jp@jp.FreeBSD.org> まで電子メールでお願いします。