2016-04-20

BSD の子孫

BSD は、Berkeley Software Distribution の略語で、1977 年から 1995 年までカリフォルニア大学バークレー校 (University of California, Berkeley, UCB) の Computer Systems Research Group (CSRG) が開発・配布したソフトウェア群および UNIX オペレーティングシステム (OS) のことです。

元となったコードベースと設計は AT&T (正確には 1980 年ぐらいまで AT&T 傘下にあったベル研究所)の UNIX と共通であるため、歴史的には BSD は UNIX の支流 "BSD UNIX" とみなされてきました。1980 年代、ワークステーションクラスのシステムベンダーがプロプライエタリな UNIX として BSD を広く採用していました。例えば、DEC のUltrix、サン・マイクロシステムズの SunOS などです。これは配布するライセンス条件が容易だったためと、当時の多くの技術系企業の創業者が BSD を熟知していたことに因ります。

それらプロプライエタリな BSD 派生 OS は、1990 年代には UNIX System V Release 4 と OSF/1 に取って代わられ、どちらも BSD のコードを取り入れており、他の現代の Unix システムの基盤になりました。一方、後期の BSD リリースは、いくつかのオープンソース開発プロジェクトの基盤になりました。

以上、Wikipedia から引用しました [1]。なお、補足および言葉遣いなどを一部変えてあります。

UNIX への憧れ

Windows 95 が登場する少し前、米国シリコンバレーにある会社に勤務していた私は、データ解析用のソフトウェアの関係でサン・マイクロシステムの SunOS を使う機会が多く、当時の PC にインストールされていた Windows 3.11 とは天と地ほどもある高い安定性と洗練されたデスクトップ (OpenWindows) に心を奪われたのでした。当地では Red Hat や Slackware Linux のメディアが廉価で入手できたので、Windows 用に買った自宅の PC に Linux をインストールすることに成功すると、嬉々としてプログラミングに励んでいたのでした。

Linux は、UNIX 的な世界をぐっと身近に、誰でもが使えるようにしてくれましたが、一方で、Linux は正統な UNIX ではない、というコンプレックスみたいな感情をずっと抱いていました。そのコンプレックスを抱いたまま Linux をずっと使い続けてきたのは、コンプレックスを上回る使いやすさがあったからだと考えています。

一方、当時日本に住んでいたら、当時日本で流行っていたため間違いなく試したであろう FreeBSD や、あるいは NetBSD こそが、BSD の血を引く正統な UNIX であると、ずいぶん長い間思い込んでいました。それは歴史的には正しいのですが、UNIX という商標を使う、という意味では正しくありません。現在 UNIX を名乗るためには Single UNIX Specification (SUS) に準拠しているか認証を受けて登録される必要があります。

現在、身近な OS で正式に UNIX と呼べるものは BSD を基盤とする Apple Macintosh の OS X ぐらいでしょう。Linux をはじめ FreeBSD や NetBSD などは、Unix ライクな OS あるいは Unix 系 OS と呼ばれます。これらのオープンソース系システムベンダーでは、OS の仕様変更が頻繁に行われるため、その度に認証を受ける必要が生じ、コストに見合わないため認証を受けないのだそうです。

オープンソースの BSD 系 OS

BSD 自体の開発は 4.4BSD Lite Release 2 で終了していますが、現在あるオープンソースの BSD 系 OS は、AT&T のライセンスに抵触する部分を除いた BSD である 4.3BSD Net/2 より 386BSD を経て派生しています。386BSD の直系の子孫としては FreeBSD、NetBSDがあり、今でも精力的に開発されていいます。OpenBSD や DragonFly BSD は開発方針の違いや開発グループの諍いによってそれぞれ NetBSD、FreeBSD から派生した OS です。これら 4 つの BSD 系 OS の特徴を Wikipedia などで調べて以下にまとめてみました。

OS FreeBSD NetBSD OpenBSD DragonFly BSD
ロゴ
最初のリリース 1993/11/1 1993/4/20 1996/10/1 2004/7/12
開発団体 The FreeBSD Project The NetBSD Foundation The OpenBSD Project -
創始者 Nate Williams
Rod Grimes
Jordan K. Hubbard
Chris Demetriou
Theo de Raadt
Adam Glass
Charles Hannum
Theo de Raadt Matthew Dillon
由来 4.3BSD Networking/2, 4.4BSD-Lite 4.3BSD Networking/2, 386BSD NetBSD 1.0 FreeBSD 4.8
ライセンス Simplified BSD, FreeBSD Documentation License 2-clause BSD license BSD, ISC, ATU, その他 Modified BSD
カーネルタイプ モノリシック+モジュール モノリシック モノリシック ハイブリッド
プラットフォーム IA-32, x86-64, SPARC64, IA-64, PowerPC, ARM, MIPS Alpha, ARM, PA-RISC, 68k, MIPS, PowerPC, SH3, SPARC, RISC-V, VAX and x86 Alpha, x86-64, i386, MIPS64, PowerPC, SPARC 32/64, Zaurus, その他 x86-64
パッケージ管理 pkg pkgsrc OpenBSD package tools, ports tree DPorts, pkgng
特徴 元々はインテルの x86 プロセッサーでのサポートの充実を念頭に置いて開発されており、x86環境でサポートしているハードウェアの数は多い。 多くのコンピュータ・アーキテクチャで BSD 系 Unix を動かすというのを念頭に置いて開発されているプロジェクトで、30種類以上のアーキテクチャで動作する。 NetBSD から分岐してセキュリティーに注意して開発が進められている。 FreeBSD とは異なった SMP 対応をするために FreeBSD 4.8R から分岐した。
その他 Linux と異なり、カーネルとユーザランドを含めて一つの OS であり、そして OS 側に GPL のものを含まないようにしている。 機種独立性が組み込みシステムでの開発に大きく寄与。
コンパイラ、アセンブラ、リンカその他の、クロスコンパイルに完全対応したツールチェーン一式を持つ。
BSD ライセンスの Portable C Compiler (PCC) を導入。
OpenBSD にはセキュリティ強化のための設計変更がいくつも加えられている。
他に比べてプロジェクトの規模が小さいにも関わらずスピンオフした OpenBSD コンポーネントのためのプロジェクトは、多彩でしかも成功している(例:OpenSSH)。
カーネルの設計:CPU 毎の局所性を保つようにするアルゴリズムでスレッドを分ける実装。
HAMMER という DragonFly BSD 向けに開発されたファイルシステムを使用。
採用例 PlayStation 4 (Orbis OS) QNX Microsoft, Services for UNIX
2ちゃんねる Dell Force10 Core Force
NASA's SAMS-II Project

BSD と Linux

Linux を長年使っていると、表面的には Linux と BSD 系 OS との間には大きな違いはないのかもと、知ったかぶりをして思おうとしてしまいますが、実はそうではないのです。エンドユーザとして Linux を表面的にしか使っていない自分がエラそうに言うのは気が引けますので、ご興味があれば、参考文献の [6] [7] に目を通してみてください。

参考サイト

  1. BSD - Wikipedia
  2. BSDの子孫 - Wikipedia
  3. 本の虫: LLVM/Clangがぜってーサポートしねーと宣言しているLinuxカーネルに多用されているGCC拡張 (2013/04/19)
  4. LinuxとBSD―Linusに聞く | OSDN Magazine (2005/06/13)
  5. BSDから見たLinux | OSDN Magazine (2005/06/15)
  6. 記者の眼 - “節操のなさ”ゆえに愛されるLinux:ITpro (2003/02/04)
  7. 「LinuxのひとつであるFreeBSD」は本当か - Qiita (2015/12/21)

 

ブログランキング・にほんブログ村へ
にほんブログ村

0 件のコメント: