目次


ディストリビューションの作成、第3回

Linuxからの離脱と復帰

Comments

前回の記事の最後で、新しいデュアル・セレロン・マザーボード(Abit BP6) にアップグレードした途端に不可思議なアイドル時のロック・アップ・バグに遭遇し、これが引金となって、Gentoo Linux開発が休止状態に追い込まれたことを述べました。結局、この問題は解決せず、そのときは、マザーボードを取り換える資金もなかったので、Gentoo Linuxの開発を中止し、FreeBSDへ乗り換えることに決めました。 私にはキチンと稼動するシステムが必要であり、Linuxは常にロック・アップしていたので、あとで考えると、このことは、BSDオペレーティング・システムに精通する絶好の機会であったかもしれません。 そこで私は、FreeBSDをインストールし、学習を始めました。そのため、その後数か月というものはまったくLinuxに触れませんでした。

FreeBSDの印象

私は、FreeBSDに魅了されました。 このオペレーティング・システムは巧みに 構成されており、Linuxの世界では見られなかったほど、システムのあらゆる部分が整合性を保ちながら、高度に磨き上げられていました。FreeBSDにはmanページがすべて揃っており、これは非常に有難いことでした。一方、LinuxではGNU情報ドキュメントしか付属していないプログラムが多く、これを読むのはあまり気が進みませんでした。 

FreeBSDを見て最も強い印象を受けたのは、portsシステムでした。これはシステムの保守とアップグレードに用いられるテクノロジーです。 Linuxのアプローチとは違い、portsはバイナリー・パッケージを使用せず、代わりにローカルで自動的にオリジナル・ソースから、すべてをコンパイルします。 Sambaをインストールする場合も、システムの中核部分をアップグレードする場合も、すべてローカル・マシン上でコンパイルできます。 私は、このアプローチに引き付けられました。私が Gentoo Linuxで開発した方法と非常に良く似ているのです。 この方法だけでなく、その他の面でも、私は開発者およびシステム管理者としてFreeBSDの設計に共感を持ちました。 そういうわけで、このFreeBSDは、数か月間快適な作業環境を提供してくれました。私は、この優れたオペレーティング・システムに習熟する時間が得られたことを感謝しています。

FreeBSD賛成論

LinuxとFreeBSDの違いの多くは、開発の進め方が異なることに由来しています。 Linuxの開発は、非常 に分散化されており、私たちは、インターネット上に散在するLinuxのさまざまな断片をディストリビューション が管理し、統合してくれることに頼っています。 LinuxをFreeBSDや他のBSD (OpenBSDおよびNetBSD) と比べてみると、BSDには、統合された開発チームがあり、統合された1つのソースを使用して作業が進められるという違いがあります。  少なくとも、各BSDは、個々に統合されたソースを持っています。 これが良い結果を生み、FreeBSDには、多くのLinuxディストリビューションにありがちな「継ぎはぎ」の感覚 がなくなりました。

次に、テクノロジーのインプリメントの仕方の違いを比較することができます。 FreeBSDは、Linuxよりもサーバーに適していると主張するFreeBSDファンが数多くいます。 システム負荷が高い時は、FreeBSDの方が性能が良く、TCP/IPスタックのデザインも優れていると、彼らは言います。 Linux 2.2またはそれ以前のLinuxとFreeBSDとを比較するなら、私もその意見に同意せざるを得ません。 FreeBSDが、極めて優秀なサーバーOSであることは確かです。 しかし、これは、Linux 2.2とそれ以前のものに当てはまることです。 私は、自分で実際に稼動させた2.4テスト・カーネルの大ファンになりました。 2.4のカーネルは、本当に優れており見事なTCP/IPスタックを実装し、すばらしい「netfilter」システムとして全体的に再設計されています。 結局、Linuxは新たなパフォーマンスの標準を設定するものとなり、商用の競合製品に対し、無料のUNIXサーバーが、従来に増して優位に立つだろうと思います。

FreeBSD反対論

サーバーの世界ではなく、デスクトップ用としては、Linuxに対抗できる相手がありません。Linuxは、新しい動きの震源地です。最新のあらゆるデスクトップ開発は、まずLinuxで実現されます。3D グラフィック・アクセラレーション・カードやサウンド・カードのサポートでは、Linuxが先頭を 切っています。 Linuxは、Linux 2.4のアプローチにより、今後もこの領域で支配的優位を 保つでしょう。

FreeBSDに関して気に入らないことが1つあります。それは、FreeBSDがUFSファイルシステムを使用していることです。 UFSは、ext2に比べると、信頼性が高く堅固なファイルシステムですが、うんざりするほど遅いのです。 UFSには、ソフト・アップデートと呼ばれる特別な拡張機能があり、これを使用すれば、I/O操作をより大きな単位にまとめることによってファイルシステムの速度を上げることができます。 ソフト・アップデートを用いてUFSを劇的に改善できるものの、UFSがext2よりパフォーマンスに勝っているとは思えません。信頼性が高いことは事実ですから、このファイルシステム論争ではFreeBSDがLinuxに対して勝利したことになります。再度申し添えますが、これは古いLinux 2.2ディストリビューションとFreeBSDを比べた場合の話です。 

しかしながら、FreeBSDに対する新しいLinux 2.2とLinux 2.4の比較を始めると、立場が逆転します。ReiserFS (Linuxで利用できる新しいジャーナリング・ファイルシステム) は、驚異的です。 また、Linuxには、ext3、IBMのJFSおよび 将来が楽しみなXFSがあり、いずれも優れたパフォーマンスと信頼性が期待されています。 現時点でLinuxには、FreeBSDを超える速度を実現するReiserFSがあります。このことは、FreeBSDがLinuxよりも優秀だという旧来の議論を覆して、Linux 2.4が優位に立つと私が考える根拠の1つとなっています。

Gentoo Linuxの開発に戻る

数か月後、私は、再びLinuxの世界へ戻って、新たな開発用マシンを使ってGentoo Linuxを動かすことを決め ました。 最初、Gentoo Linux開発を再開するという判断は、単にビジネス上のものだけではありませんでした。私は、自分の時間の多くをLinuxの知識の習得に注ぎ込みました。BSDに固執すれば、Linuxの知識の すべてが無駄になってしまいます。 しかし、Gentoo Linuxのアップデートを始めるとすぐに、Linux には、戻ってくるだけの価値があることが分かりました。すなわち上述のすべてのファイルシステムと カーネルの改善です。 FreeBSDの世界は、平和的な家庭とも言うべきものですが、少し退屈でまじめ過ぎるところがあります。Linuxの世界は、新たな動きの中心でもあり、重要な進歩の場 でもあります。興奮と革新を望むなら、Linuxの世界が、まさにその場であることは疑う余地が ありません。

私にとってLinux 2.0から2.2にかけての時代は期待外れでしたが、2.4の時代は待つだけの価値がありました。 かくしてGentoo Linuxは生まれ変わり、私も興奮しているという次第です。

Gentoo Linux再生の鍵がもうひとつあります。私の開発チームの指導者、Achim Gottinger氏です。 この場を借りて、Gentoo Linux開発の再開に協力してくれたことを、氏に感謝したいと思います。 私がLinuxの世界へ戻る少し前に、氏から電子メールを受け取ったのが、事の始まりでした。 氏からの電子メールのほとんど全てには、Gentoo Linux用の新しい .build (autobuild) スクリプトか、喉から手の出るほど欲しいバグ・フィックスが、添付されていました。 私がGentoo Linux開発を再開したのを知り、氏は自分の時間とリソースを割いて協力してくださり、ディストリビューションを立て直すのを手助けしてくれたのです。 ごく最近まで、Gentoo Linuxを開発していたのは、私たち2人だけです。これは自ら選んだ道でした。 私たち2人は、ディストリビューションに関して似たようなビジョンを持っていることと、氏の技術が優れていることによって、膨大な作業をこなすことができました。私は、氏以外の開発者が加わったとしても、私たちの進歩に重大な貢献ができたとは思えません。 現在、氏は、Gentoo Linux開発の指揮を取り、毎日のようにGentoo Linuxに重要な改善を施しています。 現在、他の人たちがCVSツリーのもとで作業に参加できる環境が整い、徐々にですが十分注意を払いながらGentoo Linuxの開発チームのメンバーを増やしています。

新ビジョン

私は、どのような意味でもBSDの世界で過ごした時間が無駄だったとは感じていません。  事実、BSDでの体験は、Linuxコミュニティーの中で活かすことができ、Gentoo Linuxが真に有用なものになるためのヒントを与えてくれました。

Gentoo Linuxの新しいバージョンでは、pgccを使用せず、すべてのバイナリーをコンパイルするための高度の最適化も用いないことに決めました。 安定性が最優先なので、妥当と思われる最適化機能("-O2-mpentium")を使用しますが、ユーザーがautobuildシステムを使用し、指定した最適化機能をユーザーの好みに合わせて容易にカスタマイズできる方法も提供するつもりです。 

FreeBSDに触れたことで、autobuildシステムをいかに機能させるべきかについて、良い考えが浮かびました。 autobuildシステム (現在これは、Portageと呼ばれています) にFreeBSDの機能をいくつか付け加え、このシステムを真に次世代のportsシステムにすることにしました。

Portage機能は、Gentoo Linuxの心臓部であり、単なるパッケージ管理システムやパッケージ保守システム以上のものです。 ビルド・ツールとビルド・スクリプトで構成されるPortage機能を用いれば、ユーザーはオリジナルのソースからディストリビューション全体を再構築できます。 しかし、私にとってさらに重要なことは、Portageによってユーザーは、Gentoo Linuxがどのように構築されているかというコアの情報を、すべて手に入れることができるということです。これは、私たちにとって非常に重要です。Gentoo Linuxの開発を進めるのと同時に、ディストリビューションの構築方法も文書化しなければならないからです。 Portage機能は、使うのも理解するのも容易なので、この機能によりLinux開発の世界が、より多くの方に広まり、その方たちが、私たちのソースやスクリプトの開発に協力いただけるようになればと期待しています。

Portage機能は、他の人たちにLinuxテクノロジーを広めるためにとった、私たちの手段です。 autobuildスクリプトを学べば、多様なパッケージすべてを、いかにして1つにまとめるのか理解できます。 必要なら、私たちのCVSツリー全体を入手してそれを改変し、ユーザー独自のカスタム・ディストリビューションやLinuxベースのテクノロジーを開発できます。 これは素晴らしいことだと思います。私たちは、Linuxを新たな領域に導くために必要な知識を、他の人たちにもお伝えしたいと考えています。

商業上の関心事

Gentoo Linux開発には、当初から多種多様な背景を持つ人が数多くかかわっていました。私たちがGentoo Linuxの「お金を稼ぐ」という側面にどう取り組むべきかという点で、開発者たちが 大きく異なる意見を持っていることには、私は驚きませんでした。 基本的に、Gentoo Linuxの開発者 には、2つのグループがありました。1つは、概して利益の追求に反対するグループで、もう1つは、Gentoo Linuxを商業製品として成功させることに熱心なグループです。 このように割れることは 予想していました。最初のグループは、商業にかかわることに良くない影響があると考え、他方の グループは、そのような否定的な意味合いは無いと考えていたのです。

Enoch時代には、私は、この問題をどう取り扱うかについて迷い、対応の仕方が分かりませんでした。 Debianのようなディストリビューションが、そのソフトウェアの無料配布を行うと確約していたことは、私も知っていました。 私は、この方針が気に入っていました。 他の商用ディストリビューションと比べて、Debianは、そのWebサイトで詳しい説明を掲載していたため、ユーザーにとって取組みが容易でした。これは見習うべきことと思いました。

同時に、Gentoo Linuxを商業的に成功させたいとも望みました。 両方の妥協点を見出すのは大変であり、最近までいい案が浮かびませんでした。

何をすべきか?

どうしたら商用と非商用の事業のバランスを取るようにできるでしょうか? この問題の鍵は、私たちの拠って立つ基盤を思い出すことにあります。Gentoo Linuxの基盤は、オープン・ソース・ソフトウェア です。 したがって、私たちの試み全ては、オープン・ソースに焦点を 当てなければなりません。  オープン・ソース・ソフトウェアについて知るだけ、あるいはそれを使うだけでは不充分です。  私たちは、オープン・ソースの開発とディストリビューションを促進しなければなりませんが、商業的利益を目指した同様の動きに対して 反対するものではありません。 さらに重要なのは、私たちが、ソースの無料のディストリビューションを 制限したくなるようなビジネス・モデルを構築してはならないということです。 私たちの開発チーム は、オープンで誰でも気軽に声をかけられる存在でなければなりません。また、Gentoo Linuxは、単に 無料のディストリビューションが許されるというだけでなく、積極的に奨励されなくてはなりません。  私たちは、言葉だけでなく、行動で示すオープン・ソースの主唱者である必要があります。 

私たちの作品はGPLの元で配布されているので、ある企業が、商用Linuxベースのテクノロジーに Gentoo Linuxを使用したいと考えた場合、CVSツリーの内容を入手すれば、すぐに使い始めることができます。 私たちは、すべての派生製品がGNU Public Licenseに準拠する保証をしていただくこと以外、私たちの作品を使用することについて、どのような制限も加えたくありません。

私たちは、私たちの成果物から、できる限り多くの人が利益を得られることを望んでいますが、同時に、皆さまがGentoo Linuxに対して行われた改良を利用させていただきたいと考えています。 皆さまの企業が、製品のベースとしてGentoo Linuxを使用されている場合、皆さまが手を加えられた無料再配布可能な改良版を、私たちのところへ送ってくださるようお願いします。私たちは、それをCVSツリーに加えたいと思っております。 そうすれば、誰もが利益を得ることができます。 私たちは、皆さまからいただいた改良版を保守・改善していきます。これにより、今度は皆さまがこの改良版から恩恵を受けることなります。 商用、非商用の団体間の共同作業も推進していきたいと思います。 こうすることによって、Gentoo Linuxをご自分のISPで利用しているシステム管理者や、商用サーバー製品を構築する企業の両方が、お互いの改良版やGentoo Linuxの修正版から恩恵を受けることができるようになります。 皆がコードを無料で交換する時代になったのです。 オープン・ソースによってのみこれが可能になります。

将来の見込みは?

目下のところ、Gentoo Linux 1.0をリリースする最後の段階にいます (読者がdeveloperWorksで これを読むころには、使用可能になっているかもしれません)。しかし、将来はどうなるのでしょうか?

バージョン2.0へ進む際には、Portage機能の改良を続けたいと思います。Portageは、Gentoo Linuxテクノロジーの心臓部です。 通常、Gentoo Linuxに対する主要な改良は、Portageの改良から始まります。 私は、コードの大部分をbashからpythonへ変更するプロセスを続けたいと考えています。pythonを使用することにより、autobuildシステムにオブジェクト指向設計のような新しい機能を加えることができます。

Portage機能の変更に加え、私たちと同じビジョンを持つスキルの高い開発者を探して、開発チームをゆっくりと慎重に強化したいと考えています。 開発チームが強化されるにつれて、Gentoo Linuxで利用できるautobuildスクリプトの数も大幅に増やすことができます。 しかし、それより大切なことは、開発チームのメンバーが幾分増えたことによりGentoo LinuxをLinuxテクノロジーの最先端に位置させるリソースを与えてくれることです。 ここに楽しみがあります。

また、商用Linuxテクノロジーを持つ組織体が、製品のベースとしてGentoo Linuxを選んでくれることを希望しています。 現在、1社とこのような協力体制にあり、将来はより多くと協業したいと考えています。 この種の協力は、多くの楽しみとGentoo Linuxユーザーのすべての人に恩恵を与えるものです。 

最後に、私たちの究極の目標は、Linuxコミュニティーに対して何がしか意味のある貢献をすることであることを、重ねて申し述べてさせていただきます。 選択可能なLinuxディストリビューションの数は多いのですが、Gentoo Linuxは他で入手できない何かを提供できると、私たちは確信しています。 私たちは、Gentoo Linux開発の将来に胸を躍らせています。皆さまも同じ思いを抱いていただければ、これにまさる喜びはありません。


ダウンロード可能なリソース


関連トピック

  • developerWorks で、以下をお読みください。「ディストリビューションの作成」第1回および第2回
  • Gentoo Linuxの詳細についてはGentoo Technologies, Inc. 社のWebサイトをご覧ください。
  • 競合するディストリビューション、FreeBSD をご覧ください。
  • GPL を参考にしてください。
  • オフィシャルStampedeサイト をご覧ください。
  • X86プロジェクトの詳細は、Free X86 Project をご覧ください。
  • GTK+ 参考資料 を入手できます。
  • X11/gtk+-based MP3/CDプレイヤー・アプリケーションについてはXMulitMediaSystem をご覧ください。
  • Debian の優れた文化をご覧ください。
  • オフィシャルGCC サイトをご覧ください。

コメント

コメントを登録するにはサインインあるいは登録してください。

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Linux
ArticleID=228092
ArticleTitle=ディストリビューションの作成、第3回
publish-date=01012001