1.3. FreeBSD について

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

1.3.1. FreeBSD 小史

原作: Jordan K. Hubbard .

訳: 櫛田 昌希 , 日野 浩志 . 19 December 1996.

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 社に連絡してみまし た. CDROM を使って FreeBSD を配布することによって, インターネットに容 易に接続できない多くの人々が FreeBSD を簡単に入手できるようになると考 えたからです. Walnut Creek CDROM 社は FreeBSD を CD で配布するというア イデアを採用してくれたばかりか, 作業するためのマシンと高速なインターネッ ト回線を私たちのプロジェクトに提供してくれました. 当時は海のものとも山 のものともわからなかった私たちのプロジェクトに対して, Walnut Creek CDROM 社が信じられないほどの信頼を寄せてくれたおかげで, FreeBSD は短期 間のうちにここまで大きく成長したのです.

CDROM による最初の配布 (そしてネットでの, ベータ版ではない最初の一般向 け配布) は 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 をネットと CDROM(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 ブランチの作成が行われました. これは現時点で「最新の -stable ブランチ」になります. このブランチからのリリースは, 4.0-RELEASE が 2000 年 3 月に, 4.1-RELEASE が 2000 年 7 月に, 4.2-RELEASE が 2000 年 11 月に行なわれました. 4.x-stable (RELENG_4) ブランチからのリリースは, 2001 年中にも行なわれる予定になっています.

長期的な開発プロジェクトは 5.0-CURRENT 開発ブランチ (トランク) で続けられ, 5.0 のスナップショットリリースが収録された CDROM (もちろん, ネットワーク上でも) は, 開発の進行状況に応じて スナップショットサーバ より継続的に作成されています.

1.3.2. FreeBSDプロジェクトの目的

原作: Jordan K. Hubbard

訳: はらだ きろう 1996 年 9 月 24 日.

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

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

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

1.3.3. FreeBSDの開発モデル

原作: 浅見 賢 . 1996 年 10 月 18 日.

訳: 浅見 賢 . 1996 年 10 月 31 日.

FreeBSD の開発は非常に開かれた, 柔軟性のあるプロセスです. コントリビュータのリスト を見ていただければわかる とおり, FreeBSDは文字通り世界中の何百という人々の努力によって開発され ています. 新しい開発者はいつでも大歓迎ですので, FreeBSD の技術的議論に関するメーリングリスト にメールを 送ってください. FreeBSD announce メーリングリスト もありますので, 他のFreeBSDユーザに自分のやっ ていることを宣伝したい時にはどうぞ使ってください.

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

CVSリポジトリ

FreeBSDのソースツリーは CVS (Concurrent Versions System) によってメンテナンスされています. CVSはソー スコード管理用のフリーソフトウェアで, FreeBSDのリリースにも含まれてい ます. FreeBSD の メインの CVS リポジトリ は米国カリフォルニア州のコンコルド市に存在 し, そこから世界中のたくさんのミラーサイトに コピーされています. CVSツ リーそのもの, そしてそのチェックアウトされたバージョンである -CURRENT-STABLEはあな たのマシンにも簡単に取ってくることができます. これについては ソースツリーの同期 の章をご覧ください.

ソースツリー管理者

ソースツリー管理者 はCVSツリーへの書き込み権限を持っている人, つまりFreeBSDのソースに変更を加えることができる人です. (CVSでリポジトリに変更を加えるには cvs(1) commit というコマンドを使うので, これらの人々は英語では "committers" と呼ばれます.) 開発者にコードを送って見てもらうのに一番いい方法は send-pr(1) コマンドを使うことです. もし, 何か問題があって send-pr が使えないなら にメールを送っていただいても結構です.

FreeBSDコアチーム

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

コアチームのうち何人かは特定の 担当分野 を持っており, システムのうち一部に特に重点をおいて面倒を見ています.

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

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

最後になりますが, もっとも重要で多数をしめる開発者はフィードバック やバグフィクスをどんどん送ってくれるユーザ自身です. FreeBSDの開発に外 郭から関わっていきたいという人は FreeBSD の技術的議論に関するメーリングリスト ( メーリングリスト情報 を見てください) に参加するといいでしょう.

FreeBSD のソースツリーに入っている何かを書いた人の リスト は日に日に長くなっています. あ なたも今日, 何か送ることからはじめてみませんか? :-)

もちろんFreeBSD に貢献するにはコードを書くほかにもいろいろな方法があ ります. 助けが求められている分野については, このハンドブックの 貢献の仕方 の節を見てください.

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

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

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

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

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

私たちはたくさんのユーザからのコメントや 提案をまじめに受け取り, 私たちが正しいと考え, かつ導入の手順が分かりやすいものを提供しようと 努力しています. この (継続的に進化する) プロセスに対するあなたの意見を 心からお待ちしています.

FreeBSD では基本配布セットに加え, 移植されたソフトウェア集 として 数千の人気の高いプログラムを提供しています. 2000 年 11 月 中旬の時点で 4000 以上の ports (移植ソフトウェア) が存在します. ports には http (WWW) サーバから, ゲーム, 言語, エディタまでありとあらゆるものが含まれています. ports はオリジナルソースに対する"差分"という形で表現されており, すべての ports を集めても 100MB 程度にしかなりません. こうすることで ports の更新を容易にし, ports に必要なディスクスペースを小さくすることができます. ports をコンパイルするには, インストールしたいと思っているプログラムのディレクトリに移動し, make install とすると, あとはすべてシステムがやってくれます. どの ports もオリジナルの配布セットを動的に CDROM や近くの FTP サーバから取ってくるので, ディスクは構築したいと思っている ports の分だけを準備しておけば十分です. ほとんどの ports は, すでにコンパイルされた状態で "package" として提供されており, ソースコードからコンパイルしたくない場合, これを使うと (pkg_add というコマンドで) 簡単にインストールできます.

FreeBSD 2.1 以降のマシンであれば, /usr/share/doc ディレクトリにインストールの手順や FreeBSD を利用する上で有用な ドキュメントがたくさんあります. これらのローカルにインストールされたドキュメントは, HTML ブラウザを使って, 以下の URL から 参照することができます.

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

file:/usr/share/doc/handbook/index.html

FreeBSD に関する FAQ

file:/usr/share/doc/faq/index.html

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