FreeBSD Daily Topics

2008年2月28日FreeBSD 7.0-RELEASE登場!BSD ar(1)デフォルトへ、ktrace(2) KTR_STRUCT追加、cxgb(4)更新、find(1)改善、VIA USB2IDEブリッジサポート追加

heads-up

FreeBSD 7.0-RELEASE

The FreeBSD Release Engineering Teamは2008年2月27日(米国時間⁠⁠、FreeBSDの最新版メジャーリリースFreeBSD 7.0-RELEASEを公開しました。AMD64、i386、IA-64、PC-98、PowerPC、SPARC64アーキテクチャ版が用意されています(SPARC64は数日後に用意される見通し⁠⁠。

disk1、disk2、disk3でのインストールが簡単です。2年間以上をへてのメジャーアップデートであり、7-STABLEからの最初のリリースとなります。6.xと比較した場合、通常負荷状態で350%のピーク性能改善が、高負荷時では1,500%にもおよぶピーク性能改善が確認されています。

7.0では1:1スレッドモデルのlibthrがデフォルトとして採用された他、細粒度ロックやIPC、新しいSMPアーキテクチャをベースとした改善が実施され、特定のベンチマークでは8コア/プロセッサまでリニアなスケーリングが確認されています。スケジューラは4BSDのままですが7.1でULEに置き換わります。options SCHED_ULEを指定してカーネルを再構築すれば7.0でもULEスケジューラが活用できます。

まだ実験的クオリティですがZFSファイルシステムの導入、XFSファイルシステムの導入(リードオンリー⁠⁠、新しく実装されたUnionfsの導入、iSCSIイニシエータ導入、GEOMクラスとしてGJournal/GVirstorの導入、ネットワークスタックの大幅な改善、BPF JITの導入、ARMアーキテクチャサポートの大幅な改善、jemallocをmalloc(3)実装として採用、freebsd-update(8)におけるシステムアップグレードの対応、GCC 4.2.1の導入、X.Org 7.3対応、KDE 3.5.8対応、GNOME 2.20.2対応、BIND 9.4.2対応などが実現されています。KDE 4へのアップグレードはリリース後に予定されています。

ソースコードベースでのアップデート方法はSynchronizing Your SourceおよびRebuilding "world"にまとまっています。指定するタグはRELENG_7_0です。freebsd-update(8)を使ってバイナリレベルでアップデートする方法も紹介されています。

たとえば次のように作業します。システムをアップグレードした場合、portupgrade -faPなどを実行してサードパーティアプリケーションはビルドし直す必要があります。

freebsd-update(8)およびportupgrade(1)で7.0へアップグレードする方法
# fetch http://people.freebsd.org/~cperciva/freebsd-update-upgrade.tgz
# fetch http://people.freebsd.org/~cperciva/freebsd-update-upgrade.tgz.asc
# gpg --verify freebsd-update-upgrade.tgz.asc freebsd-update-upgrade.tgz
# tar -xf freebsd-update-upgrade.tgz
# sh freebsd-update.sh -f freebsd-update.conf -r 7.0-RELEASE upgrade
# sh freebsd-update.sh -f freebsd-update.conf install
# shutdown -r now
# sh freebsd-update.sh -f freebsd-update.conf install
# portupgrade -faP
# sh freebsd-update.sh -f freebsd-update.conf install
# shutdown -r now

7.0は2009年2月28日までのセキュリティアドバイザリサポートが計画されています。同リリースに向けてはThe FreeBSD Foundation、FreeBSD Systems、Hewlett-Packard、Yahoo!、Network Appliances、Sentex Communicationsなどを含め多くの企業や団体、個人から寄付がありました。

7.0の性能改善と新機能追加、マルチコア/プロセッサにおけるリニアスケーラビリティの実現は同OS史上ターニングポイントとなります。7.0については2008年3月18日に販売が予定されているSoftware Design 4月号で特集が予定されています。同OSの新機能やインストール方法などは同特集をご覧ください。

すでに8-CURRENTでは7.0には統合されていない新機能の追加や機能改善が実施されています。7.1は7.0よりもバグがとれたスケーラビリティの高いリリースになると見られます。7系はFreeBSDの運用においてもきわめて重要なブランチになりそうです。

src

BSD ar(1)

current - BSD ar(1)の状況は二転三転しています。執筆現在では結局のところBSD ar(1)はシステムデフォルトのar(1)として導入されることになりました。このためWITH_BSDARオプションは廃止されました。適切にアップデートする目的で_WITH_GNUARオプションが追加されていますが、このオプションはユーザから直接指定することを想定して導入されたものではありませんので、ユーザからは指定しないでください。

ktrace(2)

current - ktrace(2)レコード型に新しくKTR_STRUCTが追加されました。KTR_STRUCTのデータはnull終端の名前や記録したいと考えている構造体の内容で構成されることになります。今のところサポートされているのはAF_INET、AF_INET6、AF_UNIXファミリーに対するsockaddr構造体とstat構造体です。AF_APPLETALKおよびAF_IPXに対するサポートは今のところ無効化されています。

cxgb(4)

current - Chelsio T3 10 Gigabit Ethernetアダプタドライバcxgb(4)のファームウェアが5.0へアップデートされました。T3Cのサポートが追加された他、DDPサポート(ゼロコピー受信)、大規模要求のTOEトランスミットの修正、デバイスがアタッチされた時点でリンクの有効化、シャットダウン処理の改善、TCBロギングのためのヘルパ追加、トランスミットキューのダンプのためのsysctlの追加などがおこなわれています。

find(1)

current - GNU find(1)に用意されているオプションに対応するようにfind(1)に新しいオプションな機能が追加されました。-group、-user、-path、-ipath、-xdev、-depthに対する新しいエイリアスとして-gid、-uid、-wholename、-iwholename、-mount、-dが追加されたほか、新しい機能として-lname(シンボリックリンクにのみ対応する-name)、-ilname(大文字小文字をチェックする-lname)、-quit(exit(0)と同じ)、-samefile(ハードリングに対してtrueを買えす)、-true()が追加されています。また従来は-notへのエイリアスになっていた-falseは、常に-falseになる動作へと変更されています。

sys/dev/usb

current - USBにVIA USB2IDEブリッジのサポートが追加されました。

おすすめ記事

記事・ニュース一覧