第1章 はじめに

1.1. この章では

FreeBSD に興味を持っていただきありがとうございます! この章では FreeBSD の歴史、目標、開発モデルなど、 FreeBSD プロジェクトに関するさまざまな事柄を扱います。

この章に書かれている話題は、次のようなものです。

  • FreeBSD とその他のオペレーティングシステムとの違い

  • FreeBSD プロジェクトの歴史

  • FreeBSD プロジェクトの目標

  • FreeBSD オープンソース開発モデルの基本的な考え方

  • そして、"FreeBSD" という名前の由来について

1.2. FreeBSD へようこそ!

FreeBSD は、標準に準拠した Unix-like なオープンソースのオペレーティングシステムで、 x86 (32 および 64 ビットの両方), ARM®, AArch64, RISC-V®, MIPS®, POWER®, PowerPC® および Sun UltraSPARC® コンピュータに対応しています。 FreeBSD は、プリエンプティブなマルチタスク、 メモリ保護、仮想メモリ、マルチユーザシステム、SMP 対応、 さまざまな言語やフレームワーク用のすべてのオープンソースの開発ツール、 X ウィンドウシステム、KDE や GNOME を中心としたデスクトップ機能といった、 今日では標準となっている機能をすべて提供しています。 注目すべき機能は以下の通りです。

  • 自由なオープンソースライセンス。 ソースコードを自由に変更し、配布することができます。 潜在的なライセンスの互換性の問題を避け、 コピーレフトライセンスに典型的な制限を課すことなく、 オープンソースプロジェクトおよびクローズな製品の両方に組み込むことが可能です。

  • 堅固な TCP/IP ネットワーク - FreeBSD は、 かってないほどの性能とスケーラビリティを兼ね備えた業界標準プロトコルを実装しています。 サーバおよびルータ/ファイアウォールルールの両方と相性が良く、 実際に多くの会社やベンダがまさにこの目的で採用しています。

  • 完全に統合された OpenZFS への対応。 これには root-on-ZFS, ZFS ブート環境、障害管理、 委任管理、jails への対応、FreeBSD 固有の文書、 そしてシステムのインストーラによる対応が含まれます。

  • Capsicum ケーパビリティおよびサンドボックスメカニズムに対する強制アクセスコントロールフレームワークによる 拡張されたセキュリティ機能

  • 対応しているすべてのアーキテクチャで利用可能な 3 万を超えるコンパイル済みの packages。 そして、あなた自身のカスタマイズされたソフトウェアの構築を容易にする Ports Collection。

  • ドキュメント - システム管理からカーネル内部にまで渡る内容に関する、 さまざまな著者によるハンドブックやブックに加え、 man(1) ページが用意されています。 ユーザ空間のデーモン、 ユーティリティおよびコンフィグレーションファイルだけではなく、 カーネルドライバの API (セクション 9) および個々のドライバ (セクション 4) も用意されています。

  • 分かりやすく首尾一貫したリポジトリ構造とビルドシステム - FreeBSD は、カーネルおよびユーザ空間の両方について、 すべての構成要素をひとつのリポジトリで管理しています。 統一されカスタマイズが容易なビルドシステムおよび綿密に考えられた開発プロセスが、 あなた自身の製品のビルドインフラストラクチャに FreeBSD を統合することを容易にします。

  • Unix の哲学に忠実であり続けます。 ハードコードされたモノリシックな "オールインワン" デーモンより、 要素から構成することを好みます。

  • Linux との バイナリ互換。 仮想化の必要なしに多くの Linux バイナリを実行できます。

FreeBSD はカリフォルニア大学バークレイ校の Computer Systems Research Group (CSRG) による 4.4BSD-Lite リリースを基にしており、 BSD システムの開発の優れた伝統を守り続けています。 CSRG による素晴らしい活動に加えて、 FreeBSD プロジェクトは何千時間もの時間を注ぎ込んで、 実際の使用の場において最大の性能と信頼性を発揮するためにシステムのチューニングをおこなっています。 FreeBSD は、商用のオペレーティングシステムと同等の性能、信頼性を、 他では実現されていない数多くの最新の機能と共に提供しています。

1.2.1. FreeBSD で何ができるの?

あなたの思いつく限りのアプリケーションは、何でも FreeBSD で実行できます。ソフトウェア開発からファクトリオートメーション、 在庫制御から遠く離れた人工衛星のアンテナの方向調整まで; 商用 UNIX® 製品でできることは、FreeBSD でも十分にできるのです! また、FreeBSD は世界中の研究センターや大学によって開発される文字通り何千もの高品質で、 たいていはほとんど無料で利用できるアプリケーションによる恩恵を得ることができます。

FreeBSD のソースコードは自由に提供されているので、 システムも特別なアプリケーションやプロジェクトに合わせて、 いくらでもカスタマイズすることができます。 これは有名な商業ベンダから出ているほとんどのオペレーティング システムでは不可能なことです。以下に現在 FreeBSD を 使っている人々のアプリケーションの例をいくつか上げます:

  • インターネットサービス: FreeBSD に組み込まれている 頑強な TCP/IP ネットワーキング機能は次のようなさまざまな インターネットサービスの理想的なプラットフォームになります:

    • ウェブサーバ

    • IPv4 および IPv6 ルーティング

    • ファイアウォールと NAT ("IP マスカレード") ゲートウェイ

    • FTP サーバ

    • メールサーバ

    • さらにいろいろ…​

  • 教育: あなたは、計算機科学または関連分野の工学を専攻する学生さんですか? オペレーティングシステムやコンピュータアーキテクチャ、 ネットワークについて学習するなら、 実際に FreeBSD のソースコードを読んで、 それがどのように動作するのかを学ぶのが一番よい方法です。 また、無料で利用できる CAD や数学、 グラフィックデザインのパッケージがいくつもあるので、 コンピュータに関わる主要な目的が、 _他_のことをすることにある方にも、 大いに役立ちます。

  • 研究: システム全体のソースコードが利用できるため、 FreeBSD はオペレーティングシステムの研究だけでなく、 計算機科学の他の部門においても優れたプラットフォームです。 自由に利用できる FreeBSD の特長は、オープンフォーラムで 議論される特別なライセンスの同意や制限について心配することなく、 離れたグループでもアイディアや開発の共有による共同研究を可能にします。

  • ネットワーキング: 新しいルータが必要? ネームサーバ (DNS) は? 内部のネットワークを人々から守るファイアウォールは? FreeBSD はすみに眠っている使われていない PC を簡単に 洗練されたパケットフィルタリング機能を持つ高級なルータに 変えることができます。

  • 組み込み: FreeBSD は、 組み込みシステムを構築する優れたプラットフォームとなります。 ARM®, MIPS® および PowerPC® プラットフォームへのサポートとともに、 強固なネットワークスタック、最新の機能および 寛容なBSD ライセンス により、 FreeBSD は、組み込みルータ、 ファイアウォールおよび他のデバイスを構築する優れた基盤となります。

  • デスクトップ: FreeBSD は、自由に利用できる X11 サーバを使うことによって、 安価なデスクトップとなります。 FreeBSD では、標準的な GNOME および KDE グラフィカルユーザインタフェースを含む、 数多くのオープンソースのデスクトップ環境を選択できます。 FreeBSD は、 中央のサーバから"ディスクレス"でもブート可能であり、 個々のワークステーションを安価で、 容易に管理することさえ可能にします。

  • ソフトウェア開発: 基本的な FreeBSD システムには、完全な C/C++ コンパイラやデバッガスイートを含む完全な開発ツールがついてきます。 他の多くの言語へのサポートも ports および package コレクションから利用できます。

FreeBSD は、無料でダウンロードできます。 また、CD-ROM または DVD でも入手可能です。 詳しくは FreeBSD の入手方法 をご覧ください。

1.2.2. FreeBSD はどこに使われていますか?

FreeBSD は、ウェブサービスの能力で知られています。 FreeBSD が利用されている代表的なサイトには Hacker News, Netcraft, NetEase, Netflix, Sina, Sony Japan, Rambler, Yahoo! および Yandex があります。

FreeBSD は、 先進的な機能、高いセキュリティ、および定期的なリリースサイクル、 そして寛容なライセンスにより、 多くの商用およびオープンソースのアプライアンス、 デバイスおよび製品を構築するプラットフォームとして利用されています。 世界最大規模の多くの IT 会社が FreeBSD を使っています。

  • Apache - Apache ソフトウェア財団は、 1.4 百万回を超えるコミットというおそらく世界で最も大規模な SVN リポジトリを含む、数多くの公式のインフラストラクチャで FreeBSD を使っています。

  • Apple - OS X は、 FreeBSD から、ネットワークスタック、仮想ファイルシステム、 そして多くのユーザランドコンポーネントを取り入れています。 Apple iOS も FreeBSD から取り入れた要素を含んでいます。

  • Cisco - IronPort ネットワークセキュリティおよびアンチスパムアプライアンスは、 改造された FreeBSD カーネルで動いています。

  • Citrix - NetScaler の一連のセキュリティアプライアンスは、 FreeBSD シェルとともに 4-7 レイヤのロードバランス、 コンテントキャシュ、アプリケーションファイアウォール、 セキュリティ VPN およびモバイルクライド・ネットワークアクセスを提供します。

  • Dell EMC Isilon - Isilon 社のエンタープライズストレージアプライアンスは、FreeBSD ベースです。 寛大な FreeBSD ライセンスのおかげで、Isilon は、 彼らの知的財産物をカーネルに統合することができるため、 オペレーティングシステムではなく、 製品そのものに焦点を当てた開発が可能となっています。

  • Quest KACE - KACE システム管理アプライアンスでは、 FreeBSD が用いられています。信頼性、 スケーラビリティおよび継続的な開発をサポートしているコミュニティが評価され採用されています。

  • iXsystems - 統合ストレージアプライアンスの TrueNAS シリーズは FreeBSD ベースです。 商用の製品に加え、iXsystems は、オープンソースプロジェクトの TrueOS および FreeNAS の開発も運営しています。

  • Juniper - Juniper のすべてのネットワークギア (ルータ、スイッチ、セキュリティおよびネットワークアプライアンス) を動かしている JunOS オペレーティングシステムは、 FreeBSD ベースです。 Juniper は、FreeBSD プロジェクトと商用製品を提供しているベンダとの間で協力関係が成功している数多くのベンダのひとつです。 将来 FreeBSD の新しい機能を JunOS へと統合する際の複雑さを減らすため、 Juniper で作成された改良点は、FreeBSD に取り込まれています。

  • McAfee - Sidewinder などの McAfee エンタープライズファイアウォール製品のベースである SecurOS は FreeBSD ベースです。

  • NetApp - ストレージアプライアンスの Data ONTAP GX シリーズは、FreeBSD ベースです。 NetApp は、新しい BSD ライセンスのハイパーバイザである bhyve などの数多くの機能を FreeBSD プロジェクトに還元しています。

  • Netflix - Netflix が顧客へのストリームムービーに使用している OpenConnect アプライアンスは、FreeBSD ベースです。 Netflix は、コードベースに対し多大な貢献を行っており、 FreeBSD のメインラインからの差分がゼロになるように作業を行っています。 Netflix OpenConnect アプライアンスは、 北米の全インターネットトラフィックの 32% の配送を受け持っています。

  • Sandvine - Sandvine は、 ハイパフォーマンスでリアルタイムのネットワークプロセッシングプラットフォームのベースに FreeBSD を使用しています。このプラットフォームは、 彼らのインテリジェントネットワークポリシーコントロール製品を構成しています。

  • Sony - PlayStation 4 のゲームコンソールは、 FreeBSD の改良版が動いています。

  • Sophos - Sophos Email アプライアンス製品は、強化された FreeBSD がベースです。 インバウンドメールに対してスパムやウィルススキャンを行う一方で、 アウトバウンドメールがマルウェアではないか、また、 機密情報がアクシデントで漏洩してしまわないようにモニタします。

  • Spectra Logic - アーカイブグレードストレージアプライアンスの nTier シリーズは、FreeBSD および OpenZFS が動いています。

  • Stormshield - Stormshield ネットワークセキュリティアプライアンスは、 強化された FreeBSD がベースです。 BSD ライセンスが、彼らの知的財産のシステムへの統合を可能にする一方で、 コミュニティに非常に多くの興味深い開発結果をもたらしてくれます。

  • The Weather Channel - 各ローカルケーブルプロバイダのヘッドエンドにインストールされていて、 ローカルの天気予報をケーブル TV ネットワークプログラムに送る IntelliStar アプライアンスでは FreeBSD が動いています。

  • Verisign - Verisign は .com および .net ルートドメインレジストリおよび関連する DNS インフラストラクチャの運用に責任を持っています。 彼らのインフラストラクチャに一般的な障害点がないように、FreeBSD を含むさまざまなネットワークオペレーティングシステムに信頼を寄せています。

  • Voxer - Voxer のモバイルボイスメッセージのプラットフォームでは、 ZFS が FreeBSD 上で動いています。 Voxer は、Solaris から派生したオペレーティングシステムから、 FreeBSD へと移行しました。優れた文書、 幅広く活動的なコミュニティ、 そして開発者にとって好意的な環境がその理由です。 ZFS および DTrace といった決定的な機能に加え、 FreeBSD では、 ZFS が TRIM に対応しています。

  • Fudo セキュリティ - FUDO セキュリティアプライアンスは、 エンタープライズおよびシステムの管理者に対し、 モニタ、コントロール、レコードおよび audit コントラクタを提供します。 ZFS, GELI, Capsicum, HAST および auditdistd といった FreeBSD の最良なセキュリティ機能がベースとなっています。

また、FreeBSD は関連したオープンソースプロジェクトを数多く生み出しています。

  • BSD Router - 広く使われているエンタープライズルータの置き換えとなるような FreeBSD ベースのルータで、標準的な PC ハードウェアで動作するように設計されています。

  • FreeNAS - ネットワークファイルサーバアプライアンスとして使用するように設計されたカスタマイズ版の FreeBSD です。 UFS および ZFS ファイルシステムの両方を簡単に管理できるように python ベースのウェブインタフェースを提供しています。 NFS, SMB/CIFS, AFP, FTP および iSCSI に対応しており、 FreeBSD jail ベースの拡張プラグインシステムも提供しています。

  • GhostBSD - は、FreeBSD から派生しました。 GhostBSD は、GTK 環境を使用し、 美しい見た目や使い勝手の良さを現代の BSD プラットフォームに実現し、 自然でネイティブな UNIX® 環境を提供します。

  • mfsBSD - メモリから完全に実行可能な FreeBSD システムのイメージを構築するためのツールキットです。

  • NAS4Free - PHP によるウェブインタフェースを搭載した FreeBSD ベースのファイルサーバのディストリビューションです。

  • OPNSense - OPNsense は、オープンソースの使いやすく構築が簡単な FreeBSD ベースのファイアウォールおよびルータのプラットフォームです。 OPNsense は、 高価な商用のファイアウォールや標準で利用可能なほとんどの機能を持っています。 オープンで検証可能なソースと共に、 商品が提供している豊富な機能のセットを提供します。

  • TrueOS - TrueOS は、FreeBSD の伝説的なセキュリティおよび安定性に基づいています。 TrueOS は、FreeBSD-CURRENT をベースとしており、 最新のドライバ、セキュリティアップデート、 および利用可能な package とともに提供されます。

  • MidnightBSD - は、 BSD から派生したオペレーティングシステムで、 デスクトップユーザを念頭において開発されています。 このオペレーティングシステムには、 メール、ウェブブラウザ、ワードプロセッサ、ゲームといった、 日々の生活で必要と思われるすべてのソフトウェアが含まれています。

  • NomadBSD - は、FreeBSD ベースの USB フラッシュドライブのための永続的な live システムです。 ハードウェアを自動的に認識してセットアップを行い、すぐにデスクトップシステムとして使えるように設定します。 データリカバリ、教育および FreeBSD のハードウェア互換性の試験にも使用できます。

  • pfSense - 数多くの機能および拡張 IPv6 サポートを持つ FreeBSD ベースのファイアウォールディストリビューションです。

  • ZRouter - FreeBSD ベースの組み込みデバイス用のオープンソースのファームウェアです。 いつでも購入できるようなルータ上のプロプリエタリのファームウェアの置き換えとなるように設計されています。

FreeBSD Foundation のウェブサイトでは、FreeBSD を製品やサービスのベースに利用している会社の声 が紹介されています。 Wikipedia にも FreeBSD ベースの製品のリスト がまとめられています。

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

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

1.3.1. FreeBSD 小史

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

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

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

たとえ Bill が支持してくれないとしても、 彼ら 3 人の目標には依然としてやる価値があると考えていたため、 David Greenman が考案した名称 "FreeBSD" をプロジェクトの名前に採用し、新たなスタートを切りました。 この時点でのプロジェクトの初期目標は、すでにこのシステム (訳注: 386BSD + Patchkit) を使っていた利用者たちと相談して決められました。 プロジェクトが実現に向けて軌道に乗ってきたことが明確になった時点で、 Jordan は 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 月までかかりました。 そして 12 月に FreeBSD 2.0 として公開されました。これは、 かなり粗削りなところが残っていたにもかかわらず、 かなりの成功を収めました。そしてその後に、より信頼性が高く、 そしてインストールが簡単になった FreeBSD 2.0.5 が 1995 年の 6 月に公開されました。

これ以降、FreeBSD の安定性、速さや機能は改善され、 リリースが行われてきました。

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

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

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 リポジトリ

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

ソースツリー管理者

コミッター (committers) は Subversion ツリーへの_書き込み権限_を持っている人、 FreeBSD のソースに変更を加えることができる人です (リポジトリに変更を加えるには、ソースをコントロールする commit というコマンドを使うので、 これらの人々は英語では "committers" と呼ばれます)。 もしバグを見つけたのであれば、障害報告データベース に提出してください。 FreeBSD メーリングリスト、IRC チャネルまたはフォーラムは、 その問題がバグかどうかを確認する助けとなりますので、 障害報告を提出する前に、 これらを使って確認してください。

FreeBSD コアチーム

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

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

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

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

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

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

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

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

1.3.4. サードパーティ製プログラム

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

1.3.5. ドキュメント

サポートが行われているすべての FreeBSD では、システムの最初のセットアップ時に、 インストーラ上で、ドキュメントを /usr/local/shared/doc/freebsd 以下にインストールすることを選択できます。 システムのインストール後でも、 「ports を用いたドキュメンテーションのアップデート」 に記述されている package を使うことで、いつでもドキュメントをインストールできます。 これらのローカルにインストールされたドキュメントは、HTML ブラウザを使って以下の URL から参照できます。

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

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

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

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

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


All FreeBSD documents are available for download at https://download.freebsd.org/ftp/doc/

Questions that are not answered by the documentation may be sent to <freebsd-questions@FreeBSD.org>.
Send questions about this document to <freebsd-doc@FreeBSD.org>.