14.0 ブランチの登場からほぼ 2 年を経て、FreeBSD プロジェクトはメジャーな新リリースである FreeBSD 15.0 を公開しました。インストールイメージはすでに amd64、aarch64、armv7、powerpc64、powerpc64le、riscv64 向けに用意されており、QCOW2、VHD、VMDK、raw など仮想化向けフォーマットも揃っています。さらに、Amazon EC2、Google Compute Engine、Vagrant などの環境向けクラウドイメージも準備されています。
同時に、プロジェクトはライフサイクルポリシーを改定しました。15 ブランチからは、初回リリース(15.0)後のメジャーブランチのサポート期間が 5 年から 4 年に短縮され、メジャーブランチは 2 年ごとのサイクルで登場するようになります。中間のポイントリリース(15.1、15.2、15.3)は、おおよそ 6 か月ごとに予定されています。2 つのブランチが同時にサポートされることで、新リリースはおおよそ 3 か月ごとに登場することになり(15.4、16.1、15.5、16.2 など)、16.0 のような新たな「一巡目」のリリース前には半年の間隔が設けられます。リリースノートでは 15.0 の新機能だけでなく、14.1、14.2、14.3 で導入された変更点もまとめて紹介されています。
15.0 における大きな転換点のひとつは、ベースシステムのサービスモデルです。ベースシステムのコンポーネントは、pkg パッケージマネージャを通じてインストールおよび更新できるようになりました。いわゆる pkgbase パッケージは、オフラインインストール用にインストールメディアに含めることも、pkg.freebsd.org リポジトリから取得することも可能です。pkg の設定(/etc/pkg/FreeBSD.conf)では、FreeBSD-base リポジトリはデフォルトで無効化されていますが、この新方式はすでに VM およびクラウドイメージではデフォルトとなっており、標準インストール向けには実験的機能と位置づけられています。インストーラ bsdinstall は、従来の freebsd-update を用いるモノリシックなベースシステムと、新しい分割パッケージ方式という 2 つのインストールモードを提供します。
ビルドチェーンのセキュリティも大きく前進しました。FreeBSD 15.0 は、root 権限を必要としない非特権環境のみで完全にビルドできるようになり、インストール ISO や VM イメージでさえ昇格権限なしで生成できます。並行して、再現可能ビルドにも対応しました。バイナリは決定的に生成され、ソースと照合して検証できるため、密かな改ざんのリスクが低減されます。
アーキテクチャのラインナップも更新されました。プロジェクトは 32 ビットの i386、armv6、powerpc 向けインストールイメージおよびバイナリリポジトリの提供を終了し、32 ビットプラットフォームとしては armv7 のみがサポート対象として残ります。ローカル環境での 32 ビットアプリケーションのビルドや、64 ビットカーネル上での COMPAT_FREEBSD32 の利用は、少なくとも FreeBSD 16 のライフサイクル期間中は継続されます。
カーネルには、Linux 互換の inotify メカニズムを実装するシステムコールが追加され、ファイルシステムイベント監視が可能になりました。これにより、このモデルに依存するソフトウェアの移植が容易になります。さらに、ZFS および NFSv4 向けの代替拡張属性メカニズムとして、Solaris 風の名前付きファイル属性が導入されました。属性は通常の名前空間操作からは見えないサービスディレクトリ内に保存され、readdir() で一覧取得できる通常ファイルのように振る舞います。
セキュリティサブシステムには、新たな権限管理ツールが追加されました。mac_do モジュールはプロダクション利用可能と判断されており、管理者は非特権ユーザがどのような条件でプロセスのクレデンシャルを変更できるかをポリシーとして記述できます。su に似た mdo ユーティリティは、setuid root バイナリに依存することなく、別ユーザとしてコマンドを実行することを可能にします。
グラフィックスと無線ネットワークのサポートも大幅に近代化されました。DRM ドライバ i915 と amdgpu は Linux 6.9 と同期され、Wi-Fi ドライバ rtw88(Realtek 802.11n/ac)、rtw89(Realtek 802.11ax)、iwlwifi(Intel 802.11a/b/g/n/ac/ax/be)は Linux 6.17 と整合しました。amd64 システムでは 4 TB を超える RAM 構成がサポートされ、UFSHCI ストレージコントローラ向けの ufshci ドライバも追加されています。
ネットワークおよびファイルシステム層にも大きな更新があります。NFS には NFSv4.2 仕様の CLONE 操作が追加され、サーバ側でのブロッククローンによるファイルコピーが可能になりました(現時点ではエクスポートされた ZFS データセットのみ対応)。UFS は 20 億 inode を超えるファイルシステムでの安定性が向上し、UFS1 は 2038 年問題を解消して 2106 年までの日付を正しく扱えるようになりました。TCP ソケット向けの新しい SO_SPLICE オプションは、ユーザ空間へのデータコピーを行わない軽量なプロキシ処理を可能にします。カーネルには NVMe-over-Fabrics コントローラ向けの nvmfta モジュールが組み込まれ、nvmecontrol ユーティリティは外部 NVMe デバイスへの接続に対応しました。
管理者向けにはいくつかの新ユーティリティが追加されています。sndctl ツールはサウンドデバイス設定の管理用として導入され、mididump は MIDI イベントのリアルタイム監視を可能にします。ハイパーバイザ bhyve には、libslirp のユーザモードネットワークスタックを用いる slirp バックエンドが追加され、ホスト側ネットワークの追加設定なしでゲストをネットワーク接続できるようになりました。newsyslog はデフォルトの圧縮方式(bzip2、xz、zstd、gzip)の選択に対応し、newsyslog.conf での繰り返し指定が不要になります。date ユーティリティは “date -Ins” によるナノ秒精度のサポートを獲得しました。
Jail 環境も大幅な強化が行われています。新しい zfs.dataset オプションにより、個々の ZFS データセット、スナップショット、クローンを jail にアタッチできるようになりました。jail コマンドには、メタデータのバインドと環境変数の受け渡しを行う meta および env パラメータが追加されています。jail はディスクリプタを通じて参照できるようになり、jail_set および jail_get 関数、jail_attach_jd / jail_remove_jd システムコールが導入されました。kevent フィルタは jail の操作を追跡できます。bsdinstall が利用する adduser ユーティリティは、ユーザのホームディレクトリ用に専用の ZFS データセットを自動作成し、Zcreate および Zencrypt 設定を通じて任意で暗号化することができます。
ユーザーランドにも多くの改善が加えられました。多くの libc の文字列およびメモリ関数に SIMD 最適化が適用されています。Gallant 端末フォントには、キリル文字や追加の数学記号を含む 4,300 以上の新しいグリフが追加されました。tty ドライバは、UTF-8 環境でのバックスペース動作を正しくするため、IUTF8 フラグをデフォルトで有効にします。dialog ユーティリティは bsddialog に置き換えられ、grep は再帰検索時にシンボリックリンクをたどらない動作がデフォルトになりました。
プロジェクトのコンテナおよびクラウド環境への移行も進んでいます。FreeBSD は OCI 準拠のコンテナイメージおよび Oracle Cloud 向けのシステムイメージを生成できるようになりました。AWS EC2 向けに最適化された新しい「small」クラウドイメージタイプは、デバッグデータ、テスト、32 ビットライブラリ、LLDB、Amazon SSM Agent、AWS CLI を省き、標準の EC2 ベースイメージと比べて明らかに高速なブートを実現します。
パッケージリポジトリは拡充および再編成されました。新しいリポジトリ FreeBSD-kmods はデフォルトで有効化されており、不安定なカーネルインターフェースに依存するグラフィックスなどのモジュールに恩恵をもたらすべく、15-STABLE ではなく 15.x-RELEASE 向けにビルドされたカーネルモジュールを収録します。/etc/pkg/FreeBSD.conf に存在していた従来の FreeBSD および FreeBSD-kmods リポジトリは、それぞれ FreeBSD-ports および FreeBSD-ports-kmods に改名されました。
デフォルトのプロトコルスタックおよびネットワーク設定も見直されています。net.inet.tcp.nolocaltimewait パラメータは無効化され非推奨となり、ローカルでクローズされた TCP 接続に対する TIME_WAIT エントリが復活しました。新しい sysctl net.inet.tcp.msl_local は TIME_WAIT の継続時間を調整します。INADDR_ANY を用いた localhost への接続はデフォルトで禁止されますが、net.inet.ip.connect_inaddr_wild により元の挙動を復元できます。IP アドレスを持たないインターフェースも、net.link.bridge.member_ifaddrs のデフォルト値が 0 になったことで、ネットワークブリッジに参加できるようになりました。
多くのレガシーコンポーネントが廃止されました。論理ボリュームマネージャ gvinum はベースシステムから削除され、ユーザは gconcat、gmirror、gstripe、graid、あるいは ZFS の利用を推奨されます。fdisk ユーティリティは gpart への移行を前提として非推奨となりました。UEFI と非互換で UTF-8 サポートを欠く syscons コンソールドライバは、もはや時代遅れとされています。FreeBSD 16 では、agp ドライバに加え、fdc(フロッピコントローラ)、firewire(IEEE1394)、le(レガシー AMD Ethernet)、upgt(USB 802.11g)の削除が予定されています。認証およびネットワークサービスも進化しており、Heimdal Kerberos は MIT Kerberos に置き換えられ、SSH および EC2 イメージでは RSA ホスト鍵が生成されなくなりました。DSA サポートは削除され、DES ベースの publickey データベースも廃止されています。ftpd および shar ユーティリティはベースシステムから外され、現在は ports としてのみ提供されます。
システムインターフェースおよびセマンティクスは、より広く一般的な業界標準に合わせられています。setgroups、getgroups、initgroups システムコールは、実効グループを先頭の別要素として扱わないようになり、より予測可能な挙動となりました。カーネル TLS(KTLS)はデフォルトで有効化され、暗号処理の一部をオフロードします。
最後に、FreeBSD 15.0 はユーザーランドツールおよび開発基盤にわたる大規模な更新を伴って登場します。本リリースには LLVM 19.1.7、OpenSSH 10.0p2、OpenSSL 3.5.4、OpenZFS 2.4.0rc4、Lua 5.4.8、jemalloc 5.3.0、UTF-8 サポートを備えた Awk 20250804、bc 7.1.0、unicode 16.0.0、ncurses 6.5、libarchive 3.8.2、tcpdump 4.99.5、unbound 1.24.1、less 679、file 5.46、GoogleTest 1.15.2 など、多数のコンポーネントの更新が含まれており、15 ブランチはサーバサイドとデスクトップの両方の用途において、より現代的な環境となっています。