FreeBSD 15をサーバーに使うメリットと特徴
FreeBSD 15はZFSやJails、pfを備えた完成度の高いサーバー用OSです。Linuxとの大きな違いは、カーネルとuserlandが単一のbase systemとして統合されている点にあります。最新のpkgbase導入により、OS全体の管理がより効率的になりました。設計思想から新機能まで詳しく解説します。
FreeBSD 15 の概要
FreeBSDは、カーネルとそれに基づいたディストリビューションの組み合わせではなく、完全なサーバー用オペレーティングシステムです。カーネルの開発者が、コアとなるuserland、ドキュメント、およびリリースも作成し、これらを一つのバージョン化された全体として提供します。FreeBSD 15は、このシステムの最新のメジャーリリースです。Linuxのみを使用してきた場合、理解すべき重要な点は「FreeBSDではbase systemが単一のプロジェクトであり、追加するパッケージはその上に明確に分離して存在する」ということです。この設計思想が、多くのユーザーに支持される理由の大部分を説明しています。
私は業務の大部分でLinuxを使用しており、SSD NodesはLinux VPSホストを提供しています。FreeBSDは、私が個人的に最も好むサーバー用オペレーティングシステムであり、本記事ではその理由について述べます。補足として、需要が少ないため、弊社ではFreeBSDのVPSプランは提供していません。FreeBSDを好むユーザーは、VPSをレンタルするよりも、自身のハードウェア上で実行する傾向があるため、VPS市場における需要は限定的です。
FreeBSD 15 の新機能
2025年12月にリリースされたFreeBSD 15.0の主要な変更点は、pkgbaseです。base system自体が pkg パッケージとしてインストールおよびアップデートされるようになりました。インストーラーがこれを提供しており、公式のVMおよびクラウドイメージ(VPSで提供されるもの)では、デフォルトでpkgbaseが使用されます。従来の freebsd-update ツールは15ブランチでも引き続き動作しますが、およびそれが依存するディストリビューションセットはFreeBSD 16で削除される予定です。したがって、pkgbaseは実験的な機能ではなく、今後の標準となる方向性です。
Base system と Linux ディストリビューションモデルの違い
FreeBSDを説明する決定的な違いは、この点にあり、他の多くの特徴もここから派生しています。Linuxサーバーでは、ディストリビューションを使用します。カーネルは一つのプロジェクトから、Cライブラリは別のプロジェクトから、コアコマンドはまた別のプロジェクトから提供されます。ディストリビューションのメンテナは、これらのコンポーネントを組み立て、互いに動作するバージョンを選択します。これには多くの調整が必要であり、動作はしますが、境界線が存在します。つまり、アップグレードによって一部のコンポーネントは更新されるが、他のコンポーネントは更新されないということが起こり得ます。
FreeBSDは、境界線の引き方が異なります。カーネル、標準コマンド、Cライブラリ、ファイアウォール、およびboot loaderは、一つのソースツリーであり、一つのバージョン番号を持ちます。base systemはユニットとしてアップグレードされます。古いインストール環境では freebsd-update を使用し、FreeBSD 15のクラウドイメージがデフォルトで使用するpkgbaseインストール環境では、pkg 自体を使用してアップグレードします。その他の要素(Webサーバー、データベース、言語ランタイムなど)は、base systemに組み込まれるのではなく、その上に配置された pkg パッケージから提供されます。pkgbaseを使用し、一つのツールで両方のレイヤーをアップデートする場合でも、「オペレーティングシステム」と「インストールしたソフトウェア」は、それぞれ独立して管理できる二つの明確なレイヤーとして存在し続けます。
第一級市民としての ZFS
多くの人がFreeBSDを利用する最大の理由はZFSです。FreeBSD 15において、ZFSはアドオンとして追加するものではなく、システムの第一級の構成要素となっています。ZFSはファイルシステムとボリュームマネージャを統合しており、ディスクを信頼する代わりに、サイレントデータ破損を検知するチェックサム付きデータ、即時スナップショット、安価なクローン、およびファイルを別のマシンへバイト単位で転送するための zfs send と zfs receive を提供します。
実用的なサーバー運用において、これは大きな利点となります。アップグレード前にデータセットのスナップショットを作成できます。
zfs snapshot zroot/ROOT/default@before-upgradeもしアップグレードに失敗しても、その正確な状態に即座にロールバックできます。FreeBSDのboot loaderはZFS boot environmentsを理解しているため、操作を行う前に取得したスナップショットへ、オペレーティングシステム全体をロールバックすることが可能です。LinuxでもOpenZFSを通じてZFSを実行でき、その性能は高いです。違いは、FreeBSDでは最初からインストーラー、boot loader、およびアップデートツールにZFSが組み込まれている点にあります。
Jails: コンテナ普及前のコンテナ技術
Jailは、ホストのカーネルを共有しながら、独自のファイルシステム、ユーザー、ネットワーク、およびプロセスビューを持つ、軽量で隔離された環境です。これがコンテナのように聞こえるなら、その通りです。JailはDockerよりも約10年早く登場しました。FreeBSD 15では、この機能がさらに洗練されています。
概念モデルは、フルスタックのコンテナよりもシンプルです。Jailはディレクトリツリーと小さな設定ファイルであり、ホストのカーネルに対して実際のFreeBSD userlandを実行します。隔離を実現するために、イメージレジストリやバックグラウンドデーモンを必要としません。複数のサービスをホストするサーバーにおいて、Jailは非常に少ないオーバーヘッドで強力な分離を提供し、bastille のようなツールによって管理が容易になります。これは、各サービスを独自のDockerコンテナで実行することと同じ発想を、逆の方向から実現したものです。
pf: 書きやすさが魅力のファイアウォール
FreeBSDのパケットフィルタであるpfは、一つの理由で広く支持されています。そのルール構文が、平文の文章のように読めるからです。ルールセットは、上から下まで読み進めることで実際に内容を理解できるファイルです。Linuxでiptables/nftablesのルールを手書きする場合と比較して、pfは人間がメンテナンスすることを想定して設計されているように感じられます。もし大量の iptables 行のルールと戦ったことがあるなら、pfは救いとなるでしょう。
FreeBSDの適した用途と適さない用途
FreeBSDは、ZFSによるストレージサーバー、pfによるファイアウォールおよびルーター、そして最新のカーネル機能の追求よりも、安定した一貫性のあるbase systemとクリーンなアップグレードが重要となるあらゆるサーバーにおいて、強力な選択肢となります。そのドキュメントであるFreeBSD Handbookは、オープンソースの世界でも最高峰のマニュアルの一つであり、これを読むことがシステムを学習する最短ルートです。
しかし、あらゆる用途に適しているわけではありません。コンテナのエコシステムはLinux中心であり規模も小さいため、ワークフロー全体がDockerイメージやKubernetesに依存している場合、主流に逆らうことになります。一部のプロプライエタリなドライバやベンダーツールはLinux専用です。また、本サイトを含む多くのセルフホスティングのチュートリアルは、Linuxディストリビューションを前提としています。ホームサーバーやサイドプロジェクト用サーバーで何が実行可能かという全体像については、セルフホスティングの概要がLinux向けに書かれていますが、その考え方は共通しています。直接的な機能比較については、サーバー用途におけるLinux対FreeBSDを読んでください。
別の比較として、Linux対Windows Serverでは、もう一つの主要なサーバープラットフォームとLinuxを比較しています。
FAQ
FreeBSD 15はサーバーに適していますか?
はい、適切な用途であれば適しています。FreeBSD 15は、ZFS、jails、pfがbase systemに組み込まれた、安定し一貫性のあるサーバー用オペレーティングシステムです。第一級のドキュメントと、ユニット単位のクリーンなアップグレードを提供します。特に、最新のカーネル機能よりも予測可能性を重視するストレージ、ファイアウォール、および長期稼働するサービスにおいて非常に強力です。Linux中心のコンテナエコシステムをベースとしたワークフローの場合は、適性が低くなります。
FreeBSDのbase systemとLinuxの違いは何ですか?
Linuxでは、カーネルとuserlandは別々のプロジェクトから提供され、ディストリビューションがそれらを組み立てます。FreeBSDでは、カーネル、コアコマンド、Cライブラリ、ファイアウォール、およびboot loaderは、一つのソースツリーとして一つのバージョンを持ち、freebsd-update またはpkgbaseインストールではpkg を介してユニットとしてアップグレードされます。一方で、インストールするその他の要素は、その上に配置された独立したパッケージレイヤーとして残ります。このbaseとパッケージの分離が、構造上の核心的な違いです。
VPSでFreeBSDを実行できますか?
提供しているホストであれば、VPSでFreeBSDを実行できますが、選択肢はLinuxよりも限定的です。SSD NodesではFreeBSDプランは提供していません。需要が少ないためです。FreeBSDを使用する人は、VPSよりも自身のハードウェアを使用する傾向があります。多くのFreeBSDサーバーは、所有者が直接制御する物理マシンです。
FreeBSDを試す前にLinuxの知識は必要ですか?
必須ではありませんが、あると役立ちます。Linuxを使用したことがあれば、シェル、SSH、および日常的なコマンドの多くは馴染みのあるものに感じられるでしょう。新しく学ぶべき主な事項は、baseとパッケージの分離、ソフトウェアのための pkg(およびFreeBSD 15のpkgbaseインストールでは、freebsd-update が廃止予定のbase systemについても)、そしてファイアウォールとしてのpfです。FreeBSD Handbookがこれらすべてを解説しています。