FreeBSD 14.1-RELEASEリリースノート

# 「はじめに」
この記事は[FreeBSD 14.1-RELEASE Release Notes](https://www.freebsd.org/releases/14.1R/relnotes/)の日本語訳です。恒例の言い訳ですが、訳の正確さは保証できません。なので、「ふつーはそう訳さねーよ」という指摘は大歓迎です。

また、恒例のお断りですが、この文章の内容は、筆者が所属している会社・団体とは一切関わりがありません。いわゆる「自主的な研究の成果の発表」というものです。

では、以下、翻訳です。

# 要約
FreeBSD 14.1-RELEASEのリリースノートには、14-STABLE開発ラインでFreeBSDの基本システムに加えられた変更の概要が含まれています。このドキュメントには、前回のリリース以降に発行された適用可能なセキュリティ勧告、およびFreeBSDカーネルとユーザーランドへの重要な変更点が記載されています。アップグレードに関するいくつかの簡単な説明もあります。

# はじめに
この文書には、FreeBSD 14.1-RELEASEのリリースノートが含まれています。最近追加、変更、または削除されたFreeBSDの機能について説明しています。また、以前のバージョンのFreeBSDからのアップグレードに関する注意事項も記載しています。

このリリースノートが適用されるリリース配布物は、14-STABLEが作成されて以来、14-STABLE開発ブランチに沿った最新のポイントを表しています。このブランチに沿ったビルド済みのバイナリリリース配布物に関する情報は、 https://www.FreeBSD.org/releases/ で見ることができます。

このリリースノートが適用されるリリース配布物は、14.0-RELEASEと将来の14.2-RELEASEの間の、14-STABLE開発ブランチに沿ったポイントを表しています。このブランチに沿ったビルド済みのバイナリリリース配布物に関する情報は、 https://www.FreeBSD.org/releases/ で見ることができます。

このFreeBSD 14.1-RELEASEはリリース版配布物です。この配布物は、 https://www.FreeBSD.org/releases/ またはそのミラーサイトにあります。この(あるいは他の)FreeBSDのリリース版配布物を入手するための詳しい情報は、[FreeBSDハンドブック](https://docs.freebsd.org/ja/books/handbook/)の[付録A FreeBSD の入手方法](https://docs.freebsd.org/ja/books/handbook/mirrors/)に記載されています。

すべてのユーザには、FreeBSDをインストールする前にリリースの正誤表を参照することを推奨します。正誤表は、リリースサイクルの後半やリリース後に発見された 「最新の」情報で更新されます。典型的なものとしては、既知のバグやセキュリティ勧告、文書の修正に関する情報などがあります。FreeBSD 14.1-RELEASEの正誤表の最新版はFreeBSDのWebサイトで見ることができます。

この文書では、FreeBSD 14.0-RELEASE以降の新機能や変更点のうち、最もユーザが目にしやすいものを説明しています。一般に、ここに書かれている変更は、特に"MERGED"機能と書かれていない限り、14-STABLEブランチに固有のものです。

リリースノートの一般的な項目には、14.0-RELEASEの後に発行された最近のセキュリティ勧告、新しいドライバまたはハードウェアのサポート、新しいコマンドまたはオプション、主要なバグ修正、または提供されたソフトウェアのアップグレードが記載されています。また、主要なポート/パッケージまたはリリースエンジニアリングの実践への変更についても記載する場合があります。もちろん、リリース間でFreeBSDに加えられた変更をリリースノートにすべて列挙することはできません。この文書は主に、セキュリティ勧告、ユーザーに見える変更点、主要なアーキテクチャでの改善点に焦点を当てています。

# FreeBSDの以前のリリースからのアップグレード
RELEASEバージョン(およびさまざまなセキュリティブランチのスナップショット)間のバイナリアップグレードは、freebsd-update(8)ユーティリティを使用してサポートされています。FreeBSD ハンドブックの[バイナリアップグレード手順](https://docs.freebsd.org/ja/books/handbook/cutting-edge/#freebsdupdate-upgrade)の詳細と合わせてリリース固有のアップグレード手順、FreeBSD 14.1-RELEASE アップグレード情報を参照してください。

/usr/src/UPDATINGの指示に従って、以前のバージョンからのソースベースのアップグレード(FreeBSDの基本システムをソースコードから再コンパイルしたもの)がサポートされています。

:::note alert
FreeBSDのアップグレードは、データと設定ファイルを**すべて**バックアップした後でのみ試みてください。
:::

## セキュリティと正誤表
この節では、14.0-RELEASE以降のさまざまなセキュリティ勧告と正誤表を示します。

### セキュリティ勧告
勧告 日付 トピック

勧告はありません。
		
### 正誤表
正誤表 日付 トピック

お知らせはありません。

# ユーザーランド
この節では、ユーザーランドアプリケーション、提供されたソフトウェア、およびシステム ユーティリティの変更と追加について説明します。

## ユーザーランドの設定の変更点
daemon(8) の下で kdc(8) (または krb5kdc) を管理する、新しい kdc_restart 変数が利用可能になりました。異常終了時に kdc を自動的に再起動するためには、rc.conf(5) で kdc_restart="YES" を設定してください。kdc_restart_delay="N" に、kdc を再起動する前に遅延させる秒数を設定します。

デフォルトでは、日次スクリプトからの periodic(8) 機能によって電子メールで表示される変更は、出力サイズを小さくするために、以前よりも少ないコンテキストを表示します。この挙動は、periodic.conf(5) の daily_diff_flags 変数で制御可能です。同様に、セキュリティスクリプトによって表示される変更も以前よりも少ないコンテキストを表示し、periodic.conf(5) の security_status_diff_flags 変数によって制御されます。

## ユーザーランドのアプリケーションの変更点
bsdinstall(8) が使用する adduser(8) ユーティリティーは、親ディレクトリが ZFS データセット上に存在する場合、新規ユーザのホームディレクトリ用に ZFS データセットを作成するようになりました。別のデータセットの使用を無効にするコマンドラインオプションが利用可能です。ZFS 暗号化も使用できます。

date(1) プログラムがナノ秒をサポートするようになりました。例えば、date -Ins は "2024-04-22T12:20:28,763742224+02:00" と表示し、date +%N は "415050400" と表示します。

dtrace(1) ユーティリティは、libxo(3) を使用して、JSON、XML および HTML の機械可読な出力を生成できるようになりました。(Innovate UK による後援)

lastcomm(1) ユーティリティが秒の精度でタイムスタンプを表示するようになりました。(DSS Gmbh による後援)

ldconfig(8) ユーティリティが、どちらのバイトオーダのヒントファイルもサポートするようになりました。デフォルトのフォーマットはホストのネイティブなバイトオーダーです。

OpenSSH がバージョン 9.7p1 にアップグレードされました。リリースノートの全文は https://www.openssh.com/txt/release-9.7 および https://www.openssh.com/txt/release-9.6 にあります。  (FreeBSD Foundation による後援)

usbconfig(8) ユーティリティは、利用可能な場合に /usr/share/misc/usb_vendors から usb のベンダおよび製品の記述を読み込むようになり、pciconf(8) が行うのと同様のことが可能になりました。

## 提供されたソフトウェア
One True Awk (awk(1)) が第2版に更新され、新たに -csv をサポートし、UTF-8 をサポートしました。

Clang/LLVM がバージョン 18.1.5 にアップグレードされました。

libarchive(3) ライブラリがバージョン 3.7.4 にアップグレードされました。

sendmail(8) スイートをバージョン 8.18.1 にアップグレードし、CVE-2023-51765 に対処しました。

unbound(8) リゾルバをバージョン 1.20.0 にアップグレードし、"The DNSBomb" 脆弱性 (CVE-2024-33655) に対処しました。

## ランタイムライブラリとAPI
libutil の setusercontext(3) ルーチンは、システムの login.conf(5) と同様に、適切な条件下で、ホームディレクトリの .login.conf ファイルからプロセスの優先度 (nice) を設定するようになりました。優先度は、親プロセスの優先度から変更されないことを示す値 inherit を指定できるようになりました。同様に、umask にも inherit という値を指定できるようになりました。 (Kumacom SAS による後援)

C ライブラリの多くの文字列およびメモリ操作が SIMD (単一命令多重データ) 拡張を使用するようになり、amd64 システムで使用可能な場合にパフォーマンスが向上します。simd(7) を参照してください。(The FreeBSD Foundation による後援)

数学ライブラリ math(3) の 128 ビット tgammal 関数の実装が、それをサポートするプラットフォーム上で、より良いものになりました。

# クラウドサポート
この節ではクラウド環境のサポートの変更について説明します。

14.1-RELEASE は nuageinit スタートアップスクリプトや config-drive パーティションのサポートを含む cloudinit をサポートします。これは OpenStack や多くのホスティング施設と互換性があります。cloud-init のウェブサイトとコミットメッセージ 16a6da44e28d 227e7a205edf を参照してください。(OVHCloud による後援)

# カーネル
この節では、他には分類されないカーネル設定、システムチューニング、およびシステム制御パラメータの変更について説明します。

## 一般的なカーネルの変更点
fpu_kern_enter および fpu_kern_leave ルーチンが powerpc 用に実装され、浮動小数点およびベクタレジスタを使用するカーネル内の ossl(4) 暗号関数の使用が可能になりました。

# デバイスとドライバ
この節では、14.0-RELEASE以降のデバイスとデバイスドライバの変更と追加について説明します。

## デバイスドライバ
100 Gb/s 動作をサポートする Intel E800 シリーズの ice(4) イーサネットネットワークコントローラ用のドライバが利用可能です。これはバージョン 1.39.13-k にアップグレードされました。 (Intel Corporation による後援)

Intel Wi-Fi デバイス用の iwlwifi(4) ドライバに多数の安定性の改善が施されました。(The FreeBSD Foundation による後援)

複数の PCI MCFG 領域が amd64 および i386 でサポートされ、0 以外のドメイン (セグメント) のための PCI 設定空間へのアクセスが可能になりました。

smsc(4) イーサネットドライバは、いくつかの Raspberry Pi モデルから渡された smsc95xx.macaddr の値を取得し、それを MAC アドレスとして使用可能になりました。EEPROM にアドレスがない場合でも、常に安定した MAC アドレスを使用します。

関連する sysctls を含むサウンドサブシステムから snd_clone フレームワークが削除され、システムがシンプルになりました。チャンネルごとのノード (/dev/dspX.Y) はもはや作成されず、プライマリデバイス (/dev/dspX) だけが作成されます。(The FreeBSD Foundation による後援)

オーディオが非同期デバイスデタッチをサポートしました。これにより、USB ヘッドセットなどのホットプラグの抜き差しが非常に簡単になり、 オペレーティングシステムのスリープとウェイク (サスペンドとレジューム) が必要な場合の PulseAudio の使用が容易になりました。(The FreeBSD Foundation による後援)

# ストレージ
この節では、ローカルとネットワークの両方で、ファイルシステムとその他のストレージサブシステムの変更と追加について説明します。

## NFS
mountd(8) サーバは、 exports(5) ファイル中のディレクトリ名をデコードするために strunvis(3) を使用するように変更されました。このため、ディレクトリ名に空白のような特殊文字を埋め込むことができるようになりました。 vis -M が、このようなディレクトリ名をエンコードするために使用されます。vis(1) を参照してください。

新しい sysctl(8) 変数が kern.rpc.unenc および kern.rpc.tls の下に追加され、NFS サーバ管理者は NFS-over-TLS がどの程度使用されているかを判断できるようになりました。失敗したハンドシェイクの数が多い場合、NFS の設定に問題がある可能性があります。

## UFS
newfs(8) で新しい UFS ファイルシステムを作成する際に、ソフトアップデートがデフォルトで有効化されるようになりました。

## ZFS
OpenZFS がバージョン 2.2.4 にアップグレードされました。

# ブートローダーの変更
このセクションでは、ブートローダー、ブートメニュー、その他のブート関連の変更について説明します。

## ブートローダーの変更
loader(8) は、変数 local_loader_conf_files にリストされたローカル設定ファイルを他の設定ファイルの後に読み込むようになりました。デフォルトは /boot/loader.conf.local です。

loader(8)は、SMBIOS から planar maker、planar product、system product および uboot m_product 変数に基づく特定の設定ファイルを読み込むよう設定できるようになりました。今のところ、最良のドキュメントは git のコミットメッセージ(3eb3a802a31b)です。

EFI システムで、loader(8) のコンソール検出が改善されました。ConOut 変数がない場合、ConIn がチェックされます。複数のデバイスが見つかった場合、シリアルが優先されます。(Netflix による後援)

loader(8) のフレームバッファのサポートは、テキストのみのビデオドライバを使用できるようになり、結果的にスペースが節約されます。 (Netflix による後援)

arm64 システムの loader.efi(8) で、ACPI の検出がより早い段階で行われるようになりました。ACPI を使用する arm64 システムでは、EFI パーティション上の loader.efi のコピーを更新すべきです。

LinuxBoot ローダは、amd64 と同様に aarch64 システム上の Linux から FreeBSD を起動するためにも使用可能です。 (Netflix による後援)

# ネットワーク
この節では、FreeBSDでネットワークに影響を与える変更について説明します。

## 一般的なネットワーク
802-standard ネットワークの ARP (arp(4)) のサポートが復活しました。FDDIサポートと一緒に誤って削除されていました。(これはイーサネット標準のカプセル化とは異なるものです。) 

IPv4 (INET) なしで IPv6 をサポートしたカーネル (INET6) を構築することが可能です。

netgraph の ng_ipfw(4) モジュールは、もはやクッキーを 16 ビットに切り詰めず、完全な 32 ビットを許容します。

# ハードウェアのサポート
この節では、物理マシン、ハイパーバイザー、仮想化環境に対する一般的なハードウェアのサポート、およびこの文書の他の節に当てはまらないハードウェアの変更と更新について説明します。

14.1-RELEASEでサポートされる[ハードウェアのリスト](https://www.freebsd.org/releases/14.1R/hardware/)、およびサポートされるCPUアーキテクチャの完全なリストについては、[プラットフォームのページ](https://www.freebsd.org/platforms/)を参照してください。

# 文書
この節では、マニュアル(man(1))のページや、基本システムに同梱されているその他の文書の変更について説明します。

## manページ
新しいネットワーク(7)マニュアルのページでは、Wi-Fiを含むネットワークにシステムを接続するためのクイックスタートガイドと、他のマニュアルページやハンドブックへのリンクを提供しています。

# 将来のFreeBSDリリースに関する一般的な注意事項
FreeBSD 15.0では、armv7以外の32ビットプラットフォームのサポートは予定されていません。armv6、i386、powerpcプラットフォームは非推奨であり、削除される予定です。64ビットシステムでは、古い32ビットバイナリを実行できます。

FreeBSD 15.0およびstable/15では、armv7をTier 2アーキテクチャとしてサポートする予定です。しかし、FreeBSD 16.0ではarmv7は削除されるかもしれません。15.xと16.xの両方におけるarmv7の状況については、15.0のリリース時に改めてお知らせします。

COMPAT_FREEBSD32オプションによる64ビットプラットフォーム上での32ビットバイナリの実行のサポートは、 少なくともstable/15およびstable/16ブランチでは継続されます。cc -m32による個別の32ビットアプリケーションのコンパイルサポートも、少なくともstable/15ブランチでは継続され、適切なヘッダが/usr/includeに、ライブラリが/usr/lib32に含まれます。

FreeBSD 15.0以降のリリースでは、portsは非推奨の32ビットプラットフォームのサポートを含みません。これらの将来のリリースでは、非推奨の32ビットプラットフォーム用のバイナリパッケージやportsからのパッケージのビルドはサポートされません。

FreeBSD stable/14およびそれ以前のブランチでは、32ビットカーネルとworldのサポートは維持されます。portsは、stable/14およびそれ以前のブランチがportsシステムでサポートされている限り、32ビットシステム用のportsやパッケージの構築に関する既存のサポートを維持します。しかし、すべての32ビットプラットフォームはTier-2またはTier-3であり、アップストリームが32ビットプラットフォームを非推奨とするにつれて、個々のportsのサポートは低下していくことが予想されます。

現在のサポートスケジュールでは、stable/14はFreeBSD 14.0-RELEASEのリリースから5年後にEOL(End of Life)を迎えます。stable/14のEOLは、ソースリリース、ビルド済みパッケージ、portsからのアプリケーションのビルドサポートを含む、非推奨の32ビットプラットフォームのサポートの終了を意味します。2023年11月の14.0-RELEASEのリリースにより、非推奨の32ビットプラットフォームのサポートは2028年11月に終了します。

FreeBSD 15.0がリリースされる際には、15.0以降で非推奨とされるプラットフォームの一つ以上のサポートを拡張することで、プロジェクトはこのアプローチを変更する可能性があります。どのような変更も、コミュニティからのフィードバックと、 これらのプラットフォームをサポートするための努力によって進められるでしょう。32ビットプラットフォームからの移行には、FreeBSD 14.0-RELEASEおよびそれ以降のリリース、あるいはstable/14ブランチを使用してください。