なぜFreeBSDか

BSDオルタナティブのクイック・ツアー

FreeBSDオペレーティング・システムは、フリー・オペレーティング・システムの未知の巨人です。386BSDプロジェクトから始まり、Intel®チップとそのクローンを主な用途とした、きわめて高速なUNIX®ライクなオペレーティング・システムです。多くの点で、FreeBSDは常に、GNU/Linux®ベースのオペレーティング・システムがそうであるべきオペレーティング・システムでした。旧式なIntelマシンと64ビットのAMDチップで動き、地上最大のファイル・サーバーのいくつかで1日に数テラバイトのファイルを処理します。

Frank Pohlmann (frank@linuxuser.co.uk), U.K. Technical Editor, Linuxuser and Developer

Frank Pohlmann は中東の宗教の歴史を少し学びましたが、その後様々な援助委員会が、宗教の歴史に関する研究は現代世界にほとんど関係がないと判断してしまいました。それ以来、彼は趣味であるフリー・ソフトウェアに集中しています。彼は自分がイギリスにある Linuxuser & Developer の技術編集者であることを認めており、彼が Linux や FreeBSD の世界に入ったのは、ライターやアーティストのための UNIX カーネル内部や Linux アプリケーションに強い興味を持っているためです。



2005年 7月 19日

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シーンを分断していました。

初めに386BSDありき

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の構築に負けました。

FreeBSDの歴史

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にあってLinuxにないもの

Macでは、BSDは時代遅れです。UNIXは、さらに昔から、Macアーキテクチャー上で動作してきました。ほとんど誰も覚えていませんが、AT&T UNIXのバージョンがAppleのQuadraマシンで動いていた時代があったのです。1980年代後期、このUNIXバージョンはApple UNIXと呼ばれ、UNIXサーバー空間の一画を獲得しようというAppleの努力を表していました。Apple UNIXが新しいPowerPCアーキテクチャーに移植されることはありませんでしたが、Motorola 68x00チップでも十分に動作していました。明らかに、コードは独自仕様であり、通常、数千ドルの投資が必要でした。Bill Joyほどの有名人でも、UNIXの世界では誰も一顧だにしないマシンとして1980年代中期のMacを退けたという事実に慰めを見出せるかもしれません。まあ、仕方がないでしょう。

1991年に386BSDが登場したとき、Macは人々の気持ちからそれほど離れていませんでした。Brad Grantham、Lawrence Kesteloot、Chris Caputoは、386BSDをMacBSDという名前でMacに移植する作業を管理していました。1992年後半、BSD UNIXはMac IIに新しい居場所を見つけましたが、その頃、BSD UNIXの同時分裂は可能性ではなく必然と見られ始めていました。AT&Tとカリフォルニア大学バークレー校を取り巻く法的な不正が、BSD UNIXプロジェクトの自由化を技術的にも法律的にも必然のものとしました。それでも、Intelチップ専用のBSDフレーバーができる前に、初期のMacintoshアーキテクチャーがフリーUNIXを動かしていたことは驚くべきことです。386BSDは、UNIXがIntelチップでできること以上に多くのことを目指していたわけではありません。最も良いときでも、あまりうまく動かず、ついにバージョン1.0に達することはありませんでした。

1993年夏、Allen BriggsとMichael Finchは、細分化が深刻な事態になるのを避けるために、NetBSD V0.8とMacBSDの統合を始めました。結局、UNIX戦争は誰にとっても生々しいものであり、NetBSDは、BSDというマントの下にできるだけ多くのアーキテクチャーを取り込むために、試してみる価値のあるプロジェクトに思えました。その頃までに、NetBSD V1.0が登場し、NetBSD/mac68kプロジェクトがしっかりと根を下ろし、それ以来順調に進展してきました。

NetBSD/macppcプロジェクトは、より最近の収穫です。PowerPCポートがNetBSDポートに含まれたのは1999年ですが、1995年以降のすべてのPPCアーキテクチャーが含まれています。これは、604 PowerPC以降のすべてのMacアーキテクチャーをサポートしています。

OpenBSD/macppcはNetBSDコードに基づきますが、完全に機能するポートにするために、OpenBSDプロジェクトにより依存しています。明白な理由から、FreeBSDプロジェクトはそっけない態度を取り続け、IntelとAMDのサポートに専念していましたが、Mac OS XのOSSカーネルであるDarwinがリリースされて以来、FreeBSDコードがMacintoshアーキテクチャーで動くようになりました。このことは、AppleがIntelサポートを発表した今日では、あまり関係がないように思えるかもしれません。しかし、FreeBSDとDarwinの開発には重なり合う部分がかなりあり、かなり多くのFreeBSD開発者がApple社員です。

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もかなりの数の派生物を生み出してきました。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のコミュニティーに加わってください。

コメント

developerWorks: サイン・イン

必須フィールドは(*)で示されます。


IBM ID が必要ですか?
IBM IDをお忘れですか?


パスワードをお忘れですか?
パスワードの変更

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


お客様が developerWorks に初めてサインインすると、お客様のプロフィールが作成されます。会社名を非表示とする選択を行わない限り、プロフィール内の情報(名前、国/地域や会社名)は公開され、投稿するコンテンツと一緒に表示されますが、いつでもこれらの情報を更新できます。

送信されたすべての情報は安全です。

ディスプレイ・ネームを選択してください



developerWorks に初めてサインインするとプロフィールが作成されますので、その際にディスプレイ・ネームを選択する必要があります。ディスプレイ・ネームは、お客様が developerWorks に投稿するコンテンツと一緒に表示されます。

ディスプレイ・ネームは、3文字から31文字の範囲で指定し、かつ developerWorks コミュニティーでユニークである必要があります。また、プライバシー上の理由でお客様の電子メール・アドレスは使用しないでください。

必須フィールドは(*)で示されます。

3文字から31文字の範囲で指定し

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


送信されたすべての情報は安全です。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Open source, Linux
ArticleID=236864
ArticleTitle=なぜFreeBSDか
publish-date=07192005