Copyright © 2000, 2001, 2002, 2003, 2004, 2005 The FreeBSD Documentation Project
$FreeBSD: src/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml,v
1.883.2.7.2.1 2005/10/21 16:01:46 yar Exp $
FreeBSD は FreeBSD Foundation の登録商標です.
IBM, AIX, EtherJet, Netfinity, OS/2, PowerPC, PS/2, S/390, ThinkPad は International Business Machines Corporation の米国及びその他の国における商標です.
IEEE, POSIX, and 802 は 米国 Institute of Electrical and Electronics Engineers, Inc. の登録商標です.
Intel, Celeron, EtherExpress, i386, i486, Itanium, Pentium, Xeon は米国 Intel Corporation やその関連会社の米国及びその他の国における商標や登録商標です.
Sparc, Sparc64, SPARCEngine, UltraSPARC は SPARC International, Inc の米国及びその他の 国における商標です. SPARC の商標を持つ製品は Sun Microsystems, Inc. が開発したアーキテクチャ に基づいています.
多くの開発元や販売元は製品名などが商標や著作物であることを主張しています. FreeBSD プロジェクト では、それらを明示するため “™” や “©” シンボルを 使用しています.
このドキュメントは NEC PC-98x1 プラットフォームで動作する FreeBSD 6.0-RELEASE のリリース ノートです. ここでは最近 FreeBSD に付け加えられたり修正あるいは削除された機能について記します. また以前の FreeBSD からの移行方法についても触れます.
この FreeBSD 6.0-RELEASE はリリース版です. ftp://ftp.FreeBSD.org/ や多数のミラーサイトに置いてあります. 配布物の詳細や他のバージョンに関する情報は FreeBSD Handbook の “Obtaining FreeBSD” appendix に掲載されています.
FreeBSD をインストールしたら、どんなユーザであっても必ずセキュリティ勧告に目を通してください. erratta に関してはリリースされた後も何か問題が見つかり次第 "随時" 情報が更新されます. 特に大事なのは, 既知の不具合やセキュリティ勧告, ドキュメントの修正といったものが含まれます. 最新の FreeBSD 6.0-RELEASE の errata については FreeBSD Web site でも公開しています.
この節では 5.4-RELEASE から見て最も特徴的な新機能や変更点について述べます. ここで述べる変更点は、[MERGED] と注をつけた物以外 6-STABLE 特有の事項です. (訳注:[MERGED] とあるのは MFC (Merge From Current) で 6-CURRENT から反映された変更点です.)
普通リリースノートということでいえば、5.4-RELEASE 以後のセキュリティ勧告から始まり, 新しいドライバやハードウェアのサポート, コマンド, オプション, 重要なバグ修正などを書き 並べ, さらには主要な ports/packages やリリースエンジニアリングについてもリストアップするわけですが, そんなものを全部書き出すのは明らかに無理があるので, ここではセキュリティ勧告の問題と, ユーザにすぐ分かる変更点や, 主なアーキテクチャ上の改善などを中心に述べます.
fetch(1) コマンドで, 細工された HTTP server とのやり取りでメモリを破損される問題がありましたが修正されました. 詳細はFreeBSD-SA-04:16.fetch を確認してください. [MERGED]
procfs(5) と linprocfs(5) で, ローカルユーザにカーネルメモリの一部が漏えいしたり, カーネルパニックを誘発する問題がありましたが修正されました. 詳細は FreeBSD-SA-04:17.procfs を確認してください. [MERGED]
TELNET クライアントの不具合で, 細工された TELNET との通信を行うと telnet(1) でバッファオーバーランが発生し, 実行者の権限で任意のコードを実行される問題が 2 つありましたが修正されました. 詳細は FreeBSD-SA-05:01.telnet を確認してください. [MERGED]
sendfile(2) システムコールで, カーネルメモリのランダムな一部分が漏えいする脆弱性がありましたが修正されました. 詳細は FreeBSD-SA-05:02.sendfile を確認してください. [MERGED]
SIOCGIFCONF ioctl(2) でカーネルメモリの 12 バイト分が漏えいする問題がありましたが修正されました. 詳細は FreeBSD-SA-05:04.ifconf を確認してください. [MERGED]
cvs(1) にバグがあり CVS サーバ上で任意のコードを実行される問題がありましたが修正されました. 詳細は FreeBSD-SA-05:05.cvs を確認してください. [MERGED]
/dev/iir デバイスノードに与えられたデフォルトのパーミッションが不適切なため、権限のないローカルの攻撃者が iir(4) ドライバにコマンドを送って操作できてしまう問題がありましたが修正されました. 詳細は FreeBSD-SA-05:06.iir を確認してください. [MERGED]
i386_get_ldt(2) システムコールの引数チェックに不備があり, ユーザのプロセスからカーネルメモリが見えてしまう問題がありましたが修正されました. 詳細は FreeBSD-SA-05:07.ldt を確認してください. [MERGED]
複数の処理でカーネルメモリの一部が漏えいする問題がありましたが修正されました. 詳細は FreeBSD-SA-05:08.kmem を確認してください. [MERGED]
tcpdump(1) でバグがあり, 細工されたパケットにより DoS 攻撃を受ける問題がありましたが修正されました. 詳細は FreeBSD-SA-05:10.tcpdump を確認してください. [MERGED]
gzip(1) に2つの脆弱性があり, ファイルを展開する際ローカルの攻撃者から任意のファイルのパーミッションを変更したり上書きされる問題がありましたが修正されました. 詳細は FreeBSD-SA-05:11.gzip を確認してください. [MERGED]
BIND 9 の DNSSEC が修正されました. これは DNSSEC が有効になっていると細工されたパケットによって named(8) が強制終了してしまう問題です. 詳細は FreeBSD-SA-05:12.bind9 を確認してください. [MERGED]
ipfw(4) で正しくパターンに照合できない問題がありましたが修正されました. ただしこの問題は SMP 構成のマシンか、UP で カーネルオプションPREEMPTION を有効にしている場合のみ発生します. 詳細は FreeBSD-SA-05:13.ipfw を確認してください. [MERGED]
bzip2(1) で2つのセキュリティ問題が修正されました. これは DoS 攻撃を受けたり不正にパーミッションを操作される恐れがあります. 詳細は FreeBSD-SA-05:14.bzip2 を確認してください. [MERGED]
FreeBSD の TCP スタックが修正されました. これはすでに確立した TCP コネクションを中止させ DoS 攻撃につながる問題があります. 詳細は FreeBSD-SA-05:15.tcp を確認してください. [MERGED]
カーネルデバッガ ddb(4) が show alllocks コマンドをサポートしました. これは sleep mutex(と 現在のスレッドの spin mutex) を持つプロセスやスレッドの一覧を表示します. [MERGED]
カーネルのクラッシュダンプの形式が ELF 形式に変更になりました. これは 4GB 以上のメモリ空間をサポートするためです.
ichsmb(4) ドライバがカーネルモジュールとして利用可能になりました.
jail(8) で新しい sysctl であるsecurity.jail.chflags_allowed
がサポートされました. これは jail 内で
chflags(1)
の動きをコントロールすることができます. もし 0 (デフォルト値) に設定してあれば, jail の中の root は特権を持たない(訳注:フラグを変更できない)ことになります; もし 1 であれば, jail の中の root は通常の root と同じく特権を持つことになります. [MERGED]
sysctl の security.jail.getfsstatroot_only
は
security.jail.enforce_statfs
に名称変更になり, 以下のような機能を持たせます:
値 | 設定 |
---|---|
0 | 制限をかけずにすべてのマウントポイントを表示します. |
1 | jail で chroot されている内部のマウントポイントと, そのマウントポイントの(訳注: chroot されたトップディレクトリからの)path のみを表示します. (例えば, jail の chroot ディレクトリが /jails/foo で マウントポイントが /jails/foo/usr/home だとすると, /usr/home とだけ表示されます). |
2 | jail の chroot ディレクトリが置かれているマウントポイントだけ表示します. |
カーネルメモリを割り当てする際, “tamper-after-free” を発見するために memguard(9) が追加されました. 明示的に有効にする場合には options DEBUG_MEMGUARD を使ってカーネルに些細な修正を入れることになります. まあこれを使うのはカーネル開発者が中心でしょうけど.
struct ifnet
と ネットワークインタフェースの API が変更になりました.
ABI (訳注 Application Binary Interface. 同一アーキテクチャ上のバイナリ互換性を維持するための仕様) 非互換のため, FreeBSD のベースシステムに含まれていないドライバは新しいAPIを使うためにはアップグレードし, 再コンパイルする必要があります.
カーネルスケジューラの ULE で多数の修正を行いました. [MERGED]
VFS スタックに対するロックを Giant Lock ではなく Fine-Grained(訳注:細粒度の高い)Lock を使えるようにしました. alpha, amd64, i386 アーキテクチャではデフォルトで有効で, 無効にしたい場合には loader や sysctl 変数で debug.mpsafevfs
を 0 にすればよいでしょう.
System V 互換の IPC (メッセージキュー, セマフォ, 共有メモリ) で強制アクセスコントロールをサポートしました. 特に以下のカーネルインタフェースが追加されています mac_biba(4), mac_mls(4), mac_stub(4), mac_test(4).
sysctl(3) の MIB で “debug” で始まるものは カーネルオプションoptions SYSCTL_DEBUG がないと使えなくなりました. このカーネルオプションはデフォルトで無効です.
tty(4) ドライバでインタフェースが更新されました. 以下の機能が追加されています:cx(4) ({tty,cua}x), cy(4) ({tty,cua}c), digi(4) ({tty,cua}D), rc(4) ({tty,cua}m), rp(4) ({tty,cua}R), sab(4) ({tty,cua}z), si(4) ({tty,cua}A), sio(4) ({tty,cua}d), sx ({tty,cua}G), uart(4) ({tty,cua}u), ubser(4) ({tty,cua}y), ucom(4) ({tty,cua}U), ucycom(4) ({tty,cua}y) . /etc/remote と /etc/ttys も更新されているので注意してください.
vkbd(4) ドライバが追加されました. これは、 pty(4) ドライバがターミナルに対して行う動作と同様の仮想ATキーボードを実装するため, ループバック機能を提供しています.
シェルコマンドの最大長が 128 バイトから PAGE_SIZE
で指定したサイズに変更になりました. デフォルトでは 4KB (i386, pc98, amd64, and powerpc) または 8KB (sparc64 and ia64) になっています. このため, カーネルのデータ構造の変更に対する互換性維持のためのモジュールが必要です.
チューニング可能なパラメータ vm.blacklist
が追加されました. 物理アドレスをスペース区切りかカンマ区切りにして指定することができます. 指定された物理アドレスを含むページは free list には追加されませんので, 実質的には FreeBSD VM system は無視することになります. 無視されているアドレスブロックはメッセージバッファとしてもリストされます.
autoboot ローダコマンドがプロンプトパラメータを受け取るようになりました.
autoboot_delay
変数が -1 にセットされている場合, autoboot ローダコマンドはユーザがブートプロセスを中止しようとしても一切受け付けなくなります. [MERGED]
パラメータ hint.atkbd.0.flags=0x1
をセットするためのローダのメニューが追加されました. PS/2 キーボードが繋がっていなくても USB キーボードで操作できます.
でーもんくんの boot menu はデフォルトで無効になりました.
atkbdc(4), atkbd(4), psm(4) ドライバがより bus-independant に新しく書き直され, sparc64 プラットフォームの EBus をサポートするようになりました.
プロセッサの処理速度を柔軟に変更できるようなフレームワークが追加されました. プロセッサスピードを調整し, CPU 処理能力をドライバから制御できるようになります.
詳細については
cpufreq(4)
の man ページを見てください. [MERGED] 現在サポートされているドライバは ichss (Intel SpeedStep for
ICH), acpi_perf (ACPI CPU performance states), acpi_throttle (ACPI CPU throttling) の3種類です.
3つのうち後ろの2つは
acpi(4) ドライバの機能に含まれます.
これらは device hints を hint.ichss.0.disabled="1"
のように設定すれば個々に無効に設定できます.
VIA C3 プロセッサの PadLock Security Co-processor のサポートが crypto(9) サブシステムに追加されました.
hwpmc(4) ハードウェアパフォーマンス測定ドライバが追加されました. 今時の CPU を使用した際の能力を仮想化し, userland から利用しやすくするためのものです. 詳細については hwpmc(4) や関連するライブラリ, ユーザランドの man ページを見てください.
pcii ドライバが GPIB-PCIIA IEEE-488 対応カードをサポートするようになりました. [MERGED]
atkbd(4) ドライバに 0x8 (bit 3) flag がセットできるようになりました. これは特に amd64 プラットフォームの Compaq R3000Z シリーズのような機種で, デバイスをプローブする際キーボードポートをテストしようとしてハングアップに陥るのを防ぐのに効果があります.
psm(4) ドライバの Synaptics Touchpad のサポートが改良されました. ゆっくりした動きの処理の改善といくつもの追加で設けられているボタンやダイヤルがサポートされています. この機能は sysctl 変数の hw.psm.synaptics.*
のあたりで調整できます.
uftdi(4) ドライバが FTDI FT2232C チップをサポートするようになりました.
uplcom(4) ドライバが CTS シグナルを扱えるようになりました.
ehci(4) ドライバに改良が加えられました.
snd_csa(4) ドライバがサスペンド・レジュームに対応するようになりました.
uaudio(4) ドライバに機能追加を行い, いくつかの機器で入力や録音のボリュームコントロールなどができるようになりました. [MERGED]
ath(4) ドライバが更新され, 伝送率決定のアルゴリズムをモジュールに分離しました. ath(4) を使う際には, 以下の少なくとも1つがカーネルで定義されている必要があります: device ath_rate_onoe, device ath_rate_amrr, device ath_rate_sample
bge(4) ドライバで altq(4) フレームワークをサポートします. 同様に BCM5714, 5721, 5750, 5751, 5751M, 5789 チップもサポートします. [MERGED]
cdce(4) ドライバが追加されました. USB Communication Device Class Ethernet をサポートします. [MERGED]
cp(4) ドライバが MPSAFE になりました. [MERGED]
ctau(4) ドライバが MPSAFE になりました. [MERGED]
cx(4) ドライバが MPSAFE になりました. [MERGED]
dc(4) ドライバが altq(4) フレームワークをサポートし MPSAFE になりました. [MERGED]
de(4) ドライバが MPSAFE になりました.
ed(4) ドライバが altq(4) フレームワークをサポートしました. [MERGED]
ed(4) ドライバが MPSAFE になりました.
em(4) ドライバのうち, ハードウェアでのタグ VLAN サポートが promiscuous mode での動作と干渉するためデフォルトで無効になりました. [MERGED]
fxp(4) ドライバでの Ethernet フロー制御はデフォルトで無効になりました. これはカーネルデバッガ使用時やシステムがpanicしたときに同じサブネットで問題が起きないようにするためです. [MERGED]
gx(4) ドライバはもはや手入れされていないのと em(4) ドライバで事足りるため削除されました.
hme(4) ドライバが MPSAFE になりました. [MERGED]
ipw(4) (Intel PRO/Wireless 2100 用), iwi(4) (Intel PRO/Wireless 2200BG/2225BG/2915ABG 用), ral(4) (Ralink Technology RT2500 用), ural(4) (Ralink Technology RT2500USB 用) の各ドライバが追加されました.
ixgb(4) ドライバが MPSAFE になりました. [MERGED]
musycc (the LanMedia LMC1504 T1/E1 用) ドライバはもはや使われていないため削除されました.
my(4) ドライバが MPSAFE になりました.
pcn(4) ドライバが MPSAFE になりました.
re(4) ドライバが altq(4) フレームワークをサポートしました. [MERGED]
sf(4) ドライバはデバイスのポーリングと altq(4) フレームワークをサポートし, MPSAFE になりました. [MERGED]
sk(4) でいくつかバグ修正が行われました. これは特に SMP 環境でカーネルパニックを誘発したり, DoS 攻撃につながる恐れがあります. 詳細は以下の errata note FreeBSD-EN-05:02.sk を参照してください. [MERGED]
sk(4) ドライバが altq(4) フレームワークをサポートしました. また Yukon ベースのカードで jumbo frame の送受信もサポートしました. [MERGED]
ste(4) ドライバが altq(4) フレームワークをサポートしました.
vge(4) ドライバがデバイスポーリングをサポートしました ( polling(4)).
wlan(4) ドライバによる 802.11 無線 LAN デバイスのサポートは大幅に更新されました. この変更に伴って 802.11g, WPA, 802.11i, 802.1x, WME/WMM, AP-side power-saving と暗号化モジュールやアクセス制御のサポートも組み込まれました. 特に注意が必要なのは WEP を利用するには wlan_wep カーネルモジュールをロードするか, カーネルをコンパイルする際に有効にしておく必要があります.
xl(4) ドライバが supports polling(4) をサポートしました. [MERGED]
IPv6 環境での MTU フィードバックは送信者側で分割されているデータについては無効になります. [MERGED]
Common Address Redundancy Protocol (CARP) が実装されました. CARP は OpenBSD 由来で複数のホストにおいて同じ IP アドレスを利用するための仕組みで, 高可用性と負荷分散に寄与します. 詳細は carp(4) man ページを参照してください. [MERGED]
NetBSD 由来のネットワークブリッジ機能 if_bridge(4) が追加されました. IEEE 802.1D Spanning Tree Protocol をサポートし, ブリッジごとに個々のデバイスを割り当ててブリッジの流れるパケットのフィルタリングが可能です. ifconfig(8) コマンドで if_bridge(4) の設定ができます.
ipfw(4) の IPDIVERT オプションに相当する機能がカーネルモジュールとして動作するようになりました. もしこのモジュールが読み込まれていないと, ipfw(4) では divert のルールを設定できませんし natd(8) も “protocol not supported” というエラーメッセージを返します.
ipfw(4) は, gid, jail, uid ルールが設定されている場合 debug.mpsafenet
=1 (この変数はデフォルトで 1 に設定されています) とすれば動作します. [MERGED]
ipfw(4) と dummynet(4) が IPv6 をサポートするようになりました.
ipfw(8) は divert ソケットから受け取った altq(4) によるパケットの分類とタグ付けをサポートしました. TCP パケットのペイロードの大きさを利用したルールを記述することもできます.
ipfw(8) は ipfw fwd のルールでパケットの行き先を完全に制御することができます. それにはカーネルオプションのoptions IPFIREWALL_FORWARD_EXTENDED と options IPFIRWALL_FORWARD の指定が必要です. この機能を有効にするとローカルで生成されたパケットの制約をすべて取り除き, パケットをあらかじめ設定した IP アドレスへ全部転送することができます. ただし, ipfw(8) のルールを設定する際には PathMTU Discovery などでトラブルが起きないように注意が必要です. [MERGED]
ipfw(8) は IPv4 のみのルールをサポートします.
ipnat(8) は 非 TCP/UDP パケットを転送するルールを記述できるようになりました. [MERGED]
引き続きプロトコルスタック内での Giant Lock の使用を減らし, ロック戦略の見直しをして性能の改善を行っています.
libalias ライブラリがカーネルモジュールとして利用可能になりました.
インタフェースの状態変化が /dev/devctl に通知されるようになりました.
ng_ipfw(4) NetGraph ノードを使って ipfw(4) と netgraph(4) のインタフェースを取ることができるようになりました.
ng_nat(4) NetGraph node が NAT をサポートするようになりました.
ng_netflow(4) NetGraph node が追加され, ルータとして動作している際 NetFlow version 5 による統計情報を取ることが可能になりました. [MERGED]
ng_tcpmss(4) NetGraph node が追加されました. これにより TCP パケットの MSS オプションの代わりができます.
sppp(4) ドライバがフレームリレーをサポートしました. [MERGED]
sppp(4) ドライバが MPSAFE になりました.
FreeBSD のルーティングテーブルに経路を登録する際, 同じアドレス体系でゲートウェイを指定する必要があります. route(8) は以下のような異なったアドレス体系の指定を無視します. たとえば以下のようなコマンド引数です:
# route add 10.1.1.1 -inet6 fe80::1%fxp0
新たに sysctl net.link.tap.user_open
変数が実装されました. これはファイルシステムのパーミッションがあれば特権がなくても
tap(4) ノードにアクセスできるようになります.
受信ウインドウが 0 バイトのときに, まれに RST パケットを無視してしまう問題が改善されました. [MERGED]
TCP プロトコルスタックの広範囲に渡って, RST の取り扱いを改善し, reset 攻撃に対する耐性を互換性も維持しつつなるべく高めました. アルゴリズム的には以下のようになります: すでに ESTABLISHED になっている接続は, 正確に last_ack_sent
と一致するシーケンス番号を持つ rst のみリセットします; 他のセグメントは黙って捨てます. それ以外の状態ではウインドウのどこかに rst があればコネクションをリセットします. このとき他のセグメントは黙って捨てます. この挙動は正確に言えば RFC 793 の仕様と整合性が取れなくなります; 従来からの (ただしあまり secure ではない) 方式にあわせるのであれば, 新しい sysctl 変数 net.inet.tcp.insecure_rst
を 1 にセットしてください.
[MERGED]
TCP SACK (Selective Acknowledgements) の実装が改善されました. [MERGED]
RFC 1644 T/TCP のサポートが無効になりました. これは古くてセキュリティ的に問題のあるモデルに基づいて実装されていて, 容易に DoS 攻撃を受けてしまいかねないからです. 今日の Internet Draft においては欠陥があるとされています.
KAME 由来の IPv4 IPsec の実装が TCP-MD5 をサポートしました. [MERGED]
非常に多くのコネクションを受け付けるマシンにおいては, ランダムで一時的に付けられるポート番号を再利用するのに問題があるため, この機能をコネクションが多い間は停止します; 1秒あたり net.inet.ip.portrange.randomcps
回よりも多いコネクションが作成された場合, net.inet.ip.portrange.randomtime
秒経過するまでポート番号の再利用でランダムな番号を割り当てするのをやめます. この sysctl 変数のデフォルト値は net.inet.ip.portrange.randomcps が 10 で, net.inet.ip.portrange.randomtime が 45 になっています. [MERGED]
IPX/SPX プロトコルスタックで, Fine-grained locking が大幅に盛りこまれました. 現時点では MPSAFE とまではいきませんが, IPX/SPX は Giant lock を使わなくても動作します (すなわち, sysctl 変数 debug.mpsafenet
は 1 でも大丈夫です).
Unix ドメインソケットで LOCAL_CREDS と LOCAL_CONNWAIT オプションがサポートされました. LOCAL_CREDS はプロセスの credential を recvmsg(2) コントロールメッセージとして受け取る機構を提供します. LOCAL_CONNWAIT オプションを使うと connect(2) の機能を, listen しているソケットで accept(2) がコールされるまで抑止することができます. 詳細は unix(4) man ページを参照してください.
amr(4) ドライバが pae(4) を使用する環境に対応しました. [MERGED]
ata(4) ドライバ群が大幅に更新されました. ドライバの分割を行ったことにより, (訳注:サブ)ドライバを個々にロード・アンロードできるようになります( atapci と ata モジュールはサブドライバを使用するために先にロードする必要があり, atadisk, atapicd, atapifd, atapist, ataraid の各サブドライバは必要なものだけロードすればよいということです). サポートされている SATA コントローラでは活線挿抜に対応しました. ATA RAID の機能も大幅に書き直されて, 多数の新しい metadata フォーマットに対応しました. The atapicd ドライバの CD チェンジャーはもうサポートされなくなりました. 今回の更新を “ATA mkIII” と呼ぶことにします.
SHSEC GEOM クラスが追加されました. これは複数の GEOM プロバイダ間でパスフレーズを共有するために使います(訳注:ストレージの暗号化のための secret を共有するということのようです). どのプロバイダもパスフレーズを解読の為に使うことができるはずです. この機能は gshsec(8) コマンドで制御できます. [MERGED]
GEOM サブシステムに準拠した新しい暗号化機能 GEOM_ELI が追加されました. これはハードウェアでの暗号化を crypto(9) フレームワークを通じて利用し, 他の暗号化アルゴリズムを利用できるようにします. 詳細は geli(8) man ページを参照してください. [MERGED]
hptmv(4) ドライバが追加になり, HighPoint RocketRAID 182x series がサポートされました. [MERGED]
ips(4) ドライバで ServeRAID の新しい機種を利用する場合, カーネルクラッシュダンプを扱えるようになりました. [MERGED]
matcd(4) ドライバは削除されました. [MERGED]
SCSI カードを持つマシンで GENERIC カーネルで起動する際 15 秒待たされていたのを 5 秒に変更しました.
古い vinum(4) サブシステムは削除されました. これからは新しい geom(4) ベースのものを使ってもらう方がよいと考えているからです.
twa(4) ドライバが 9.2 release にバージョンアップしました. これは FreeBSD 5.2.1 向けに 3ware の website で公開されているものです.
wd(4) ドライバは削除されました. pc98 プラットフォームでも ata(4) で充分動作するので古い older wd(4) ドライバはもはや必要ないためです.
新しくマウントした cd9660 file systems の Rock Ridge 拡張などで記述されたメッセージを表示するのは verbose モードでカーネルを起動した場合だけになりました. これは, あまり必要ないと思われるカーネルメッセージを減らすためです. [MERGED]
“dirty な(訳注: 前回ちゃんと umount されなかった) ” UFS と UFS2 ファイルシステムをマウントする際ファイルシステムのサマリーを再計算していましたが, 今回からはバックグラウンドで
fsck(8) が動作します. これにより, 大きなファイルシステムを持つマシンがクラッシュ後再起動の為に必要な時間が短縮されます. 以前と同様の設定にするには sysctl 変数 vfs.ffs.compute_summary_at_mount
に 0 以外の値を設定してください. [MERGED]
NFS サーバでカーネルパニックが発生する問題を修正しました. 詳細は以下の errata note FreeBSD-EN-05:01.nfs を参照してください. [MERGED]
Read-only ではありますが ReiserFS version 3 のサポートが追加されました. 詳細は mount_reiserfs(8) の man ページを参照してください.
bsdiff(1) と bspatch(1) というバイナリファイルの diff と patch のツールが追加になりました.
burncd(8) ユーティリティ でディスクをクローズした後 eject する機能をサポートしました.
chflags(1)
が, シンボリックリンクのフラグを変更できる -h
フラグをサポートしました.
env(1) コマンドで, 実行前にコマンドを標準エラー出力に吐き出す -v
フラグをサポートしました.
env(1) コマンドで -S string
オプションをサポートしました. これは string をコマンドライン引数として引き渡します.
env(1) コマンドが, コマンドを探すためのパスを指定する -P altpath
オプションをサポートしました.
ftpd(8) は, ディレクトリやファイルのステータスを示すのに 212 や 213 というステータスコードを返すようになりました (これまでは 211 が使われていました). これは RFC 959 の記述に従ったものです. [MERGED]
gpt(8) ユーティリティの create コマンドで, MBR レコードがディスク上にあっても GPT (訳注: GUID Partition Table) を強制的に作成する -f
フラグをサポートしました. [MERGED]
getaddrinfo(3) は AF_UNSPEC が指定されている場合には DNS の AAAA より前に A レコードが返ってくる必要があります. いくつかの不適切な DNS サーバでは存在しない AAAA レコードのクエリに対してNXDOMAIN を返しますが, 本来は空のリターンレコードとともに NOERROR を返すべきです. IPv4/IPv6 デュアルスタック環境ですと, AAAA レコードの最初のクエリーで NXDOMAIN が返ると, もし A レコードがあったとしてもそれを解決しようとするのをやめてしまい, トラブルの元になります. また, この挙動は潜在的に DoS 攻撃を許す恐れがあります (詳細は http://www.kb.cert.org/vuls/id/714121 に掲載されています). ただしクエリの順番が変更されても, 以前と同様に AF_INET レコードの前に AF_INET6 レコードが返ってくることに注意しておいてください. [MERGED]
gethostbyname(3), gethostbyname2(3), gethostbyaddr(3) の関数が thread-safe になりました. [MERGED]
getnetent(3), getnetbyname(3), getnetbyaddr(3) の関数が thread-safe になりました. [MERGED]
getprotoent(3), getprotobyname(3), getprotobynumber(3) の関数が thread-safe になりました. [MERGED]
getservent(3), getservbyname(3), getservbyport(3) の関数が thread-safe になりました. [MERGED]
IEEE Std 1003.1-2001 (POSIX 2001としても有名) のデータ構造にあわせ, struct netent
構造体のメンバ n_net
と
getnetbyaddr(3)
第一引数の型が uint32_t に変更になりました. この影響で 64bit 環境の ABI に以前のリリースとの非互換の問題が発生し, libpcap 共有ライブラリのメジャーバージョンががつんと上がりました.
64bit 環境で古い FreeBSD からアップグレードする場合,
that use
getnetbyaddr(3),
getnetbyname(3),
getnetent(3),
や libpcap を使うアプリケーションは再コンパイルする必要があります.
gvinum(8) は checkparity, rebuildparity, setstate の 3 つのサブコマンドを実装しました. [MERGED]
ifconfig(8) コマンドが再構成されました. これはインタフェース特有の設定を柔軟に設定できるようにするためです. 802.11(訳注: 無線LAN)機能もサブドライバなどの更新に伴って変更されています.
ifconfig(8)
で新しく -tunnel
パラメータがサポートされました. これは deletetunnel
の alias ですが少しはミスタイプも減ることでしょう.
ifconfig(8) の -vlandev
パラメータには引数としてインタフェースを指定する必要がなくなりました. 互換性の為に指定することもできますがそのうち廃止になるので使わないようにしましょう.
ipfw(8) のオプションに指定できた多くの短縮形オプションが廃止になりました. 短縮形オプションを発見次第標準出力に本来のオプションを出力して注意をうながします.
kldstat(8)
コマンドで, 特定のカーネルモジュールの状況を返す -m
オプションがサポートされました. [MERGED]
ディスク上にある LC_CTYPE ファイルの形式が機種依存しないものに変更になりました.
amd64 と i386 プラットフォームで libkvm ライブラリが ELF 形式のクラッシュダンプを扱えるようになりました. これで 32bit 環境では 4GB 以上のものや PAE のクラッシュダンプを扱えます.
mixer(8) ユーティリティに -S
オプションが追加されました. これは -s
オプションと基本的には同じですが mixing field separator を出力しません.
natd(8) で -reverse
オプションが指定されている場合, libalias が core dump を吐いて止まってしまう問題を修正しました.
libarchive ライブラリ (というより tar(1) が使っているといった方が分かりやすいか) で ISO images (RockRidge 拡張) と ZIP 形式のファイル (deflate モードと none compression モード) を扱えるようになりました. [MERGED]
libarchive ライブラリは 4GB 以上のアーカイブ (ZIP64 extension) や Unix extension .をサポートしました.
libgpib ライブラリが追加されました. これは ibfoo
API 経由でユーザランドから GPIB デバイスが操作できるようにするためです. [MERGED]
libpthread, libthr, libc_r ライブラリのスタックサイズを増やしました. 32-bit 環境ではメインスレッドがデフォルトで 2MB 割り当てられ, 他のスレッドは 1MB です. 64-bit 環境ではそれぞれ 4MB と 2MB になります. [MERGED]
libxpg4 はもうずっと前に libc に統合されていることですし削除されました. libxpg4 ライブラリをリンクしているバイナリは再コンパイルするか, libmap.conf(5) を利用して対応してください. FreeBSD のベースシステムではこれに該当するものはもうありません.
lpd(8) はリモートからの印刷要求がきたときには, 実際に印刷を始める前にちゃんとデータが届いているか確認するようになりました. 一部の lpr(1) が実際の印刷データの前にそのジョブのコントロールファイルを送るという実装のものがあるようですが, lpd を実行しているマシンがもし頻繁に印刷要求がくる忙しいサーバである場合問題が起きるかもしれません. [MERGED]
math(3) ライブラリに, ceill(3), floorl(3), ilogbl(3), fma(3) などや, lrint(3) などや, lround(3) などの, かなりたくさんの新機能が盛りこまれました. [MERGED]
FreeBSD 5.0 以降, デバイスノードは devfs(5) で管理することになったので, mknod(8) は廃止になりました.
moused(8) デーモンが “virtual scrolling” をサポートしました. これは中央ボタンを押したままマウスを前後に動かすと画面が上下にスクロールします. この機能を利用するには -V
フラグを指定します. [MERGED]
named(8) の dynamic zone用に bind ユーザが所有者になっている特別のディレクトリを用意しました. 詳細は named.conf(5) man page の dynamic zone のサンプルを見てください. [MERGED]
ncal(1) ユーティリティに, 今年のうちの特定月を表示させる -m
フラグを追加しました. [MERGED]
newfs(8) コマンドに .snap directory を作成しないようにする -n
フラグを追加しました. メモリファイルシステムや vnode を使ったファイルシステムなどでは snapshot が不要な場合もあるからです. [MERGED]
newfs(8) は snapshot が動かないような UFS/UFS2 ファイルシステムを新規作成する場合, 警告を出すようになりました. たとえば非常に大きなファイルシステムなのにブロックサイズが非常に小さい場合などが該当します. [MERGED]
newsyslog(8)
ユーティリティで, ログファイルについて BSD make プロセスの DESTDIR
のような代替rootを指定する -d
オプションが追加されました.
これはログファイルの path にのみ意味を持ち, 設定ファイル (-f
) やアーカイブを置くディレクトリ (-a
) の path には影響しません.
newsyslog(8)
ユーティリティで, 一切ファイルをローテーションしない -N
オプションが追加になりました.
ユーザランド向けにコンパイル時のオプション NO_NIS が追加されました. 名前が示すとおり, この Makefile 変数が有効になることでいろんなプログラムの NIS サポートを削ることができm NIS 関係のユーティリティが buid されなくなります. [MERGED]
ここしばらくのFreeBSD では NOFOO
や NO_FOO
といった形の Makefile 変数を使ってきました. これでは一貫性がないので, 今後は NO_FOO
という形式に変更していきます. 変数のリストは /usr/share/mk/bsd.compat.mk にあります;
しばらくの間は旧の名前も互換性維持の為残しておきます.
periodic(8) が出力する内容に, pf(4) で弾かれたパケットの情報を追加しました. [MERGED]
pgrep(1) コマンドで, システムプロセス(カーネルスレッド)を指定する -S
オプションが追加されました.
pgrep(1) と
pkill(1)
コマンドで, PID が含まれるファイルを指定する -F
オプションが追加されました.
pgrep(1) と
pkill(1)
コマンドで, 指定したプロセスを無視する -i
オプションが追加されました.
pgrep(1) と
pkill(1)
コマンドで,
jail(2) ID に合致するものを指定する -j
オプションが追加されました.
pgrep(1) と
pkill(1)
コマンドで, 最も早く起動した(最も長い間動作している)プロセスを指定する-o
オプションが追加されました.
portsnap(8) ユーティリティが追加されました. FreeBSD ports tree のスナップショットをダウンロードして更新し展開することができます.
省電力機能を提供する powerd(8) が追加されました.
ppp(8) で echo
パラメータをサポートしました. これは LQR (訳注: Link Quority Report) の内容とは別に LCP ECHOs が使用できるようになったためです.
ppp(8) の古いバージョンではネゴシエーションに失敗すると LCP ECHO になりました. 以前と同じ挙動にするには enable echo と設定します. [MERGED]
ppp(8) に pre-RFC 2865 をサポートするため RADIUS の関連の機能として disable NAS-IP-Address
と disable NAS-Identifier
オプションをサポートしました.
pppd(8) で 2 つのバグ修正が行われました. これまでは Microsoft PPP Callback Control Protocol section 3.2 の仕様に違反した CBCP response を返していました. [MERGED]
ps(1) ユーティリティの -o
オプションで jid キーワードをサポートしました. これを使えばそれぞれのプロセスの
jail(2) ID を表示するようになります.
pstat(8) で -h
オプションをサポートしました. これはスワップファイルのサイズを表示する単位として, SI 単位形の頭文字 K, M, G, を指定できます.
/rescue ディレクトリにある rescue(8) ユーティリティには GNU tar に代わって bsdtar(1) が入りました.
restore(8) ユーティリティは FreeBSD version 1 のころの dump イメージを再び扱えるようになりました. [MERGED]
rexecd(8)
ユーティリティで, 暗黙の内に -i
が指定されているかのような動作になっていたのを修正しました. [MERGED]
rexecd(8) ユーティリティは削除されました. FreeBSD のツリーには rexec のクライアントはなく, rexec(3) のクライアント機能は libcompat にだけ残されています.
The rm(1) ユーティリティに -I
オプションが追加されました. これは再帰的にディレクトリを消す場合や 3 つ以上のファイルを消すようコマンドラインから指定された場合に確認メッセージを出します.
[MERGED]
rm(1) ユーティリティは, -r
と -f
オプションが指定された時, 存在しないディレクトリのチェックを省略するようになりました. これは Version 3 of the Single UNIX Specification (SUSv3) で規定された動作です.
次の ISO/IEC 9899:1999 規格で決められた機能が実装されました: roundl()
, lroundl()
, llroundl()
, truncl()
, floorl()
.
rpmatch(3) ライブラリは, 現在のロケールで肯定的な応答なのか否定的な応答なのか文字列をチェックするようになりました.
rtld(1) という動的なリンカが追加になりました. これは環境変数 LD_LIBMAP
に登録された内容によりライブラリのリストを置き換えるものです. この変数の定義は
libmap.conf(5) の内容を上書きします.
[MERGED]
rune(3) の 標準的でないマルチバイト文字のサポートが廃止になりました.
sed(1) コマンドで出力を行単位でバッファリングする -l
オプションがサポートされました.
[MERGED]
strftime(3) 関数が 以下の GNU 拡張をサポートしました; - (no padding), _ (use space as padding), 0 (zero padding). [MERGED]
syslog(3) は thread-safe になりました. [MERGED]
syslogd(8) ユーティリティは追加の unix ドメインソケット (/var/run/logpriv by default) を以前は特権で開いていましたがモード 0600 で開くようになりました. これでドメインソケットがディスクの容量を使いつくしてしまうローカル DoS 攻撃に繋がるようなシナリオを防ぐことができます. [MERGED]
syslogd(8) に -S
オプションが追加になりました. これは, 特権を持つソケットの path 名を変更します. これはデーモンがローカルソケットからどんなメッセージも読めなくするのに効果があります. (/var/run/log と /var/run/logpriv がデフォルトで使用されています). [MERGED]
syslogd(8) でホスト名を指定するのに : 文字と % 文字を使うことができるようになります. これは IPv6 のアドレスやスコープで使用されます. [MERGED]
systat(1) -netstat
コマンドは IPv6 に対応しました. [MERGED]
tail(1) ユーティリティの -f
いっときに複数のファイルを指定できるようになりました. [MERGED]
telnet(1) と
telnetd(8)
は TOS バイト数を指定する -S
オプションをサポートしました.
telnet(1) コマンドのオプションネゴシエーションでポート番号に + 文字が渡されないようして, 8bit スルーになりました. これは telnet(1) を各種プロトコルのテストに使えるように意図したものです.
OpenBSD に含まれていた, 指定した TCP コネクションを閉じる tcpdrop(8) コマンドが追加されました. [MERGED]
what(1) コマンドに -q
フラグが追加されました.
whois(1) コマンドで, whois.krnic.net (韓国のNational Internet Development Agency of Korea) に問い合わせを行う -k
フラグをサポートしました. [MERGED]
xargs(1) コマンドの -I
オプションの動作が IEEE Std 1003.1-2004 の規定に従うようになりました. 規格上は引数として認められるデータの大きさは 255 バイトを超えてはならないことになっています.
hosts(5) や services(5) などの設定ファイルで, ファイルの最後が newline で終わっていない場合に最終行が無視されるバグがありましたが修正されました.[MERGED]
_dhcp ユーザとグループが追加されました. OpenBSD 由来の dhclient(8) が使用します.
bsnmpd(1) のための rc.d/bsnmpd スクリプトが追加になりました.
jail(8) のフラグを指定するのに jail_name_flags
変数を rc.d/jail スクリプトで指定できるようになりました.
[MERGED]
rc.conf(5) で起動時にネットワークインタフェースの名前を変更できるようになりました. [MERGED]
例:
ifconfig_fxp0_name="net0" ifconfig_net0="inet 10.0.0.1/16"
rc.d/moused script は起動時に引数を指定して, デバイスの start/stop/check ができるようになりました:
# /etc/rc.d/moused start ums0
複数のマウスを rc.conf(5) から違う設定を与えたい場合, 指定するパラメータにデバイス名を含めることができます. たとえば, デバイスが /dev/ums0 だったとすると以下のようになります:
moused_ums0_enable=yes moused_ums0_flags="-z 4" moused_ums0_port="/dev/ums0"
rc.conf(5) は今回から tmpmfs_flags
と varmfs_flags
という 2 つの変数をサポートします. これは
mdmfs(8)
に追加のパラメータを渡して, md(4) ファイルシステムを作成する際に softupdates をどうするかとか, ファイルシステムのデフォルトのオーナーだとか詳細に設定できます. [MERGED]
以下のスクリプトは NetBSD 独自のもので FreeBSD では使用されていないため廃止になりました: altqd, dhcpd, dhcrelay, downinterfaces, gated, ifwatchd, kdc, lkm1, lkm2, lkm3, mixerctl, mopd, mountall, ndbootd, network, poffd, postfix, ppp, racoon, raidframe, rbootd, rtsold, screenblank, swap2, sysdb, wscons, xdm, xfs
awk が 2004年2月7日版から 2005年4月24日版に更新されました.
BIND が 9.3.0 から 9.3.1 にバージョンアップしました.[MERGED]
bsnmp が 1.7 から 1.10 にバージョンアップしました.
bzip2 が 1.0.2 から 1.0.3 にバージョンアップしました.
OpenBSD dhclient が OpenBSD 3.7 から移植されました. 昔の FreeBSD で使われていた ISC DHCP クライアントにおきかわるものです.
FILE が 4.10 から 4.12 にバージョンアップしました.
GNU GCC が 2004年4月28日の 3.4.2-prerelease から 3.4.4 にバージョンアップしました.
GNU grep に多数のバグ修正と性能向上を行った Fedora's grep-2.5.1-48 を source RPM から移植しパッチを適用しました.
GNU readlineが 4.3 から 5.0 にバージョンアップしました.
IPFilter が 3.4.35 から 4.1.18 にバージョンアップしました.
Heimdal が 0.6.1 から 0.6.3 にバージョンアップしました. [MERGED]
hostapd v0.3.9 が移植されました. これはユーザ権限で動作する IEEE 802.11 AP と IEEE 802.1X/WPA/WPA2/EAP Authenticator 兼 RADIUS 認証サーバです. 詳細は hostapd(8) の man ページを確認してください.
libpcap が v0.8.3 から v0.9.1 (alpha 096) にバージョンアップしました.
libregex が GNU grep 2.5.1 のスナップショットのものから glibc CVS リポジトリの fedora-glibc-2_3_4-21 タグのものをベースに変更しました.
libz が 1.2.1 から 1.2.2 にバージョンアップされました.
lukemftp が 2004年4月26日版 から 2005年5月16日版(いずれも NetBSD のソースツリー)に更新されました.
OpenBSD の 2005年2月4日版 netcat が移植されました. 詳細は nc(1) man ページを参照してください. [MERGED]
NgATM が 1.0 から 1.2 にバージョンアップしました.
OpenPAM が Eelgrass release から Figwort release にバージョンアップしました.
OpenSSH が 3.8p1 から 4.1p1 にバージョンアップしました.
OpenSSL が 0.9.7d から 0.9.7e. にバージョンアップしました. [MERGED]
pf が OpenBSD 3.5 ベースのものから OpenBSD 3.7 ベースへ更新されました.
sendmail が 8.13.3 から 8.13.4 にバージョンアップしました. 今回から OSTYPE(freebsd6) がサポートされます.
tcpdump が v3.8.3 から v3.9.1 (alpha 096) にバージョンアップしました.
tcsh が 6.13.00 から 6.14.00 にバージョンアップしました.
texinfo が 4.6 から 4.8 にバージョンアップしました.
タイムゾーンデータベースが tzdata2004e 版から tzdata2004g 版に更新されました. [MERGED]
WPA Supplicant v0.3.9 が移植されました. WPA/IEEE 802.11i の WPA Supplicant 機能が利用できます. 詳細は wpa_supplicant(8) man ページを参照してください.
pkg_create(1)
ユーティリティが -R
フラグをサポートしました. このフラグを指定すると ローカルにインストールされたファイルからパッケージを作成する場合, 依存しているすべてのローカルにあるパッケージファイルを作成します.
pkg_version(1)
ユーティリティに, 等号・不等号の <, =, > 文字を出力しない -q
フラグが追加になりました.
pkg_version(1)
ユーティリティに, そのパッケージが無効になっていないかチェックするための INDEX ファイルを作成するだけの -I
フラグが追加されました.[MERGED]
ports/INDEX* ファイルはすべての ports コレクションのインデックスを持っていますが, CVS リポジトリからは削除されました. [MERGED] これらのファイルは不定期に作成され実際にはリアルタイムの情報ではなく, 通常は必要ないからです. たとえば portupgrade(1) などでこれらファイルを使いたいなら 2 つの代替案があります:
ports/ のトップディレクトリで make index を実行すればその ports ツリーの情報を元にしてインデックスが作成されます.
ports/ のトップディレクトリで make fetchindex を実行してネットワーク越しにインデックスを取り寄せます. これはだいたい1日内の変更は反映されませんがそれくらいには正確な内容です.
これまでの FreeBSD のリリースでは, disc1 CD-ROM (または ISO image) ブータブルでベースシステムと ports ツリーと有名どころの packages を収録していました. disc2 CD-ROM (または ISO image) もブータブルな “fix it” disk で live filesystem を収録していて, 緊急修復用になっていました. 今回からはレイアウトが変わります. ia64 以外のプラットフォームでは, disc1 イメージにはベースシステムと ports ツリーに live filesystem を収録し, インストールと修復のどちらにも使いやすいようにしています. (ia64 プラットフォームでは 容量の都合上 live filesystem は別にしています.) 特に disc2 image でデスクトップ環境などの定番パッケージをインストールする場合, 2 枚に分かれて選択することになります. FreeBSD Documentation Project によるドキュメントは disc2 に入っています. [MERGED]
GNOME デスクトップ環境のサポートされているバージョンが 2.6.2 から 2.10.2 に更新されました. FreeBSD 上で GNOME を使うための情報については FreeBSD GNOME Project Web page に掲載されています. [MERGED]
注意: 古いバージョンの GNOME デスクトップ (x11/gnome2) を使っている場合にはアップグレードに注意が必要です. 単純に portupgrade(1) (sysutils/portupgrade) を使って更新してしまうとえらいことになります. GNOME デスクトップを使っている人は http://www.FreeBSD.org/gnome/docs/faq210.html に書いてある情報をよく読んで, GNOME 2.10 にちゃんとアップグレードするために gnome_upgrade.sh スクリプトを実行してください .
KDE デスクトップ環境のサポートされているバージョンが 3.3.0 から 3.4.2 に更新されました. FreeBSD で KDE を使うための情報は KDE on FreeBSD Web page に掲載されています. [MERGED]
注意: 古いバージョンの KDE を使っている場合, アップグレードの手順については KDE on FreeBSD Web page や ports/UPDATING に記載されているのでよく読んでください.
Xorg が 6.7.0 から 6.8.2 にバージョンアップしました. [MERGED]
以下の man ページについて追記や見直しが行われました: acpi_ibm(4), acpi_sony(4), ataraid(4), bus_space(9), central(4), clkbrd(4), creator(4), devfs.conf(5), devfs.rules(5), ebus(4), eeprom(4), fhc(4), machfb(4), ofw_console(4), openfirm(4), openprom(4), pmap_page_init(9), pthread_atfork(3), rtc(4), sbus(4), sched_4bsd(4), sched_ule(4), snd_fm801(4), snd_neomagic(4), snd_t4dwave(4), snd_via8233(4), snd_via82c686(4), snd_vibes(4).
ベースシステムに含まれる man ページの内容や表現, 相互参照, セクションの見出しなども見直されています.
以下の man ページは RFC 由来のもので, IETF の著作権侵害にあたる可能性があるため置き換えられました. : gai_strerror(3), getaddrinfo(3), getnameinfo(3), inet6_opt_init(3), inet6_option_space(3), inet6_rth_space(3), inet6_rthdr_space(3), icmp6(4), ip6(4). [MERGED]
ソースから FreeBSD 6.0-RELEASE へアップグレードすることがサポートされているのは FreeBSD 5.3-RELEASE 以降のシステムだけです. それ以前のリリースの場合, まず FreeBSD 5.3 以降にアップグレードしてから FreeBSD 6.0-RELEASE にアップグレードしてください.
重要: 当たり前のことですが, FreeBSD のアップグレードをする前に すべての データと設定ファイルのバックアップを取っておいてください.
このファイルやリリースに関連するドキュメントはftp://ftp.FreeBSD.org/ から取得することができます.
FreeBSD に関する質問は <questions@FreeBSD.org> に聞く前にまず documentation をよく見てください .
ドキュメントに関して何かありましたら, <doc@FreeBSD.org> まで e-mail で知らせてください.
(訳注:本家のドキュメントに関して英語のみで送ることができます. 訳文に関する質問は too@os.gulf.or.jp までお願いします)