BSDの子孫

BSDの子孫では、Berkeley Software Distribution  をもとに開発が行われているオペレーティングシステム  について解説する。主要なものにFreeBSD、NetBSD、OpenBSD、DragonFly BSD、BSD/OS などがある。一部ではmacOSも含める場合がある。これはmacOSの基礎部分に、MachカーネルとFreeBSDの環境を組み合わせたDarwinを利用しているからである。

FreeBSD、NetBSD、OpenBSD、DragonFly BSD、Darwinはフリーで提供されているが、BSD/OS、macOSは商用製品として提供されている。

かつてはBSDをもとに各ベンダが提供していたUNIXもあったが、現在のところ上記のOSをさす場合が多い。

1. 概要
-----

これらのOSは、カリフォルニア大学バークレー校のComputer Systems Research Group  で開発されたBSDから派生している。なお、BSD自体の開発は4.4BSD Lite Release 2を最後にすでに終了しており、開発およびメンテナンスを行っていたCSRGは解散している。

非商用のBSD系Unixの多くはAT&Tのライセンスに抵触する部分をのぞいたBSDである4.3BSD Net/2より386BSDを経て派生している。386BSDの直系の子孫としてはFreeBSD、NetBSDがあり、今でも精力的に開発されている。OpenBSDやDragonFly BSDは開発方針の違いや開発グループの諍いによってそれぞれNetBSD、FreeBSDから派生したOSで、OpenBSDはセキュリティ、DragonFly BSDはスレッド機構のFreeBSDと異なる方針での実装をそれぞれの目標にしている。

このほかにも、ジュニパーネットワークスのルーターに入っているJUNOS、NEXTSTEP、OPENSTEP、SunOS、Ultrix、NEWS-OSなどもBSDの子孫のOSとして知られている。

2. 歴史
-----

1978年 1BSDがリリースされる
1981年 4.1BSDがリリースされる
1982年 SunOS 1.0がリリースされる
1991年 4.3BSD Net/2がリリースされる
1992年 386BSD、BSD/386がリリースされる
1992年 USL vs BSDiの裁判が起きる
1993年 NetBSD 0.8、FreeBSD 1.0がリリースされる
1994年 USL vs BSDiの裁判の判決に沿って4.4BSD-Liteがリリースされる
1994年 4.4BSD-Liteを元にNetBSD 1.0がリリースされる
1995年 4.4BSD-Liteを元にFreeBSD 2.0がリリースされる
1996年 喧嘩別れしてNetBSD 1.2を元に開発されたOpenBSD 2.0がリリースされる
2004年 SMPにおける設計方針の違いによりFreeBSD 4.8から分岐して開発されたDragonFly BSD 1.0がリリースされる
2014年 高い安全性維持のために厳格に保守的な開発を続けるOpenBSDに対して、安全性への制限を緩めて新しい機能を取り入れようとする設計方針の違いにより、OpenBSDから分岐して開発されたBitrig 1.0がリリースされる

3. BSDの子孫達の棲み分け
---------------

各々のBSDの子孫達はセキュリティやファイルシステム、デバイスドライバのソースコードなどで交流があり、複数のBSD系のコミッターとなっている開発者も存在する。 そんな中で、おのおのが目指すところの相違によりある種の棲み分けがなされている。

最近では[1]にてBSD系の子孫達の利用者数などの統計を取るというプロジェクトが始まっており、これを見るとBSDの子孫達の利用者の分布がわかる。しかしながら、このプロジェクトはFreeBSDから始まったのでその分の下駄があることを考慮して見るべきである。

FreeBSD元々はインテルのx86プロセッサでのサポートの充実を念頭に置いて開発されており、x86環境でサポートしているハードウェアの数は多い。また、x64など複数のプロセッサをサポートするという方向性もある。newbus vs newconfigの争いに対する不公平な決着への反省から、選挙により選ばれたコアチームがプロジェクトの今後の開発の方向性などを決めるというシステムを採用している。かつてComputer Systems Research Group  でBSDの開発に参加していたマーシャル・カーク・マキュージック  もSoft updatesやbackground fsckなどのUFSまわりの実装で参加している。 NetBSD多くのコンピュータ・アーキテクチャでBSD系Unixを動かすというのを念頭に置いて開発されているプロジェクトで、30種類以上のアーキテクチャで動作する。元々BSDがPDP-11からVAXに移植される際にアーキテクチャ依存なところ  とアーキテクチャ非依存なところ  に分けられているが、NetBSDはこれをさらに推し進めていったものと言えよう。また、NetBSDは将来まで見越して拡張性のあるしっかりした設計をすることでも知られている。シャープ製パーソナルコンピュータ「X68000」シリーズ上でNetBSDが動くようにしたのは日本人であり、日本人の開発者も多い。 OpenBSDNetBSDから分岐してセキュリティに注意して開発が進められているBSD系Unixであり、最新版のリリースにおいてはインストール直後の標準状態にて10年で2つしかリモートから攻撃可能なセキュリティホールが発見されていなかった。OpenSSHやOpenNTPDなどセキュリティに注力したソフトウェアの開発もよく行っている。 DragonFly BSDDragonFly BSDはFreeBSDとは異なったSMP対応をするためにFreeBSD 4.8Rから分岐したBSD系Unixであり、スケーラブルで理解しやすいカーネルを開発することを目指している。
FreeBSDは共有する資源に対してロックを行うというモデルを採用しているのに対し、DragonFly BSDはカーネルサービス同士がメッセージをやりとりするというモデルをとっている。このような実装だとロックのために開発者が気を遣わなくともよいため、共有資源を使うような箇所の実装において、FreeBSDでカーネル開発をするのに比べて簡単に開発が行えるという利点がある。なお、FreeBSDでの実装とDragonFly BSDでの実装のどちらの実装が良いかという決着はまだ出ていない。DragonFly BSDはこのほかにもプロセスのチェックポイントを作成するという機能などFreeBSDにはない様々な興味深い機能が実装されている。 BitrigOpenBSDはセキュリティ重視であり高い安全性を持つが、一方で新機能の導入に消極的という意見もあった。Bitrigは、過剰とも言われる安全性に対する制限を緩和することで新しい機能を積極的に取り入れていくという開発方針を採るとしている。

4. 一覧
-----

並び順は公開された日時に従う。

386BSD
NetBSD
OpenBSD
Bitrig
FreeBSD
macOS
DragonFly BSD

5. 関連プロジェクト
-----------

Lumina - BSD向けに開発された軽量デスクトップ環境。

6. 脚注
-----