Berkeley Software Distribution(BSD)オペレーティング・システム・ファミリーは、1970年代後期にカリフォルニア大学バークレー校で作成され、保守されていたBSD UNIXオペレーティング・システムまでさかのぼることができます。今日、BSDファミリーは5つのメイン・ブランチから成り、ディストリビューションの多さに慣れているはずのLinux活動家も、ますます増え続けるBSDフレーバーの数に圧倒されています。最後のメジャー・ブランチであるDragonFly BSDがリリースされた2001年以来、FreeBSD、OpenBSD、NetBSD、およびMac OS XがUNIXの世界の新しいクリエーティブな波となっています。そのすべてがPOSIX準拠です。すべてが、ユーザーに対して同様のコマンドライン・インターフェースを提示します。すべて、カーネルとシステム・ライブラリーを使用しているため、同様のプログラミング・モデルとアプリケーション使用特性が可能です。
法律上の理由から、BSDをUNIXシステムと呼ぶことはできませんが、BSDフレーバーがオープン・ソースUNIXであることは広く受け入れられています。驚くべきことに、1980年代後半から1990年代前半にかけて、PCまたはMacで動く、フリー・オペレーティング・システムと呼べるものはありませんでした。UNIXは、メインフレームとScalable Processor Architecture(SPARC)のものでした。独自仕様UNIX各社が、商用UNIXシーンを分断していました。
1993年、UNIXシーンを永久に変える2つの事件が起きました。すなわち、NetBSDグループの設立と、386BSDパッチ・キットの復活です。その10年前、BSD UNIX開発者が、カリフォルニア大学バークレー校の職員と博士課程の学生たちの中から募集されました。資金の大半を出資していたのは米国防総省国防高等研究事業局(DARPA)でしたが、資金が尽きかけていました。BSD UNIXをIntelチップで動かす試みとして386BSDプロジェクトが始まったのは1985年でした。最初のリリースは1989年まで待たなければなりませんでした。そして、さまざまな理由から、1992年7月、このプロジェクトはDr. Dobb's Journalに発表された基準オペレーティング・システムに行き着きました。386BSD 0.1という名前のこれは、25万本がダウンロードされました。
386BSDは、BillとLynneのJolitz夫妻のアイデアを中心として、UNIXの中心概念を改良したものです。無料をめざしていましたが、完全なオペレーティング・システムを事実上Jolitz夫妻だけでサポートするのは、彼らの能力を越えていることがわかりました。このシステムは、ほとんど無名のフィンランド人学生を交えたプログラマー集団によるLinuxの構築に負けました。
BSD UNIXをIntelチップに移植するという本来のビジョンを最後まで推し進めたもうひとつのグループは、1993年半ばに形成されました。Bill Jolitzの業績を足がかりとして、FreeBSD V1.0がリリースされたのは1993年12月でした。プロジェクト・リーダーのJordan Hubbardがプロジェクトを率いてインフラストラクチャーを管理し、1997年前半までに200人まで増えた開発者グループを管理していました。FreeBSDは今年末までにバージョン6.0に達すると予想され、おそらく、すべてのフリーUNIXシステムの中で最も重要なものです。FreeBSDはUNIXのクローンではなく、UNIXのように動作するだけでなく、内部とシステムAPIがUNIX互換なシステムです。
FreeBSDは、かつてのようなIntel/AMD専用のシステムではありません。SPARC64マシンでも動作し、Alphaアーキテクチャーではかなり長い歴史を持っています。Mac OS Xを実行しているチップに興味を持ったBSDユーザーは、Mac OS Xのオープン・ソース・コアであるDarwin OSに乗り換えることができます。Darwin OSは、FreeBSD V5.0とその後継に多くを依存しています。もちろん、NetBSDは1995年以来、すべてのMacアーキテクチャーで動作しています。
FreeBSDはオペレーティング・システムであり、単なるカーネルではありません。ただし、この言い方は、かつてとまったく同じ意味ではありません。カーネルの概念そのものがかなり恣意的だからです。UNIXの文脈では、ブート終了後までユーザーが特定のライブラリーや実行ファイルにアクセスできないことを意味します。カーネルは、アプリケーションのためにハードウェアを管理しますが、今日のUNIXタイプのオペレーティング・システムの多くは、カーネル・リソースの管理において一定の役割をユーザー・レベル・スレッドに与えています。実行時にユーザーがアクセスできないものはカーネルの一部であると考えてかまいません。これは、ユーザーがカーネルの動作に影響を及ぼすことができないという意味ではありません。たとえば、ある種のユーティリティーはメモリー管理の報告や調整を行うことができ、これらは確かに、ユーザーの権限の範囲内にあります。これらのユーティリティーはシステムAPIを通じてコミュニケーションしますが、システムAPIはカーネルの一部ではなく、オペレーティング・システムの一部であることは明白です。もちろん、FreeBSDには、これらすべてのユーティリティーが含まれているほか、ネットワーキングとハードウェアの特性を処理するその他多くのユーティリティーとアプリケーションが含まれています。
完全なLinuxカーネル・ダウンロードとFreeBSDダウンロードの内容を比較してみると、多くの共通点が見つかるはずです。どちらにもIPスタック、メモリー管理ルーチン、ファイル・システム実装などがあります。ファイル・システム階層は明らかに同じような起源を持ち、ほとんどのコマンドライン・アプリケーションが同じ名前と似たようなコマンドライン・セマンティクスを持っています。もちろん、実際の実装はやや違って見えますが、それでも、両方のシステムが概念的に同じような起源を持っていることがわかるはずです。アーキテクチャーの主な違いは、FreeBSDがいわゆるバッファー・キャッシュにファイルを読み書きする方法にあります。バッファー・キャッシュは(厳密に言うと)仮想メモリーとは別の実体として存在するわけではありません。Linuxには常に自動的に管理されるバッファー・キャッシュ・サイズがありますが、そのメモリー管理ルーチンの作用がFreeBSDとは違います。
FreeBSDは、インストール後すぐに動き始めます。FreeBSDシステムは、sysinstallとも呼ばれるFreeBSDインストーラーを使用して作業用システムをインストールし、明らかにUNIX起源を持つパッケージ管理システムを使用するからです。しかし、FreeBSDはそれだけにとどまりません。パッケージ管理が完全に合理化されています。バイナリー・パッケージとソース・パッケージは、Linuxディストリビューションに共通の悩みの種である今時のパッケージ管理システムの気まぐれに左右されません。FreeBSDでは、パッケージ管理とインターネット規模のアップデートがPortsシステムと統合されているので、ソースのダウンロードとコンパイルを1つの手順で行うことができます。Debianにも同じような利点があると言う人がいるかもしれませんが、DebianはLinuxカーネルにたまたま依拠しているオペレーティング・システムであることを忘れてはなりません。HurdおよびNetBSDカーネルもまったく同じように動作しますが、Debianプロジェクトがパッケージのアップデートを忘れないことが条件となります。
FreeBSDファイル・システムは、往時のBSD UNIXを思い出させるものでもあります。それは、Fast File System(FFS)とUNIX File System(UFS)モニカーとして分類されます。ユーザーは、たいていの場合、ファイル・システムのFFS部分と対話することになり、これがファイルおよびディレクトリーへのアクセスを規制します。2003年にバージョン2がリリースされたUFSシステムでは、ファイル・システムの制限と生のディスク・アクセスを組織化する基本的なデータ構造が設定されています。UFSとFFSは、NetBSDおよびOpenBSDでも使用可能です。Reiser File System(Reiser FS)やJournaling File System(JFS)などのように、Linuxで流行の、より有名なジャーナリング・ファイル・システムは、主にセキュリティ上の理由から、FreeBSDでは使用できません。UFSの動作とパフォーマンスは20年以上もさかのぼる研究に基づいているため、UFSには安定性と(今では)スケーラビリティーという利点もあります。
その他の利点は、FreeBSDの選択に、より重大な影響をあたえるでしょう。コード・レベルのセキュリティに関して、OpenBSDとは格が違いますが、FreeBSDには、そのままで動作する強力なセキュリティ・メカニズムが付随しています。FreeBSD V5.0以来、DARPAが資金提供したTrustedBSDプロジェクトに端を発するきめ細かなアクセス制御とセキュリティ・ポリシーを追加することが可能です。FreeBSDは、アクセス制御リスト(ACL)と強制アクセス制御(MAC)モジュールをサポートしています。後者は、もちろん、システム管理者とマネージャーしかアクセスできませんが、これによって中小企業は、外界に露出されているシステムの一部にきめ細かなセキュリティ対策を適用したネットワークを運用できます。UFS V2は、拡張属性による優れたACLサポートを備えています。UFS V1では、ACLが必要な場合は個別に構成する必要があります。
Linuxの謎を紹介されたことがある人は、たとえばSuSE LinuxやMac OS Xで使用できるアプリケーションを見たいと思うかもしれませんが、FreeBSD用の個別のソースやバイナリーはありません。FreeBSDはLinuxバイナリー互換モジュールを実行でき、インストール時に、またはコマンド・ラインから有効にしなければなりません。Linuxのランタイム・ライブラリーも必要になるかもしれませんが、これらはPortsコレクションから追加できます。
もちろん、FreeBSDは、KDEデスクトップやGNU Network Object Model Environment(GNOME)デスクトップなど、主要なX Window Systemベースのデスクトップ・シェルのすべてを実行できます。FreeBSDは、FreeBSDベースのOS Xが登場するまでは、デスクトップ・ユーザーが選べるUNIX版でした。今でも、予算の制約に縛られているUNIXユーザーにとってきわめて安い買い物であり、サーバーやクライアントとして構成するときにも追加ライセンスが必要ありません。
長い歴史を持つオペレーティング・システムのほとんどと同様、FreeBSDもかなりの数の派生物を生み出してきました。FreeBSDシステムは、コンパイルしてCDを作成しなくても、CDから起動することが可能です。必要な作業は、かなり成熟したFree System Burned in Economy(FreeSBIE) V1.1 LiveCDシステムによってすでに行われています。このシステムは、FreeBSD V5.3に基づいています。ハード・ディスク領域の割り当てとマスター・ブート・レコード(MBR)への書き込みがリスキーだと思える場合、これはFreeBSDを試す絶好の出発点です。
DragonFly BSDはFreeBSD V4.xシリーズのリリースに基づきますが、平均的なユーザーを対象としたものではありません。Webサイトの最初のページで、セキュアなインターネット規模のクラスター化ファイル・システムに言及していますが、これはUNIX初心者が気にするべき要件ではありません。DragonFly BSDは、FreeBSDの仮想メモリーに常駐するグールーによって基礎が築かれ、大規模なセキュア・ファイル・システムとメモリー管理のためのまったく新しいアプローチを実現しようとしています。
UNIXシステムに付随するオペレーティング・システム・マニュアルに言及するのは珍しいことです。このようなマニュアルは、本質的に面白く有用であると同時に、読みにくい傾向があるからです。FreeBSDのマニュアルは、このルールにあてはまらない例外です。旧式なマニュアル・ページの体裁を保とうとしているわけでも、UNIXマニュアルのスタイルや編成を真似しようともしていません。
FreeBSDのマニュアルは、インターネットでも紙版でも、簡潔に書かれた書籍として入手でき、システムのあらゆる局面について、楽しく、しかも、よく考えられたスタイルで説明しています。UNIXシステムを使い慣れていることを前提としていないので、実際に、UNIX初心者の役に立っています。FreeBSDのインストールの簡単さの謎を解説していますが、FreeBSDカーネルのコンパイルの由縁やFreeBSDのインストレーションのセキュリティ確保についても明確に解説しています。マニュアルに書かれていないこと(たとえば、PerlとApache)と書かれていること(Berkeley Internet Name Daemon(BIND)とFreeBSD固有のストレージ・マネージャーVinumなど)を調べてみると興味深いです。Vinumは仮想ディスク・ドライブ管理を実装し、RAID 0、RAID 1、およびRAID 5と連携可能です。
FreeBSDはネットワーク管理者のオペレーティング・システムと言うことができます。高速でSMP対応であり、多数のネットワーキング・ツールと組み合わせて使用できます。FreeBSD は特にラップトップで利用したり、オフィスアプリケーションを利用したり、メールクライアントやデータベースを利用する場合においても問題なくきびきびと動作します。インストール・ルーチンは単純なので、Microsoft® Windows®のパワー・ユーザーであれば、簡単に使えます。Linuxユーザーにとっても多くのメリットがあります。それはひとえに、バイナリー互換モードの、Linux専用アプリケーションがそのまま使えるからです。FreeBSDはきわめてスケーラビリティーが高く、LinuxまたはBSDフレーバー向きに書かれたほとんどのアプリケーションを実行できます。しかし、FreeBSDはフリー・オペレーティング・システムのスイス・アーミー・ナイフではありません。OpenBSDほどセキュアではありませんし、将来のOpen Solarisバージョンがそうなると考えているほどスケーラビリティーに優れているわけでもありません。しかし、市販のものであれ、フリーのものであれ、Intelチップで動くどんなオペレーティング・システムにも匹敵し、多くの場合は、類似のものより安定性と拡張性の高いプラットフォームとなります。
-
FreeBSDはFreeBSDのメイン・ポータルです。ここではソースコードやFreeBSDハンドブック、FreeBSDの新バージョンなどが提供されています。
-
UFS 2は広く使われていますが、あまり知られていません。
-
DragonFly BSD Projectは、大部な、そして技術的に高度なドキュメンテーションを提供しています。
-
FreeSBIEでは、FreeBSDのライブCDを提供しています。
- Debianオペレーティング・システムは一般的にGNU/Linuxベースだと思われていますが、DebianのWebサイトを見ると、NetBSDやHurdなど、他のカーネルも実行できることが分かります。
- モトローラの68kベースのMacが歩んだ道をさかのぼりたい人は、NetBSD/mac68kのWebサイトに面白いものが山ほどあります。
- NetBSDのPPC移植が、非常に活発なNetBSD/macppc groupによって提供されています。
- OpenBSDがセキュリティーに焦点を当てていることに対して、Macの専門家の間でも支持が広がっており、ここではPPC移植が開発されています。
- ハードディスク管理は通常、商用ツールが支配的ですが、FreeBSDには、Vinumと呼ばれる独自のOSSツールが付属しています。
- バークレーUNIXは、IPネットワークのための、元々のテスト・ベッドでした。BIND、つまりBerkeley Internet Name Domainは、ネーム・サーバーやリゾルバー・ライブラリーを含めてDNSプロトコルすべての実装を代表しており、インターネットのドメイン名インフラに必須のものとなっています。
- developerWorksのチュートリアル、「Installing FreeBSD」を見て、自分のコンピューターでFreeBSDを実行する方法を学んでください。
-
developerWorksのOpen sourceゾーンでは、オープンソース技術による開発や、IBM製品上でオープンソース技術を利用するためのハウツー情報やツール、プロジェクトの更新情報などが豊富に用意されています。
- 皆さんの次期Linux開発プロジェクトを、IBM trial softwareを使って革新してください。DVDで、あるいはdeveloperWorksから直接ダウンロードすることができます。
-
developerWorks blogsに参加して、developerWorksのコミュニティーに加わってください。