FreeBSD

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動先: 案内検索

テンプレート:Infobox OS

FreeBSD(フリービーエスディー)は、Unix系オープンソースオペレーティングシステム (OS) である。NetBSDOpenBSDと同じくBSDの子孫の1つである。近代的なオープンソースBSDとしてはNetBSDに次いで古く、1993年12月に最初の公式リリースである1.0が公開された。

特徴

FreeBSDの開発者達は、Webサイトにて、安定していて高速・高性能でなおかつ安全、先進的な機能や多くのセキュリティ機能を提供していると語っていた。FreeBSD jail等の機能もレンタルサーバ等に適したシステムであるといえる。Linuxと異なりカーネルとユーザランドを含めて一つのOSであり、そしてOS側にGPLのものを含まないようにしていることも特徴の一つである。そして、堅牢性の高いBSDカーネルの設計が最大の特徴として認知されている。

OSとしての特性
Linuxと比べてカーネルの高負荷耐性が高く、負荷が増大しても性能が劣化しにくい(特にソフトウェアの異常終了が少ない)特徴がある。また、この高い安定性を実現しながらもLinuxより軽快に動作する。しかし、SolarisやHP-UXやAIX等の伝統的なUNIX-OSと比べると高負荷時の安定性は劣る。
デスクトップ環境
初期状態でツールが一通り揃っているLinuxと違い、ガイダンスに沿って普通にインストールした状態では最小の構成に留められており、CUIからしか操作を行えない。デスクトップ環境を揃えるにはソフトウェアのインストールと設定の作業は必須である。GUI経由の設定よりも手作業で設定ファイルを直接書き換えて設定する事が多く、若干UNIX熟練者向きであるとされる。しかし、サーバー向けとして見た場合には、このシンプルなOSの構成は安定性に大きく寄与していると言える。
最適化
ソースコードからコンパイルし直すことで、OS全体を特定のCPUに対して最適化する事が可能で、最新のLinuxが動作しないパソコンでも最新版のFreeBSDを実用的な速度で動作させることが可能である。
旧世代ハードウェアのサポート
ISAバスの拡張カード等、旧世代ハードウェアのドライバが豊富に含まれており、最新機種のみならず、数世代以上前のコンピュータでも動作させることが可能である。(ただし、性能面での制約はより厳しいものとなる)
グラフィックスデバイスのサポート
デスクトップ環境としてみた場合、2D限定あるいは3D機能の一部はX.Org Serverのドライバが多くのビデオカードに対応しておりXfceGNOMEKDE等のデスクトップ環境を使うことができる(フリーのドライバを使う限りでは多少の対応状況の違いはあるもののLinuxとほぼ同様の環境となる)。NVIDIAのビデオカードであればメーカーのドライバがサポートされていてOpenGLで完全な3Dハードウェアアクセラレーションが動作する。
他のプラットフォームのエミュレーション
カーネルレベルでのLinuxバイナリ互換機能(カーネル2.6.16相当)や、アプリケーションレベルではWineによるWindows互換環境等を用いてネイティブでないソフトウェアも使うことができる。

歴史

1991年ウィリアム・ジョリッツによって4.3BSD Net/2をベースとしたOS、386BSDが発表された。

しかし公開後の開発が停滞したため、386BSDのユーザらは「Unofficial 386BSD Patchkit」を製作し、バグの対応などを行っていた。その後386BSDは、ほぼ1年にわたって放っておかれ、やがてパッチキットの量は膨大になってしまった。

そこで、386BSDのユーザらは「386BSDの開発の手助けのため」、パッチキットを適用した状態の「クリーンナップ」スナップショットの製作プロジェクトを進めた。しかし、Jolitzがこのプロジェクトの受け入れを拒否したことにより、プロジェクトは路線変更を余儀なくされた。結局、パッチキットの最後の取りまとめ役であったNate Williams、Rod Grimes、ジョーダン・ハバードらは、自分達で新しいOSの開発を行う事を決意し、1993年にFreeBSDプロジェクトをスタートさせた。「FreeBSD」という名前はDavid Greenmanによって考案されたものである。1993年6月19日、Jordan Hubbard, Rod Grimes および David Greenman は、FreeBSDの開発開始をアナウンスした。

FreeBSDは4.3BSD Net/2をベースに開発が行われ、1993年12月には最初のリリースであるFreeBSD 1.0が、そして、1994年5月にはFreeBSD 1.1がリリースされた。

しかしこの後、当時UNIXのソースコードの権利をもっていたノベルカリフォルニア大学バークレー校との長期に渡った訴訟の和解が成立し、4.3BSD Net/2にUNIXのライセンスに抵触する部分があることが正式に認められた。そのため、FreeBSDはそのまま開発を続けることが不可能となり、1994年7月にリリースされたFreeBSD 1.1.5.1を最後に4.3BSD Net/2をベースにした開発を停止した。

FreeBSDプロジェクトは、UNIXのライセンスに抵触していないことが公式に宣言された4.4BSD-Liteを基にしてFreeBSDの開発を再開した。再開後の最初のリリースであるFreeBSD 2.0は1994年11月に発表され、その後、FreeBSDは順調に発展を続けている。

なお、X Window Systemについては、当初XFree86を標準として採用していたが、FreeBSD 5.3からはX.Orgを標準とするように移行した。

パッケージ管理

FreeBSDのパッケージ管理システムは、ビルド済みパッケージをインストールするpackageとソースをビルドするスタイルのportsがある。OS以外でpackageのインストールしたものは原則として「/usr/local」以下と「/var/db/pkg」以下に入る。つまりOS部分とほぼ分離されているので明示的な管理やバックアップもしやすいが 基本的にライブラリを共用する発想で構成されているのでWindows等でアプリごとにライブラリを用意することに慣れている人には使い辛いと感じることもある。7系から8系等、メジャーバージョンアップの際には使用ライブラリの互換性がなくなるが一部(usbを使うものなど)を除いて「compat7x」を入れることにより動作する。

package

packageはビルド済みのバイナリをシステムにインストールする仕組みでportsからインストールされたものも含めてバージョンやファイル構成が記録される。

サーバは本家の他日本など各地にある。自分でもpackageを作る事が出来るので複数台同一環境のPCを管理している場合にも使うことができる。

単独のpackageの個別インストールもできるが、「pkg_add -r」コマンドで上位にあるpackageを指定することにより依存packageもインストールされる。しかしpackageとPCのPerl等依存ツールやライブラリのバージョンが異なる場合、手動で修正が必要である等の問題があったり、RELEASE版では最新のpackageを取得するために環境変数「PACKAGESITE」を指定しなくてはいけない他、Web上の情報では「FreeBSDはビルドするのが当たり前」という風潮がかつては多かったため新規インストール以外にはあまり使われないように見受けられる。基本的にはports更新後一週間後程度にはstable版に最新のpackageがアップロードされているようだ。packageのバージョンアップ用のサポートツールとしてpkg_replace等がある。

ports

portsは半自動的にソースコードからpackageのビルド及びインストールを行う方法である。特殊なパッチを当てる当てないの選択肢ダイアログ等が表示される場合もあるが、基本的にはソースコードのダウンロードからコンパイル、package生成、packageインストールまでの一連の流れを自動的に行うことができる。

ただ、実際にはシェルスクリプトだけのものやフォント、NVIDIA等メーカー品バイナリやJava等ビルド不要のものも多い。packageに比べると作業領域を明示的に指定できる長所がある。

基本的には「/usr/ports」に置かれる。portsの最新情報への更新は「portsnap」というコマンドを用いる事で最小限の更新だけで済ませられる(あるいはcsupないしcvsupを用いてportsツリーを更新することも可能。csup/cvsupについては次項参照のこと)。portsに登録されているソフトウェアが新バージョンへ更新した時に一時的にビルドできなくなるなどの問題が発生することもあるので、Perl等の重要なportsの更新時には一定期間(1週間程度)様子を見る必要がある。

portsに登録されているソフトウェアは2013年1月3日の時点で24,000を超えるが日々増加している。そのメンテナンス状況はメンテナと呼ばれる管理者の能力や意欲に左右される面がある。そのため、常時メンテナンスされて高い品質を維持しているportsも多いが、逆にソースファイルのサイトが閉じていたり、ビルドできなかったりあるいは古いバージョンのまま放置されていたりするものがあるという問題点も指摘されている。

日本人メンテナの活動により、日本語環境に関するportsは他言語に比べ比較的良く整備されており、特に日本語版LaTeXは完全な環境が容易かつ安定してインストールできることは特徴的である。

無駄なportsを増やさないために「/etc/portsnap.conf」で使わないカテゴリを指定できるがあくまでディレクトリ単位でのカテゴリ指定しかできない。安直にメタポートと呼ばれるものをビルドしようとすると依存するものを全てビルドしてしまうのでファイル構成を把握したらベーシックなライブラリから更新するとストレージ使用効率が良い。

portsからインストールしたものは、たとえpackage生成を行わないように指定したとしても、packageからインストールしたものと同等に扱われる。サポートツールとしてpkg_replaceの他portmasterとruby依存のportupgrade等が使われる。pkg_addに起因するportの依存記述には問題がありしばしインストールの妨げになることがある。

pkg

pkgは、FreeBSD用の次世代のパッケージ管理システム pkgng として開発されてきたものである。従来のバイナリベースパッケージ管理システムである package よりも、手軽なバイナリアップデート、リモートパッケージ検索、依存関係の管理等の機能が強化されている。pkgは、これまでのものとはパッケージのデータベースの管理方法が異なるため現時点ではFreeBSD 9.x までのバージョンでは、pkgの使用がデフォルト設定にはなっておらず、手動で pkg 管理システムに移行しなければならない。FreeBSD 10.0Rからデフォルトのパッケージ管理システムとして採用されている。

OSのバージョン

FreeBSDでは安定版であるFreeBSD-RELEASEの他FreeBSD-CURRENTFreeBSD-STABLEの2つの開発ブランチが存在する。

CURRENTはまさに最新のFreeBSDのバージョンの開発ブランチで、作業進行中のソースがならび、開発途上のソフトウェアや過渡的な機能などが含まれている。しかし、これがリリース版に採用されるとは限らない。

STABLEは主に開発が終わったCURRENT開発ブランチに対して、分枝されてリリース版(安定版)を作成する開発ブランチである。こちらに移ってからは全ての修正はこの開発ブランチで行われる。1つのバージョン系列の開発が終わるとこのブランチからも外れ、以後一定期間は必要に応じてセキュリティアップデート等の修正が行われる。修正はパッチをあてることで行われ、8.1-RELEASE-p2などと最後尾に修正が行われた回数(pはpatch levelのこと)が示される。

なお、いったんSTABLEとして扱われると、1つ上の開発バージョンがCURRENTとして扱われることになる。例外として、FreeBSD 5系では多くの改善や機能追加が行われたために、5.0〜5.2の間はリリース版が出ているのにも関わらずSTABLEとして扱われない状態が続いていたが、6.0がリリースされてからは元の体制に戻った。

バージョン管理

FreeBSDのSTABLE版とCURRENT版は、subversionを使ってソースコードレベルでOSのバージョン管理を行う。 ソースコードの更新にはかつては「csup」というコマンドが用いられたが(csupはCVSupの主要な機能をC言語で再実装したものである。これは、CVSupがプログラム言語として一般的でないModula-3で実装されており、これが理由でcsupはベースシステムに含まれるがCVSupはportsから導入する)、cvsupによる配布は2013年2月一杯で終了し、以降はsubversionが用いられている。

/usr/src以下に展開されたソースコードをmakeすることにより、メジャーバージョンの更新も含めてOS全体のバージョンアップができる。

バイナリで配布されたRELEASE版に対しては「freebsd-update」というコマンドが用いられ定期的なセキュリティパッチ等のバージョンアップができる。GENERICカーネルであればカーネルのアップデートも可能である。通常はセキュリティパッチが入るとカーネルの名称に「p2」等とバージョンがつくがカーネル以外だけの更新の場合カーネル名称は変わらない。

セキュリティ対応と保証期間

FreeBSDのSTABLE版及びRELEASE版については、リリース後一定期間、セキュリティに関する問題が発生した場合に必要なアドバイザリ及びアップデートがリリースされる保証期間が設けられる。保証期間については以下の3つの区分が存在する[1]。なおCURRENT版についてはあくまで開発版という扱いのため、セキュリティアップデートやアドバイザリは提供されない。

Early Adopter
CURRENT版から分岐した最初のRELEASE版に適用されるもの(ただし2012年現在適用例はない)。保証期間はリリース後6ヶ月。
Normal
通常のRELEASE版(STABLE版から分岐したもの)に適用されるもの。保証期間はリリース後1年。
Extended
原則として、メジャーバージョンに対して2番目以降のRELEASE版及びそれに対応するSTABLE版に適用されるもの。保証期間はリリース後2年。

ただし実際には、各RELEASE版に対しNormal及びExtendedのどちらを選択するか、その時点でのRELEASE版のコード品質等を考慮して個別に定められることが多く、時には「古いRELEASEの方が新しいRELEASEよりも保証期間が長い」という逆転現象が起こることがある(例:8.1-RELEASEの保証期間が2012年7月末までなのに対し、8.2-RELEASEの保証期間は2012年2月末まで。また過去には7.1-RELEASEと7.2-RELEASEの間でも同様の逆転現象が発生した。ただし8.2-RELEASEの保守終了予定日は8.1-RELEASE同様2012年7月末まで延長されている)。このため、特にサーバ等で長期に運用する予定の機器では、保証期間の終了時期を踏まえたバージョン選択を行う必要がある。

最新のバージョン

現在のリリース版と開発版、およびこの時点でセキュリティアップデートなどのサポートしている安定版は以下の通りである。

  • RELEASE(最新リリース):FreeBSD 10.0-RELEASE(2014年1月20日)
  • CURRENT(最新開発版):FreeBSD 11-CURRENT, 10-RC版も公開されている。
  • STABLE(安定版):FreeBSD 9.x、8.x

バージョンごとの特徴

FreeBSD 1

「1.0-RELEASE」は、4.3BSD Net/2を基にして1993年11月に開発された。

4.3BSD Net/2にUNIXのライセンスに抵触する部分があるとして、1994年7月5日にリリースされた「1.1.5.1-RELEASE」を最後に4.3BSD Net/2を基にした開発を停止。

FreeBSD 2

「2.0-RELEASE」はUNIXのライセンスに抵触していないことが公式に宣言された4.4BSD-Liteを基にして1994年11月22日に発表された。バージョン2の最終版の「2.2.8-RELEASE」は1998年11月29日に発表された。

「2.0-RELEASE」は、AT&T由来のUNIXソースコードの著作権者ノベルの法的請求権から(将来に渡って)公的に解放された最初のFreeBSDのバージョンである[2]。また、インターネットサーバー拡大期の始まりにおいて、広く使われた最初のバージョンでもある。

FreeBSD 3

「3.0-RELEASE」は1998年10月16日に発表された。バージョン3の最終版の「3.5-RELEASE」は2000年6月24日に発表された。

「3.0-RELEASE」はジャイアントロックを用いてSMPシステムをサポートできる最初のブランチである。「3.1-RELEASE」からはUSBをサポートし、「3.2-RELEASE」からギガビット・イーサネットカードをサポートした。

FreeBSD 4

「4.0-RELEASE」は2000年3月13日に発表された。2005年1月25日に出た最終版の「4.11-RELEASE」は2007年1月31日までサポートされていた[3]

バージョン4は、その安定性を賞賛され、最初のインターネット・バブルの時期にプロバイダホスティングサーバから好まれたオペレーティングシステムであり、Unix系では最も安定した高いパフォーマンスのオペレーティングシステムの一つと広く見なされている[4]。バージョン4の新機能では、「4.1-RELEASE」より(後にNetBSDOpenBSDのシステムの一部となる)kqueue(2)のシステムコールを導入した[5]

FreeBSD 5

「5.0-RELEASE」は2003年1月14日にCURRENT(最新開発版)として発表された。バージョン5の最初の安定版のリリースは、2004年9月6日に発表された「5.3-RELEASE」である(「5.05-RELEASE」~「5.2.1-RELEASE」は「5-CURRENT」として一般ユーザの利用は勧められていなかった)[6]。バージョン5の最終安定版は2006年5月25日に出た「5.5-RELEASE」であった。

バージョン5の最初のブランチとして登場した「5.0-RELEASE」は、先進的なマルチプロセッサアプリケーションスレッディングUltraSPARCIA-64のプラットフォーム対応等のサポートといった注目度の高い機能を手広く先取りしていた。

カーネルロック機構の変更
バージョン5の最大のアーキテクチャに関する開発は、SMPを改善させる為に低レベルのカーネルロック機構を大きく変更させた点であった。これによって、ジャイアントロックからカーネルの大部分のリソースが開放された。複数のプロセスを同時にカーネルモードで実行できるようになった。
KSE
KSE (カーネルスケジュールエンティティ "Kernel Scheduled Entities" )は、1 個のプロセスが複数のカーネルレベルスレッドを持てるようにするための機構である[7]。原理的には、KSEと同様に"M:N" モデルを用いる、NetBSDに実装されたScheduler activationsに似ている。KSEは、「5.3-RELEASE」より安定版の実装が始まり、「7.0-RELEASE」で1:1スレッド(1個のカーネルスレッドを1個のユーザーランドスレッドが占有して利用)の実装に置き換えられるまでFreeBSDのデフォルトのスレッド機構だった。
GEOM
Poul-Henning Kampの貢献によって作られた、ディスクI/O要求を変換するモジュール型フレームワークであるGEOM を実装することで、I/O層のブロック(記録単位)[8]をかなり変更できるようになった。GEOMは、ミラーリング(gmirror)[9]暗号化(GBDEとGELI)[10]などの機能の多くを簡単に作成可能とする。このGEOMの開発はDARPAによる支援を受けて作成されている。

FreeBSD 6

「6.0-RELEASE」は2005年11月4日にリリースされた。バージョン6の最終版の「6.4-RELEASE」は2008年11月11日にリリースされた。これらのバージョンは、SMPと先進的なIEEE 802.11の機能性の更なる開発の他に下記のようなものがある。

スレッド最適化
VFSマルチプロセッサセーフ(MPSAFE)が有効となり、ジャイアントロックが最小限まで減らされた[11]
著しいネットワークスタックのパフォーマンス強化
libthrライブラリのlibc_rのデフォルトスタックサイズ が増やされ、パフォーマンス性を高めた。32-bitプラットフォームでは、メインスレッドはデフォルトで2MBのスタックを受け取り他のスレッドではデフォルトで1MBのスタックを受け取る。(64-bitプラットフォームでのデフォルト スタック サイズ は、それぞれ4MBと2MBとなる。)
OpenBSM
TrustedBSD[12]プロジェクトによって作成されBSDライセンスの下でリリースされたセキュリティイベントの監査用のOpenBSM[13]と呼ばれる基本セキュリティモジュール(BSM)監査[14]の実装をした。これはアップル社オープンソースDarwinに見出したBSM実装に基づいたものである。

その他、プリエンプティブカーネル(タスクの置き換え)とハードウェアパフォーマンス測定ドライバ(HWPMC)[15]のサポート等が挙げられる。

FreeBSD 7

「7.0-RELEASE」は2008年2月27日にリリースされた。バージョン7の最終版の「7.4-RELEASE」は2011年2月24日にリリースされた。

新機能は下記の通り多彩に渡る。

ベンチマークは、LinuxだけでなくFreeBSDの以前のバージョンに比べても著しい速度の向上を示している[19]

ULEスケジューラ
「5.1-RELEASE」から実験的に実装されてきたULEスケジューラは、「7.0-RELEASE」の新版でカーネルの構築時にスケジューラを調整できるようになるなど大きく改良されていたが、依然「4BSDスケジューラ」と呼ばれる従来のスケジューラが標準で実装されていた[20]。「7.1-RELEASE」では、AMD64/i386版で、標準でULEスケジューラが採用された[21]
システム情報取得機能「DTrace」
「7.1-RELEASE」よりDTraceが実装されてシステムのダイナミックな監視やトラブルシューティングが可能になった[21]。「プローブ(probe)」と呼ばれるデータ観測ポイントに、dtraceコマンドを含む「DTraceコンシューマ」という情報所得するプログラムを使って情報を取得する。dtraceコマンドは「D」と呼ばれるC言語に似たスクリプト言語で記述することによって実行ができる。これにより、プローブからのデータを取り出したり集計することができる[22]
jailによる仮想環境構築
「7.2-RELEASE」では、jailというOSレベルでの仮想化機構が実装された。1つのJail仮想環境に対して複数のIPv4/v6アドレスを割り当てたり、IPアドレスを割り当てないで運用したりすることが可能になった[23]

「4.0-RELEASE」より対応していたDEC Alphaアーキテクチャへの対応は、「7.0-RELEASE」より中止となった[24]

FreeBSD 8

「8.0-RELEASE」は2009年11月25日にリリースされた[25]。2009年8月にトランクからバージョン8はブランチした。バージョン8の最新版は「8.4-RELEASE」で2013年6月7日にリリースされた[26]

主な機能は、SuperPages対応、Xenの「ドメインU (domU)」への対応、ネットワークスタックの仮想化、スタックスマッシュプロテクション、新しいTTYレイヤへの置き換え、大幅に更新され、改善されたZFSへの対応、「8.2-RELEASE」で追加されたUSB3.0とそのホストコントローラの規格であるxHCIへの対応、IGMPv3を含むマルチキャストのアップデート、(「8.2-RELEASE」で追加された)インテルCPU対応のNFSv4AESアクセラレータを導入しているNFSクライアント・サーバの書き換えである。

改良されたデバイスのmmap()の拡張機能によって、x86-64プラットフォーム用の64ビットNVIDIAディスプレイドライバが実装可能となった。プラグイン対応の輻輳制御フレームワークと、Linuxのエミュレーション下で実行されるアプリケーションのシステム情報を取得するDTraceを使用可能とする機能は「8.3-RELEASE」で追加された。

FreeBSD 9

「9.0-RELEASE」は2012年1月12日にリリースされた[27]。「9.1-RELEASE」は2012年12月31日にリリースされた[28]。「9.2-RELEASE」は2013年9月30日にリリースされた[29]。「9.3-RELEASE」は2014年7月16日にリリースされた[30]

リリースの主な機能は、新しいインストーラ bsdinstall(8) の追加、UFSのFFS(Fast Filesystem)がsoftupdatesジャーナリングに対応、ZFSがバージョン28に更新、ユーザレベルDTraceの導入、NFSサブシステムが、NFSv3およびNFSv2に加えてNFSv4に対応した新しい実装に更新、ファイル保護機能Capsicumをカーネルでサポート[31]、FreeBSD/powerpcでPlayStation 3をサポートなどである。

カーネルとベースシステムはClangを使用して構築することができるようになったが、「9.0-RELEASE」はまだデフォルトでGCC4.2を使用している。

Orbis OS
PlayStation 4ゲーム機用OSとして、「9.0-RELEASE」からSCEフォークした「Orbis OS」と呼ばれるFreeBSD派生OSが使用されている[32][33]

FreeBSD 10

「10.0-RELEASE」は2014年1月20日ににリリースされた[34]

  • 非推奨が含まれるGCCをClangに置き換えている。
  • BINDをベースシステムから削除されている。
  • デフォルトパッケージ管理ユーティリティとしてpkg(7)を採用している。
  • iSCSI規格の実装

VirtIO (準仮想化)ドライバがKVMに対応、FUSEの実装などである[35]

「10.0-RELEASE」に実装されたBHyVe (BSDハイパーバイザ)は、まだ実験的なハイパーバイザであるが、仮想マシン内でゲストOSを稼働できる。仮想CPU数・ゲストメモリ・IOコネクティビティなどなどもコマンドラインパラメータで指定できる[33]

これまでのリリース

掲載しているのはRELEASEのアナウンスがされたバージョンのみ。

凡例
サポート切れ(過去のリリース)
サポート中 STABLE(安定)版
リリース中 CURRENT(最新開発)版
開発中
バージョン[36] リリース日[37] サポート終了予定[38] 備考
1.0-RELEASE 1993年11月1日
1.1-RELEASE 1994年5月6日
1.1.5-RELEASE 1994年6月30日
1.1.5.1-RELEASE 1994年7月5日
2.0-RELEASE 1994年11月22日
2.0.5-RELEASE 1995年6月10日
2.1-RELEASE 1995年11月19日
2.1.5-RELEASE 1996年7月16日
2.1.6-RELEASE 1996年11月15日 FreeBSD 2.1.6.1-RELEASEに置き換え
2.1.6.1-RELEASE 1996年11月26日
2.1.7-RELEASE 1997年2月20日
2.1.7.1-RELEASE 1997年3月19日
2.2-RELEASE 1997年3月16日
2.2.1-RELEASE 1997年3月25日
2.2.2-RELEASE 1997年5月16日
2.2.5-RELEASE 1997年10月22日
2.2.6-RELEASE 1998年3月25日
2.2.7-RELEASE 1998年7月22日
2.2.8-RELEASE 1998年11月30日
3.0-RELEASE 1998年10月15日
3.1-RELEASE 1999年2月15日
3.2-RELEASE 1999年5月18日
3.3-RELEASE 1999年9月17日
3.4-RELEASE 1999年12月20日
3.5-RELEASE 2000年6月24日
4.0-RELEASE 2000年3月13日
4.1-RELEASE 2000年7月27日
4.1.1-RELEASE 2000年9月27日
4.2-RELEASE 2000年11月22日
4.3-RELEASE 2001年4月20日
4.4-RELEASE 2001年9月20日
4.5-RELEASE 2002年1月29日 2002年12月31日
4.6-RELEASE 2002年6月15日 2003年5月
4.6.2-RELEASE 2002年8月15日 2003年5月
4.7-RELEASE 2002年10月10日 2003年12月
4.8-RELEASE 2003年4月3日 2004年3月31日
4.9-RELEASE 2003年10月28日 2004年10月31日
4.10-RELEASE 2004年5月27日 2006年5月
4.11-RELEASE 2005年1月25日 2007年1月31日
5.0-RELEASE 2003年1月14日 2003年6月30日 6.0が出るまではCURRENT(開発ブランチ)扱いであった
5.1-RELEASE 2003年6月9日 2004年2月
5.2-RELEASE 2004年1月9日 2004年12月31日
5.2.1-RELEASE 2004年2月25日 2004年12月31日
5.3-RELEASE 2004年11月6日 2006年10月31日 5.x系では初めてとなるSTABLEブランチからのリリース
5.4-RELEASE 2005年5月9日 2006年10月31日
5.5-RELEASE 2006年5月25日 2008年5月31日
6.0-RELEASE 2005年11月4日 2007年1月31日
6.1-RELEASE 2006年5月8日 2008年5月31日
6.2-RELEASE 2007年1月15日 2008年5月31日
6.3-RELEASE 2008年1月18日 2010年1月31日
6.4-RELEASE 2008年11月28日 2010年11月30日
7.0-RELEASE 2008年2月27日 2009年4月30日
7.1-RELEASE 2009年1月4日 2011年2月28日
7.2-RELEASE 2009年5月4日 2010年6月30日
7.3-RELEASE 2010年3月23日 2012年3月31日
7.4-RELEASE 2011年2月24日 2013年2月28日
8.0-RELEASE 2009年11月25日 2010年11月30日
8.1-RELEASE 2010年7月23日 2012年7月31日
8.2-RELEASE 2011年2月24日 2012年7月31日
8.3-RELEASE 2012年4月18日 2014年4月30日
8.4-RELEASE 2013年6月7日 2015年6月30日
9.0-RELEASE 2012年1月12日 2013年3月31日
9.1-RELEASE 2012年12月30日 2014年12月31日
9.2-RELEASE 2013年9月30日 2014年12月31日
9.3-RELEASE 2014年7月16日 2016年12月31日
10.0-RELEASE 2014年1月20日 2015年1月31日
11.0-RELEASE
バージョン リリース日 サポート終了予定 備考

※2006年4月1日には、エイプリルフールのネタとしてFreeBSD 2.2.9-RELEASEが発表されている。

バージョン別の主な機能変更

1.1-RELEASE[39]
2.0-RELEASE[40]
  • コードのベースをBSD-Lite 4.4に取り換え
  • 新規のインストーラ
  • 新規のブートマネージャ
  • (FAT・unionfs・kernfs等)多くのファイルシステム
  • 大規模ファイルシステム用に差し替えた64ビットのコード
  • ロード可能なファイルシステム等のコードの置き換え
  • NetBSDからロード可能なカーネルモジュールをインポート
2.0.5-RELEASE[41]
2.1.5-RELEASE[42]
  • バグとセキュリティの修正
  • PCIバス解析
  • 一部のドライバの追加
2.1.6-RELEASE[43]
  • バグとセキュリティの修正
  • インストール機能の改良
2.1.7-RELEASE[44]
  • バグとセキュリティの修正
2.2-RELEASE[45]
2.2.1-RELEASE[46]
  • 2.2用のバグ修正
  • Adaptec 2940」と「インテルEtherExpress Pro」のドライバのアップデート
  • CD-ROMパッケージのインストーラの修正
2.2.2-RELEASE[47]
  • NFSv3が標準実装
  • 仮想FTPサーバ機能
2.2.5-RELEASE[48]
2.2.6-RELEASE[49]
  • ATAPIのフロッピーディスクドライブ
  • Linuxulatorの改良
  • 新しいサウンドドライバの対応
  • 新しい(PnP)の対応
2.2.7-RELEASE[50]
2.2.8-RELEASE[51]
  • ipfirewallのコンポーネントのdummynet traffic shaper機能
  • マルチインタフェース間のブリッジ機能
  • 8GB以上のIDEドライブに対応
3.0-RELEASE[52]
3.1-RELEASE[53]
  • USB対応
  • ユーザー認証システムのPAM(Pluggable Authentication Modules)機能
3.2-RELEASE[54]
3.3-RELEASE[55]
  • 改良されたUSB対応
  • RAIDを実行できるストレージ・マネージャーの「vinum」のメジャーアップデート
  • IPFWの改良
  • 電源管理インタフェース「APM」
  • データリンク層インタフェース「BPF」を標準設定可能にした
  • 多くのドライバを追加
3.4-RELEASE[56]
  • Netgraph
  • 「vinum」のRAID-5対応
  • ICMPとその他のセキュリティ修正
3.5-RELEASE[57]
4.0-RELEASE[58]
4.1-RELEASE[59]
  • システムコールKqueue
  • IPsecの改良
  • DEC Alpha対応を拡大
  • 標準インストール作業でのUSB対応
4.1.1-RELEASE[60]
  • ブリッジされた環境設定での仮想イーサネットデバイスドライバ
  • ATA100のコントローラ対応
4.2-RELEASE[61]
  • 初期的なUSBスキャナーの対応
  • USBモデムの対応
  • バッファオーバーフロー時のバグ修正
  • Portsの再構築
4.3-RELEASE[62]
  • サウンドドライバのアップデート
  • TCPのバグ修正
  • システムコールkqueueのデバイス層への拡張
4.4-RELEASE[63]
  • 新プロセッサ(Crusoe et al.)の検出
  • SSEの対応
  • smbfs(CIFS)のカーネル対応
  • IPv6スタックのアップデート
4.5-RELEASE[64]
  • TCPの改良(スループット・パフォーマンス・サービス拒否攻撃の鎮静等)
  • 標準でSoft updatesが出来るようになる
  • Linuxulatorの改良
  • 起動ローダが16Kのディスクブロック長を持つファイルシステムからの起動に対応(それまでは8K)
4.6-RELEASE[65]
  • XFree86のバージョンを4.2.0にアップデート
  • ドライバの追加とアップデート
4.6.2-RELEASE[66]
  • ATAデバイスにアクセスした時に生じていたエラーを修正
  • セキュリティ関連のバグを修正
4.7-RELEASE[67]
  • 新しいUSBデバイスとディスクコントローラ
  • (デフォルトでは無効な)IPFW2が追加
4.8-RELEASE[68]
  • 初期的なFirewireハイパースレッディングの対応
  • OpenBSD由来の新しいカーネル暗号化フレームワークを統合
  • ata(4)ドライバがCAMレイヤとCAMドライバ( cd(4)・da(4)・st(4)・pass(4))を経由してATAデバイスをSCSIデバイスとしてアクセスできるようにする機能に対応
4.9-RELEASE[69]
4.10-RELEASE[70]
  • USB 2.0に対応
  • Portsにports/CHANGESとports/UPDATINGが追加
4.11-RELEASE[71]
  • XFree86のバージョンを4.4.0にアップデート
  • インタフェース単位で制御可能なpolling(4)機能が実装されて全てのネットワークドライバは ifconfig(8) を使って制御できるようになる
5.0-RELEASE[72]
5.1-RELEASE[73]
  • x86-64の実験的なサポート
  • マルチスレッドプロセスの為の実験的な1:1スレッド(1個のカーネルスレッドを1個のユーザーランドスレッドが占有して利用)とM:Nスレッディングライブラリ
  • 実験的な Name Service Switch
  • PAE
  • GEOMとオプションから必須機能になったdevfs
  • LinuxulatorでのIPv6対応
  • 実験的なULEスケジューラ
  • 7年間正常に動作していなかった「XNS(Xeroxネットワークシステム)」の対応削除
  • CAMレイヤが232個以上のブロックを持つデバイスに対応
  • rcNG(/etcにある起動スクリプトが削除され、NetBSDから移植された「rc.d」システムに置き換え)
  • XFree86のバージョンを4.3.0にアップデート
  • デンマーク語(da_DK.ISO8859-1)翻訳プロジェクトが発足
5.2-RELEASE[74]
  • x86-64のアーキテクチャが、サポートレベル順位「Tier 1」とされ、ほぼフル対応の対象となった
  • swap pagerの更新
  • カーネルが「Protocol Independent Multicastルーティング」(pim(4))に対応
  • IPv6とIPSec修正と更新がKAMEプロジェクトから統合
  • Bluetoothプロトコルスタックが更新
  • (ata(4)ドライバの ジャイアントカーネルロックが外されて)ata(4)ドライバが大きく書き直された
  • NFSv4クライアントが実装
  • トルコ語(tr_TR.ISO8859-9)翻訳プロジェクトが開始[75]
  • i386版で浮動小数点エミュレーションが削除[76]
  • IDE・SATA802.11a/b/gデバイスのドライバ対応が追加・改善、実験的なIPトラフィックのフィルタリング機能と転送機能のマルチスレッド化
5.2.1-RELEASE[77]
  • バグとセキュリティを修正
  • ATA/IDEおよびSATAの処理の著しい改善
5.3-RELEASE[78]
  • ネットワークインターフェースでのキュー制御をするALTQ
  • ネットワークとソケットサブシステムは、マルチスレッド化され、リエントラント(再入可能)対応となる
  • 新しいデバッグフレームワークKDB(Kernel debugger)の追加
  • TLSの動的・静的リンクの対応
  • OpenBSDからPF導入
  • GCC 3.4.2、Binutils 2.15、gdb 6.1に更新[79]
  • カーネルでWindows NDISネットワークドライバに対応。i386プラットフォームでバイナリ互換インターフェイスを導入
  • XFree86に替わって、X.org 6.7対応
  • サウンドカードのドライバ再構築
  • 暗号処理アクセラレータ
5.4-RELEASE[80]
5.5-RELEASE[82]
  • デュアルコアプロセッサの両方のコアがカーネルを使用して標準でSMPに対応できる
6.0-RELEASE[83]
  • 実験的なPowerPC対応
  • 無線セキュリティプロトコルWPA
  • wirelessアダプタのドライバ追加
  • 802.11g/i802.1XWME/WMM完全対応
  • ファイルシステムとディスクへの直接アクセスのパフォーマンスの改良
6.1-RELEASE[84]
  • ブート時の特別なオプションがなくともPS/2キーボードとUSBキーボードの共存が可能な「キーボード多重化」[85]
  • ファイルシステムの安定性改善
  • 多くのBluetoothデバイスの自動化された環境設定
  • イーサネット対応ドライバ
  • SAS/SATA対応RAIDコントローラ
6.2-RELEASE[86]
  • Xboxのアーキテクチャ対応
  • OpenBSM
  • セキュリティイベント監査
  • ipfirewall
  • セキュリティ修正とエラーパッチのバイナリアップデート
  • OpenIPMI(公開されたシステム管理の為のインタフェース)
6.3-RELEASE[87]
  • X.orgのバージョンを7.3にアップデート
  • UnionFSの再実装
  • 「freebsd-update」アップデートツール追加
  • OpenBSD/NNetBSDからlagg(4)ドライバ導入[88]
6.4-RELEASE[89]
  • 共通鍵ブロック暗号Camellia cipherに対応
  • 起動ローダの変更(USBデバイスからの起動とGPT対応BIOSからのGPTラベルデバイスの起動が可能となる)
  • malloc(9)で割り付けられたメモリのためのバッファ間違いを検出する「RedZone」
  • DVDでの ISOイメージ(x86-64i386対応)
7.0-RELEASE[90] drop support for DEC Alpha[91]
7.1-RELEASE[93]
  • DTrace
  • ULEスケジューラがi386/x86-64版の標準スケジューラとなる
7.2-RELEASE[94]
  • UltraSPARC IIIに対応
  • 仮想メモリサブシステムでのsuperpagesのトランスペアレント(利用者にソフトウェアの存在・作用が意識されない)利用
  • jailの実装
7.3-RELEASE[95][96]
  • 新しいgptzfsboot起動ローダ(GPTZFSに対応)
  • ZFSのバージョンを13にアップデート
  • Perlのバージョンを5.10にアップデート
  • VIA Nanoプロセッサに対応
7.4-RELEASE[97]
8.0-RELEASE[98]
  • 新たなUSB実装「USB2」
  • jailが"Vimage Jail"にアップデート[99]
  • 改善されたULE3スケジューラ
  • superpages対応
  • NFSv4対応
8.1-RELEASE[100]
  • HAST(Highly Available STorage)フレームワーク追加[101]
  • IPFW and dummynet improvements
  • PowerPC G5でのSMPサポート(デフォルトでは無効)
  • MS-DOS用ファイルシステムMP-safe
  • ZFS版対応のブートローダzfsloader追加
  • NFSv4 ACLUFS版とZFS版に正式対応
8.2-RELEASE[102]
  • LinuxulatorにVL4(Video4Linux)をインポート
8.3-RELEASE[103][79]
  • graid(8) GEOMクラスを各種BIOSベースのソフトウェアRAIDコントローラー対応のために追加 (ataraid(4)の代替)
  • ZFSのバージョンを28にアップデート
  • DTraceがLinuxulatorバイナリに対応
  • TCP/IPスタックがカーネルモジュール化された輻輳制御フレームワークmod_cc(9)に対応
8.4-RELEASE[104][105][79]
  • セキュリティ関連を含むバグ修正
  • ZFSの強化
9.0-RELEASE[106][79]
  • ユーザーレベルDTraceの導入
  • GCCに代わってClangLLVMをベースシステムに追加
  • USB3.0に対応
  • FFSがsoftupdatesジャーナリングに対応
  • ATA/SATAドライバーがCAMフレームワークに統合され、AHCIサポート
  • ZFSのバージョンを28にアップデート
  • 新型インストーラーのbsdinstall(8)
  • FreeBSD/ppcがPLAYSTATION3に対応
9.1-RELEASE[107][79]
  • GEM/KMSをサポートする新しいIntel GPUドライバ
  • 高速ユーザー空間パケットI/Oフレームワークとして、netmap(4)を追加
  • サウンドドライバのアップデート
  • IPv6の改善
  • LLVM libc++とlibcxxrtを含む、新しいC++11スタック
  • jailがdevfs・nullfs・ZFSに対応
  • sched_ule(4)によるSMTのロードのバランスの改良
9.2-RELEASE[108][79]
  • ZFSファイルシステムがLZ4圧縮形式に対応
  • ZFSファイルシステムがSSDのTRIMに対応
  • Firewireドライバ削除
  • i386/x86-64アーキテクチャにvirtio(4)ドライバを追加
10.0-RELEASE[109][79]
  • GCCの廃止とclang/LLVMに正式移行 (C/C++コンパイラーおよびライブラリでGPLフリーの達成)
  • bhyve(8)やvirtio(4)の追加など、Microsoft Hyper-V向けの仮想化機能の強化
  • USBをアップデート
  • ファイル保護機能capsicumをカーネルでサポート
  • pkg(7)をデフォルトのパッケージ管理ユーティリティとし、pkg_add(1)、pkg_delete(1)および関連ツールは廃止
  • DNSサーバBIND廃止
  • LDNS(DNSライブラリ)とDNSキャッシュサーバーとしてUnboundを採用
  • Raspberry PiIEEE 802.11sFUSEの追加対応
  • ZFSをサーバーのrootファイルシステムとして利用可能
  • GNUのツールをBSDライセンス版に代替

対応アーキテクチャ

以下に挙げられている以外にもARMアーキテクチャMIPSアーキテクチャXbox等への移植のためのプロジェクトが存在する。

現在対応中

最新のRELEASE版について、公式サイトにてインストールイメージが配布されているアーキテクチャは以下のとおり。

過去に対応していたアーキテクチャ

関連プロジェクト、関連ディストリビューション

FreeSBIEプロジェクト

テンプレート:Main FreeSBIEプロジェクトは、FreeBSDベースのLive CD環境を提供している。

FreeNASプロジェクト

テンプレート:Main FreeNASプロジェクトは、FreeBSDベースの、Webベースでの操作を可能としたNASファイルサーバ用OS環境を提供している。

NAS4Freeプロジェクト

テンプレート:Main NAS4Freeプロジェクトは、FreeNASプロジェクトから分離したNASファイルサーバ用OS環境プロジェクトである。

PC-BSDプロジェクト

テンプレート:Main PC-BSDプロジェクトは、FreeBSDをデスクトップ用途向けに強化したディストリビューションを提供している。

使用例

  • PlayStation 4 - PlayStation 4に搭載されるOSはFreeBSD9.0ベースである[110]
  • PlayStation Vita - 搭載されているOSにFreeBSDが使用されている[111][112]
  • PlayStation 3 - 搭載されているOSにFreeBSDが使用されている[113][114]
  • VIERA - インターネットサービス「ビエラ・コネクト」に利用されているOSはFreeBSDベースである[115]
  • JUNOS - OSはFreeBSDカーネルをベースとしている。
  • Netflix - コンテンツ配信システムのサーバーOSはFreeBSDである[116]
  • 2ちゃんねる - 海外のサーバはすべてFreeBSD。
  • Yahoo! Japan - netcraftによれば、主にFreeBSDが使われている。なお、世界各国のYahoo!では既にLinuxが主になっている。
  • さくらインターネット - 共用サーバーにおいてFreeBSDが使用されている。VPSや専用サーバーなどではLinuxが標準となっている。

関連項目

テンプレート:Portal

脚注

テンプレート:脚注ヘルプ テンプレート:Reflist

外部リンク

テンプレート:Sister

テンプレート:Unix-like テンプレート:FreeBSDテンプレート:Link GA

  1. Supported FreeBSD Releases - FreeBSD Security Information
  2. BSD#4.4BSD と派生
  3. テンプレート:Cite web
  4. 英語版:「FreeBSD」の記事の記述より
  5. *BSD で kqueue・kevent を使ってみよう - X68000.qed.net
  6. FreeBSD 5.3-RELEASE 公開 | スラッシュドット・ジャパン
  7. FreeBSD 5.0-RELEASE 初期利用者のための手引き
  8. テンプレート:Cite web
  9. FreeBSD/GEOM - 情報科学研究室 - 秋田大学
  10. 16.13. ディスクパーティションの暗号化
  11. システム旅譚 - FreeBSD 6.0-RELEASEの新機能と変更点を見る
  12. TrustedBSD - Lavender PukiWiki
  13. OpenBSM: Open Source Basic Security Module (BSM) Audit Implementation
  14. Next: BSM 監査の有効化と使用 - Oracle DocumentationOracleによるSolaris OSでのBSM監査の説明でFreeBSDではないが、用語の解説はちゃんとされています。
  15. FreeBSD/pc98 6.0-RELEASE リリースノート
  16. テンプレート:Cite web
  17. jemallocとかLD_PRELOADについて調べてみた - As a Futurist...
  18. テンプレート:Cite web
  19. テンプレート:Cite web
  20. テンプレート:Cite web
  21. 21.0 21.1 テンプレート:Cite web
  22. テンプレート:Cite web
  23. テンプレート:Cite web
  24. テンプレート:Cite web
  25. テンプレート:Cite web
  26. テンプレート:Cite web
  27. テンプレート:Cite web
  28. http://www.freebsd.org/releases/9.1R/schedule.html
  29. http://www.freebsd.org/releases/9.2R/schedule.html
  30. http://www.freebsd.org/releases/9.3R/schedule.html
  31. FreeBSD 9.0-RELEASE 登場 | スラッシュドット・ジャパン オープンソース
  32. テンプレート:Cite web
  33. 33.0 33.1 テンプレート:Cite web 引用エラー: 無効な <ref> タグ; name "PS4_FreeBSD"が異なる内容で複数回定義されています
  34. テンプレート:Cite web
  35. テンプレート:Cite web
  36. テンプレート:Cite web
  37. テンプレート:Cite web
  38. テンプレート:Cite web
  39. テンプレート:Cite web
  40. テンプレート:Cite web
  41. テンプレート:Cite web
  42. テンプレート:Cite web
  43. テンプレート:Cite web
  44. テンプレート:Cite web
  45. テンプレート:Cite web
  46. テンプレート:Cite web
  47. テンプレート:Cite web
  48. テンプレート:Cite web
  49. テンプレート:Cite web
  50. テンプレート:Cite web
  51. テンプレート:Cite web
  52. テンプレート:Cite web
  53. テンプレート:Cite web
  54. テンプレート:Cite web
  55. テンプレート:Cite web
  56. テンプレート:Cite web
  57. テンプレート:Cite web
  58. テンプレート:Cite web
  59. テンプレート:Cite web
  60. テンプレート:Cite web
  61. テンプレート:Cite web
  62. テンプレート:Cite web
  63. テンプレート:Cite web
  64. テンプレート:Cite web
  65. テンプレート:Cite web
  66. テンプレート:Cite web
  67. テンプレート:Cite web
  68. テンプレート:Cite web
  69. テンプレート:Cite web
  70. テンプレート:Cite web
  71. テンプレート:Cite web
  72. テンプレート:Cite web
  73. テンプレート:Cite web
  74. テンプレート:Cite web
  75. テンプレート:Cite web
  76. テンプレート:Cite web
  77. テンプレート:Cite web
  78. テンプレート:Cite web
  79. 79.0 79.1 79.2 79.3 79.4 79.5 79.6 テンプレート:Cite web
  80. テンプレート:Cite web
  81. テンプレート:Cite web
  82. テンプレート:Cite web
  83. テンプレート:Cite web
  84. テンプレート:Cite web
  85. テンプレート:Cite web
  86. テンプレート:Cite web
  87. テンプレート:Cite web
  88. テンプレート:Cite web
  89. テンプレート:Cite web
  90. テンプレート:Cite web
  91. テンプレート:Cite web
  92. テンプレート:Cite web
  93. テンプレート:Cite web
  94. テンプレート:Cite web
  95. テンプレート:Cite web
  96. テンプレート:Cite web
  97. テンプレート:Cite web
  98. テンプレート:Cite web
  99. テンプレート:Cite web
  100. テンプレート:Cite web
  101. テンプレート:Cite web
  102. テンプレート:Cite web
  103. テンプレート:Cite web
  104. テンプレート:Cite web
  105. テンプレート:Cite web
  106. テンプレート:Cite web
  107. テンプレート:Cite web
  108. テンプレート:Cite web
  109. テンプレート:Cite web
  110. テンプレート:Cite web
  111. テンプレート:Cite web
  112. テンプレート:Cite web
  113. テンプレート:Cite web
  114. テンプレート:Cite web
  115. テンプレート:Cite web
  116. テンプレート:Cite web