1.3. FreeBSD�プロジェクトについて

以下の節では簡単な歴史やプロジェクトの目標、 開発モデルなど、普段は表にでない話題を提供しています。

1.3.1. FreeBSD 小史

寄稿: Jordan Hubbard.

FreeBSD�プロジェクトは 1993 年の始めに “Unofficial 386BSD Patchkit” の最後の 3 人のまとめ役によって、部分的に patchkit から派生する形で開始されました。ここでの 3 人のまとめ役というのは、Nate Williams と、Rod Grimes と、私 (Jordan K. Hubbard) です。

私たちのもともとの目標は、patchkit という仕組みではもう十分に解決できなくなってしまった 386BSD の数多くの問題を修正するための、386BSD の暫定的なスナップショットを作成することでした。 こういった経緯を経ているので、 このプロジェクトの初期の頃の名前が “ 386BSD 0.5 ” や “386BSD 暫定版 (Interim)” であったということを覚えている人もいるでしょう。

386BSD は、Bill Jolitz が (訳注: バークレイ Net/2 テープを基に) 作成したオペレーティングシステムです。当時の 386BSD は、ほぼ一年にわたって放っておかれていた (訳注: 作者がバグの報告を受けても何もしなかった) というひどい状況に苦しんでいました。 作者の代わりに問題を修正し続けていた patchkit は日を追うごとに不快なまでに膨張してしまっていました。 このような状況に対して、このままではいけない、 何か行動を起こさなければ、 ということで異議を唱えるものは私たちのなかにはいませんでした。 そして私たちは挑戦することを決断し、 暫定的な “クリーンアップ” スナップショットを作成することで Bill を手助けしようと決めたのです。しかし、 この計画は唐突に終了してしまいました。Bill Jolitz が、 このプロジェクトに対する受け入れ支持を取り下げることを突然決意し、 なおかつこのプロジェクトの代わりに何をするのかを一切言明しなかったのです。

たとえ Bill が支持してくれないとしても、 われわれの目標には依然として やる価値があると決心するのにさしたる時間はかかりませんでした。 そこで David Greenman が考案した名称 “FreeBSD” を私たちのプロジェクトの名前に採用し、 新たなスタートを切りました。 この時点でのプロジェクトの初期目標は、すでにこのシステム (訳注: 386BSD + Patchkit) を使っていた利用者たちと相談して決められました。 プロジェクトが実現に向けて軌道に乗ってきたことが明確になった時点で、 私は Walnut Creek CDROM 社に連絡してみました。CD-ROM を使って FreeBSD を配布することによって、 インターネットに容易に接続できない多くの人々が FreeBSD を簡単に入手できるようになると考えたからです。Walnut Creek CDROM 社は FreeBSD を CD で配布するというアイデアを採用してくれたばかりか、 作業するためのマシンと高速なインターネット回線を私たちのプロジェクトに提供してくれました。 当時は海のものとも山のものともわからなかった私たちのプロジェクトに対して、Walnut Creek CDROM 社が信じられないほどの信頼を寄せてくれたおかげで、 FreeBSD は短期間のうちにここまで大きく成長したのです。

CD-ROM による最初の配布 (そしてネットでの、 ベータ版ではない最初の一般向け配布) は FreeBSD�1.0 で、1993 年 12 月に公開されました。これはカリフォルニア大学バークレイ校の 4.3BSD-Lite (“Net/2”) を基とし、386BSD や Free Software Foundation からも多くの部分を取り入れたものです。 これは初めて公開したものとしては十分に成功しました。続けて 1994 年 5 月に FreeBSD�1.1 を公開し、 非常に大きな成功を収めました。

この時期、 あまり予想していなかった嵐が遠くから接近してきていました。 バークレイ Net/2 テープの法的な位置づけについて、Novell 社とカリフォルニア大学バークレイ校との間の長期にわたる 法廷論争において和解が成立したのです。和解の内容は、Net/2 のかなりの部分が “権利つき (encumbered)” コードであり、それは Novell 社の所有物である、 というバークレイ校側が譲歩したものでした。なお、Novell 社はこれらの権利を裁判が始まる少し前に AT&T 社から買収していました。 和解における譲歩の見返りにバークレイ校が得たのは、 4.4BSD-Lite が最終的に発表された時点で、 4.4BSD-Lite は権利つきではないと公式に宣言されること、 そしてすべての既存の Net/2 の利用者が 4.4BSD-Lite の利用へと移行することが強く奨励されること、という Novell 社からの “ありがたき天からの恵み” でした (訳注: 4.4BSD-Lite はその後 Novell 社のチェックを受けてから公開された)。FreeBSD も Net/2 を利用していましたから、1994 年の 7 月の終わりまでに Net/2 ベースの FreeBSD の出荷を停止するように言われました。ただし、 このときの合意によって、 私たちは締め切りまでに一回だけ最後の公開をすることを許されました。 そしてそれは FreeBSD�1.1.5.1 となりました。

それから FreeBSD�プロジェクトは、まっさらでかなり不完全な 4.4BSD-Lite を基に、文字どおり一から再度作り直すという、 難しくて大変な作業の準備を始めました。“Lite” バージョンは、部分的には本当に軽くて、中身がなかったのです。 起動し、 動作できるシステムを実際に作り上げるために必要となるプログラムコードのかなりの部分がバークレイ校の CSRG (訳注: BSDを作っているグループ) によって (いろいろな法的要求のせいで) 削除されてしまっていたということと、4.4BSD の Intel アーキテクチャ対応が元々かなり不完全であったということがその理由です。 この移行作業は結局 1994 年の 11 月までかかりました。 そしてその時点で FreeBSD�2.0 をネットと CD-ROM (12 月末ごろ) を通じて公開しました。これは、 かなり粗削りなところが残っていたにもかかわらず、 かなりの成功を収めました。そしてその後に、より信頼性が高く、 そしてインストールが簡単になった FreeBSD�2.0.5 が 1995 年の 6 月に公開されました。

私たちは 1996 年の 8 月に FreeBSD�2.1.5 を公開しました。 この出来が非常に良く、特に業務で運用しているサイトや ISP での人気が高かったので、私たちは 2.1-STABLE 開発分流から更に公開をおこなうことにメリットがあると考えました。 それが FreeBSD�2.1.7.1 で、2.1-STABLE 開発分流の最後を締めくくるものとして、 1997 年の 2月に公開されました。2.1-STABLE 開発分流 (RELENG_2_1_0) は現在、 保守のみをおこなう状態になっており、今後は、 セキュリティの改善や他の何か重要なバグフィックスのみがおこなわれるでしょう。

FreeBSD�2.2 の開発は、RELENG_2_2 開発ブランチとして、 開発の本流 (“-CURRENT”) から 1996 年 11 月に分岐し、そして 1997 年 4 月に最初のリリース (2.2.1) が行なわれました。2.2 開発ブランチからは、さらに 97 年の夏と秋にリリースが行なわれ、 98 年 11 月に 2.2 開発ブランチの最終リリース (2.2.8) が行なわれています。1998 年 10 月に FreeBSD�3.0 最初の公式リリースが行なわれ、 2.2 開発ブランチは開発の終了を迎えることになりました。

1999 年 1 月 20 日には、FreeBSD の開発ツリーが 4.0-CURRENT と 3.X-STABLE の各ブランチに再び分岐しました。 3.X-STABLE からは 3.1 が 1999 年 2 月 15 日に、 3.2 が 1999 年 5 月 15 日に、 3.3 が 1999 年 9 月 16 日に、 3.4 が 1999 年 12 月 20 日に、 そして 3.5 が 2000 年 6 月 24 日にリリースされました。 3.5 はリリースの数日後、Kerberos に対するセキュリティ上の修正を組み込むために小規模な更新がなされ、 3.5.1 になりました。3.5.1 は、この 3.X ブランチにおける最終リリースになる予定です。

2000 年 3 月 13 日に 4.X-STABLE ブランチが作成されました。 このブランチからはこれまでいくつものリリースが公開されています。 2000 年 3 月に初めて 4.0-RELEASE が公開され、 最終版の 4.11-RELEASE は 2005 年 1 月 に公開されました。

長い間延期されていた 5.0-RELEASE は、2003 年 1 月 19 日にアナウンスされました。これは 3 年近くにわたる作業の集大成であり、 このリリースより、FreeBSD は先進的なマルチプロセッサとアプリケーションスレッドに対応し、 また、UltraSPARC® と ia64 プラットフォームへの対応も始まりました。 これに続いて 5.1 が 2003 年 6 月に公開されています。 -CURRENT ブランチからの最後の 5.X リリースは 5.2.1-RELEASE で、 2004 年 2 月に公開されました。

2004 年 8 月に RELENG_5 ブランチが作成され、続いて 5.3-RELEASE が 5-STABLE ブランチからのリリースの始まりを飾りました。 最新の 5.5-RELEASE は 2006 年 5 月に公開されました。 今後 RELENG_5 ブランチからのリリースは行われません。

2005 年 7 月に RELENG_6 ブランチが作成され、 6.X ブランチの最初のリリースである 6.0-RELEASE は 2005 年 11 月に公開されました。 最新の 6.4-RELEASE は 2008 年 11 月に公開されました。 今後 RELENG_6 ブランチからのリリースは行われません。 このブランチは、 Alpha アーキテクチャに対応する最後のブランチです。

2007 年 10 月に RELENG_7 ブランチが作成され、 このブランチの最初のリリースである 7.0-RELEASE は 2008 年 2 月に公開されました。 このブランチからの最新の 7.4-RELEASE は 2011 年 2 月に公開されました。 今後 RELENG_7 ブランチからのリリースは行われません

2009 年 8 月に RELENG_8 ブランチが作成され、 8.X ブランチの最初のリリースである 8.0-RELEASE は 2009 年 11 月に公開されました。 このブランチからの最新の 8.3-RELEASE は 2012 年 4 月 に公開されました。 RELENG_8 ブランチからのリリースは、引き続き行われる予定です。

2011 年 9 月に RELENG_9 ブランチが作成され、 このブランチからの最初のリリースである 9.1-RELEASE は 2012 年 12 月 に公開されました。 RELENG_9 ブランチからのリリースは、引き続き行われます。

長期的な開発プロジェクトは 10.X-CURRENT 開発ブランチ (トランク) で続けられ、 10.X のスナップショットリリースが収録された CD-ROM (もちろん、ネットワーク上でも) は、開発の進行状況に応じて スナップショットサーバ より継続して入手できます。

1.3.2. FreeBSD�プロジェクトの目標

寄稿: Jordan Hubbard.

FreeBSD�プロジェクトの目的は、いかなる用途にも使用でき、 何ら制限のないソフトウェアを供給することです。 私たちの多くは、 コード (そしてプロジェクト) に対してかなりの投資をしてきており、 これからも多少の無駄はあっても投資を続けて行くつもりです。ただ、 他の人達にも同じような負担をするように主張しているわけではありません。 FreeBSD に興味を持っている一人の残らず全ての人々に、 目的を限定しないでコードを提供すること。これが、 私たちの最初のそして最大の “任務” であると信じています。そうすれば、コードは可能な限り広く使われ、 最大の恩恵をもたらすことができるでしょう。これが、 私たちが熱烈に支持しているフリーソフトウェアの最も基本的な目的であると、 私は信じています。

私たちのソースツリーに含まれるソースのうち、 GNU 一般公有使用許諾 (GPL) または GNU ライブラリ一般公有使用許諾 (LGPL) に従っているものについては、多少制限が課せられています。ただし、 ソースコードへのアクセスの保証という、 一般の制限とはいわば逆の制限 (訳注1) です。 GPL ソフトウェアの商利用には、そのライセンスにある 複雑な側面が影響してくることがあります。 ですから私たちは、そうすることが合理的であると判断されたときには、 より制限の少ない、BSD 著作権表示を採用しているソフトウェアを選択するようにしています。

(訳注1) GPL では、「ソースコードを実際に受け取るか、 あるいは、希望しさえすればそれを入手することが可能であること」 を求めています。

1.3.3. FreeBSD の開発モデル

寄稿: 浅見 賢.

FreeBSD の開発は非常に開かれた、柔軟性のあるプロセスです。 貢献者リスト を見ていただければわかるとおり、 FreeBSD は文字通り世界中の何百という人々の努力によって開発されています。 FreeBSD の開発環境は、 この何百という開発者がインターネット経由で共同作業できるようになっているのです。 新しい開発者はいつでも大歓迎ですので、FreeBSD technical discussions メーリングリスト にメールを送ってください。 FreeBSD announcements メーリングリスト もありますので、他の FreeBSD ユーザに自分のやっていることを宣伝したい時にはどうぞ使ってください。

あと、FreeBSD�プロジェクトとその開発プロセスについて、 どなたにも知っていていただきたいのは以下のようなことです。

SVN と CVS リポジトリ

長年にわたり FreeBSD のソースツリーは CVS (Concurrent Versions System) によってメンテナンスされてきました。 CVS はソースコード管理用のフリーソフトウェアで、 FreeBSD のリリースにも含まれています。 2008 年 6 月、プロジェクトはソースコード管理のシステムを SVN (Subversion) に移行しました。 ソースツリーの急速な増加や、 これまでに蓄積された膨大な量の履歴によって、 CVS の持つ技術的な限界が明かになってきたためです。 ドキュメンテーションプロジェクトと Ports Collection リポジトリも、それぞれ 2012 年 5 月と 7 月に CVS から SVN へと移行しました。

現在 src/ および ports/ リポジトリは SVN によって管理されていますが、 SVN リポジトリにおける変更点は CVS に反映されるので、 csup といった CVS のクライアントツールはこれまで通り正常に動きます。 src/ および ports/ とは異なり、ドキュメンテーションの SVN リポジトリは、 CVS へと反映されません。

FreeBSD の CVS メインリポジトリ は米国カリフォルニア州のサンタクララ市に存在し、 そこから世界中のたくさんのミラーサイトにコピーされています。 -CURRENT-STABLE が含まれている SVN ツリーそのものは、 あなたのマシンにも簡単に取ってくることができます。 これについては ソースツリーの同期の章をご覧ください。

ソースツリー管理者

コミッター (committers) は Subversion ツリーへの書き込み権限を持っている人、 FreeBSD のソースに変更を加えることができる人です (リポジトリに変更を加えるには、ソースをコントロールする commit というコマンドを使うので、 これらの人々は英語では “committers” と呼ばれます)。 開発者にコードを送って見てもらうのに一番いい方法は send-pr(1) コマンドを使うことです。 もし、何か問題があって send-pr が使えないなら FreeBSD committer's メーリングリスト にメールを送っていただいても構いません。

FreeBSD コアチーム

FreeBSD コアチーム は FreeBSD�プロジェクトが会社だとすると取締役会にあたるものです。 コアチームとして一番重要な役割は FreeBSD�プロジェクトが全体としてよい方向に向かっていることを確認することです。 責任感あふれる開発者を上記のソースツリー管理者として招くこと、 また仕事上の都合などでコアチームをやめた人たちの後任を見つけることもコアチームの役割です。 現在のコアチームは FreeBSD 開発者 (committer) の中から 2012 年 7 月に選挙によって選出されました。 コアチームを選出するための選挙は、2 年ごとに行なわれています。

コアチームのうち何人かは特定の担当分野を持っており、 システムのうち一部に特に重点をおいて面倒を見ています。 FreeBSD 開発者と担当分野の完全なリストは コントリビュータのリストをご覧ください。

注意: 忘れてほしくないのは、 コアチームのほとんどは FreeBSD に対してボランティアの立場であり、 FreeBSD�プロジェクトからは何ら金銭的な支援を受けていない、 ということです。ですから、 ここでの“責任”は “保証されたサポート”ではありません。 そういう意味で、上記の“取締役会” という例えはあまりよくないかもしれません。むしろ、FreeBSD のために人生を棒に振ってしまった人の集まりといった方が正しいかも…。

その他のコントリビュータ

最後になりますが、 もっとも重要で多数をしめる開発者はフィードバックやバグフィクスをどんどん送ってくれるユーザ自身です。 FreeBSD の開発に関わっていきたいという人は、 議論の場である FreeBSD technical discussions メーリングリスト に参加するとよいでしょう。 FreeBSD 関連メーリングリストに関する詳細は、 付録C をご覧ください。

FreeBSD への貢献者リスト は日に日に長くなっています。 あなたも今日、何か送ることからはじめてみませんか?

もちろん FreeBSD に貢献するには、 コードを書くほかにもいろいろな方法があります。 助けが求められている分野については、 FreeBSD�プロジェクトのウェブサイトをご覧ください。

ひとことで言うと、FreeBSD の開発組織はゆるやかな同心円状になっています。 ともすると中央集権的に見えがちなこの組織は、 FreeBSD のユーザがきちんと管理されたコードベースを 容易に追いかけられるようにデザインされているもので、 貢献したいという人を締め出す意図は全くありません! 私たちの目標は安定したオペレーティングシステムと 簡単にインストールして使うことのできる アプリケーションを提供することです。 この方法は、それを達成するために非常にうまくはたらきます。

これから FreeBSD の開発にたずさわろうという人に、 私たちが望むことはただ一つです。 FreeBSD の成功を継続的なものにするために、 現在の開発者と同じような情熱を持って接してください!

1.3.4. 現在のリリースについて

FreeBSD は自由に利用でき、 Intel i386™, i486™, Pentium®, Pentium�Pro, Celeron®, Pentium�II, Pentium�III, Pentium�4 (とその互換品), Xeon™, Sun UltraSPARC ベースのコンピュータで動作する、 4.4BSD-Lite ベースの全ソースつきのリリースです。 これはもともとカリフォルニア大学バークレイ校 CSRG グループのソフトウェアがベースとなっており、NetBSD, OpenBSD, 386BSD, そして Free Software Foundation の ソフトウェアなどにより拡張されています。

1994 年末の FreeBSD�2.0 のリリースからみると、FreeBSD は性能、 機能、安定性の面で劇的に改善されました。 もっとも大きな変化は仮想メモリシステムに おける改良で、 統合化された VM/file バッファキャッシュを用いることで性能を向上させながらも FreeBSD のメモリの使用量を減らすことができたことです。そのおかげで、最低 5�MB メモリという制約上でも動作するようになりました。 その他の拡張としては、NIS のクライアントとサーバの完全なサポート、 トランザクション TCP のサポート、ダイヤルオンデマンド PPP, 統合された DHCP のサポート、改良された SCSI サブシステム、 ISDN, ATM, FDDI, Fast Ethernet や Gigabit Ethernet (1000�Mbit) アダプタへの対応、最新の Adaptec コントローラ対応の改良や、 数百件におよぶバグの修正などがあります。

FreeBSD では基本配布セットに加え、 移植されたソフトウェア集として数千の人気の高いプログラムを提供しています。 この文書を印刷している時点で 24,000 以上の ports (移植ソフトウェア) が存在します。 ports には http (WWW) サーバから、ゲーム、言語、 エディタまでありとあらゆるものが含まれています。 ports はオリジナルソースに対する “差分”という形で表現されており、 Ports Collection 全体でも 500�MB 程度にしかなりません。 こうすることで ports の更新を容易にし、昔の 1.0 Ports Collection が要求したディスクスペースよりも少なくて済むようになります。 ports をコンパイルするには、 インストールしたいと思っているプログラムのディレクトリに移動し、 make install とすると、 あとはすべてシステムがやってくれます。 どの ports もオリジナルの配布セットを動的に CD-ROM や近くの FTP サーバから取ってくるので、 ディスクは構築したいと思っている ports の分だけを準備しておけば十分です。 ほとんどの ports は、すでにコンパイルされた状態で “package” として提供されており、 ソースコードからコンパイルしたくない場合、これを使うと (pkg_add というコマンドで) 簡単にインストールできます。 package と ports に関する詳細は、 第5章 をご覧ください。

最近の FreeBSD では、システムの最初のセットアップ時に、 インストーラ (sysinstall(8) または bsdinstall(8) のどちらでも) 上で、ドキュメントを /usr/local/share/doc/freebsd 以下にインストールすることを選択できます。 システムのインストール後でも、項18.4.6.2 に記述されている package を使うことで、いつでもドキュメントをインストールできます。 これらのローカルにインストールされたドキュメントは、HTML ブラウザを使って以下の URL から参照できます。

FreeBSD ハンドブック (英文オリジナル)

/usr/local/share/doc/freebsd/handbook/index.html

FreeBSD に関する FAQ (英文オリジナル)

/usr/local/share/doc/freebsd/faq/index.html

また、 http://www.FreeBSD.org/ にはマスタ (かなり頻繁に更新されます) がありますので、 こちらも参照してください。

本文書、および他の文書は ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/ からダウンロードできます。

FreeBSD に関する質問がある場合には、ドキュメント を読んだ上で <questions@FreeBSD.org> まで (英語で) 連絡してください。
本文書に関する質問については、<doc@FreeBSD.org> まで電子メールを (英語で) 送ってください。