BSDの子孫
BSDの子孫(ビーエスディーのしそん)では、BSDをもとに開発が行われているオペレーティングシステム (OS) について解説する。主要なものにFreeBSD、NetBSD、OpenBSD、DragonFly BSD、BSD/OS などがある。一部ではMac OS Xも含める場合がある。これはMac OS Xの基礎部分に、MachカーネルとFreeBSDの環境を組み合わせたDarwinを利用しているからである。
FreeBSD、NetBSD、OpenBSD、DragonFly BSD、Darwinはフリーで提供されているが、BSD/OS、Mac OS Xは商用製品として提供されている。
かつてはBSDをもとに各ベンダが提供していたUNIX(BSD系UNIX)もあったが、現在のところ上記のOSをさす場合が多い。
概要
これらのOSは、カリフォルニア大学バークレー校のComputer Systems Research Group (CSRG) で開発された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として知られている。
歴史
- 1978年 1BSDがリリースされる
- 1981年 4.1BSDがリリースされる
- 1982年 SunOS 1.0がリリースされる
- 1991年 4.3BSD Net/2がリリースされる
- 1992年 386BSD、BSD/386(後のBSD/OS)がリリースされる
- 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がリリースされる
BSDの子孫達の棲み分け
おのおののBSDの子孫達はセキュリティーやファイルシステム、デバイスドライバのソースコードなどで交流があり、複数のBSD系のコミッターとなっている開発者も存在する。 そんな中で、おのおのが目指すところの相違によりある種の棲み分けがなされている。
最近では*BSD Usage StaticsにてBSD系の子孫達の利用者数などの統計を取るというプロジェクトが始まっており、これを見るとBSDの子孫達の利用者の分布がわかる。しかしながら、このプロジェクトはFreeBSDから始まったのでその分の下駄があることを考慮して見るべきである。
- FreeBSD
- 元々はインテルのx86プロセッサーでのサポートの充実を念頭に置いて開発されており、x86環境でサポートしているハードウェアの数は多い。また、x64など複数のプロセッサをサポートするという方向性もある。
- newbus vs newconfigの争いに対する不公平な決着への反省から、選挙により選ばれたコアチームがプロジェクトの今後の開発の方向性などを決めるというシステムを採用しており、現在、コアチームには日本人もいる。
- パッケージシステムであるportsのメンテナーやカーネル開発者として日本人のコミッターが多数参加している。
- かつてComputer Systems Research Group (CSRG) でBSDの開発に参加していたマーシャル・カーク・マキュージック (Marshall Kirk McKusick) もSoft updatesやbackground fsckなどのUFSまわりの実装で参加している。
- NetBSD
- 多くのコンピュータ・アーキテクチャでBSD系Unixを動かすというのを念頭に置いて開発されているプロジェクトで、30種類以上のアーキテクチャで動作する。元々BSDがPDP-11からVAXに移植される際にアーキテクチャ依存なところ (machine dependent、略して MD) とアーキテクチャ非依存なところ (machine independent、略して MI) に分けられているが、NetBSDはこれをさらに推し進めていったものと言えよう。
- また、NetBSDは将来まで見越して拡張性のあるしっかりした設計をすることでも知られている。
- シャープ製パーソナルコンピュータ「X68000」シリーズ上でNetBSDが動くようにしたのは日本人であり、日本人の開発者も多い。
- OpenBSD
- NetBSDから分岐してセキュリティーに注意して開発が進められているBSD系Unixであり、最新版のリリースにおいてはインストール直後の標準状態にて10年で2つしかリモートから攻撃可能なセキュリティホールが発見されていなかった。
- OpenSSHやOpenNTPDなどセキュリティーに注力したソフトウェアの開発もよく行っている。
- DragonFly BSD
- DragonFly BSDはFreeBSDとは異なったSMP対応をするためにFreeBSD 4.8Rから分岐したBSD系Unixであり、スケーラブルで理解しやすいカーネルを開発することを目指している。
- FreeBSDは共有する資源に対してロックを行うというモデルを採用しているのに対し、DragonFly BSDはカーネルサービス同士がメッセージをやりとりするというモデルをとっている。
- このような実装だとロックのために開発者が気を遣わなくともよいため、共有資源を使うような箇所の実装において、FreeBSDでカーネル開発をするのに比べて簡単に開発が行えるという利点がある。なお、FreeBSDでの実装とDragonFly BSDでの実装のどちらの実装が良いかという決着はまだ出ていない。
- DragonFly BSDはこのほかにもプロセスのチェックポイントを作成するという機能などFreeBSDにはない様々な興味深い機能が実装されている。