2.2. フリー・ソフトウェアの概念

フリー・ソフトウェアの定義が理解できたら、フリー・ソフトウェア運動の理念を守ることが大切です。 また、フリー・ソフトウェアに関する誤解を無くすことも重要です。 このセクションでは、フリー・ソフトウェアを導入するために必要なさまざまな要素を説明し、解決しなければならない問題を示すことにします。

2.1.1. フリー・ソフトウェアの思想

フリー・ソフトウェア運動によって推進されてきた思想は、科学的な運動によって推進されてきた思想とは異なり、共通の考えや集積された知識を基にして、研究の推進と知識の成長を可能にするものです。 人ゲノムの解析は、そのような共同作業の一例です。

コンピュータ開発環境は、特にソフトウェアの面において、このような科学の世界の基本概念から、過去 20 年間を境に転換し始めたように思われます。 一方、これに反して、最善のコンピューティング環境を実現するために必要な情報を顧客に公開せず、顧客を囲い込むことも行われています。 MIT で人工知能の研究をしていた Richard Stallman が、80 年代の初頭に GNU プロジェクトを開始したのは、まさに、そのような問題があったためです。 このプロジェクトが、現在のフリー・ソフトウェア運動の元になっています。

この運動の基本概念は、Richard Stallman 本人の言を借りれば、次のようになります。

このような理想のほかに、フリー・ソフトウェアが今日のように広く普及した理由が、いくつかあります。 それをセクション 2.2.2 で説明します。

フリー・ソフトウェア運動も、人々のコミュニティを通じて実現されます。 そのコミュニティは非公式な個人の集まりで、本来ソフトウェアはフリーでなければならないとの信念を共有していることを除き、内容、活動、考えにはさまざまなものがあります。 このコミュニティはコミュニケーションに必要な道具、インターネットおよび Usenet を自ら作り出しました。 また、これらのコミュニケーション・ツールは、もちろん、多くのフリー・ソフトウェアをベースにしています。 この運動の著名な貢献者として、特に、次の人々の名前を挙げることができます。

上記の方々は、卓越したコンピュータ・エンジニアで、フリー・ソフトウェア運動の主要な担い手として知られています。 また、個人としても大きな魅力のある素晴らしい方々です。 権力ではなく、その英知で知られる人々です。

フリー・ソフトウェアのコミュニティは、上記の方々のほかにも多くのプログラマによって支えられているのはもちろんですが、すべての方々を網羅することは不可能です。 だれもが、フリーで有益な作品を生み出す意思を共有し、お互いの切磋琢磨を目指す人ばかりです。

2.2.2. フリー・ソフトウェアの選択

コンピューティング環境でのソリューションとしてフリー・ソフトウェアを使用するのは、1 つの選択です。 まず、特に独占的な傾向のあるパーソナル・コンピュータの世界で、多様なソリューションから選択できる利点があります。 また、これが特に重要な点ですが、フリー・ソフトウェアは、その品質に基づいて選択することができます。 これについては、下記に詳しく説明します。

ソース・コードの公開

これは最も重要なポイントです。 ソース・コードが公開されているので、ソフトウェアの理解、適応、修正、配布、改良を行うことができます。

信頼性

品質は、ソース・コードの公開から生まれます。 フリー・ソフトウェアは、その開発に参加するすべての人々の経験と英知の結晶です。 時間が経過するとともに、修正が積み重ねられ、信頼性が向上します。 また、販売のためのプレッシャーがないために、ソフトウェアの制作者は、満足できる状態になってから配布を始めることができます。

移植性

これはフリー・ソフトウェア固有の特徴ではありませんが、多くのフリー・ソフトウェアに見られる特徴です。 成功を収めたソフトウェアは、当初目標としたよりも多くの環境で採用されるのは当然です。 対応する環境が増えるに従って、移植性や信頼性も向上します。

普遍性

フリー・ソフトウェアは、使用されるデータ・フォーマットが本質的に普遍的である特質があります。 たとえ、標準に準拠していない場合でも、ソース・コードを見れば理解できます。 またデータの再利用に必要なフィルタの作成や、他のソフトウェアのデータ交換が可能です。 アプリケーション間のデータ・フォーマットに互換性がない場合でも、特に一方のアプリケーションに移行する必要がないため、慣れた環境を使い続けることができます。

パフォーマンス

多数の実験、高度な研究を基にしたアルゴリズムの使用、さまざまな使用形態でのテストなどの結果、フリー・ソフトウェアは本質的に優れた性能を示します。 基本のアイデアを変えずにより良いコードを使用して大幅なコードの書き換えが行われることもよくあり、このようにして性能が向上します。 さまざまな組織で行われている各種のテストでも、そのような結果が示されています。

表 2-1 フリー・ソフトウェアの性能

ソフトウェアURL
Apache ウェブ・サーバーと類似ソフトウェアの比較http://www5.zdnet.com/products/content/pcmg/1709/305867.html
SMB SaMBa サーバーと Windows NT の比較http://www.zdnet.com/sr/stories/news/0,4538,2196106,00.html

くどいようですが、性能の悪いアプリケーションを普及させる義理はありません。

相互運用性

歴史的に、Unix 環境は常に他のシステム(大中規模システムからパーソナル・コンピュータまで)との相互運用性を醸成してきました。 たとえば、Linux では多くのネットワーク・プロトコル、ファイル・システム・フォーマット、バイナリ互換モードなど、良好な相互運用性を実現しています。

問題への対応

最近では、ソフトウェア制作者の開発サイクルがどんどん長くなっているため、フリー・ソフトウェア運動によってもたらされる問題への対応性の良さが、問題の解決の迅速性に関心のある多数のサイトの注目を集めています。 最近の IP 問題(死の ping)の発見時には、3 日以内にパッチが入手できました。 また、発見された穴を修正するだけのパッチが配布されました。 新たに不安定の種となる、余計な機能の追加はありませんでした。

フリー・ソフトウェアをお勧めする理由は、フリー・ソフトウェアの品質が優れているだけではなく、それぞれの人に合わせて、他にいくらでもあります。

2.2.2.1. マーケティングの考察

IDC の調査によれば、サーバー用オペレーティング・システムとして Linux が大きく伸びていることが明らかになっています。 1998 年の Linux の市場シェアは 17% ですが、増加率は 212% で、もっとも大きく伸びました。 次の図に市場でのシェアを示します。

図 2-1 サーバー・オペレーティング・システムのシェア、1998 年(IDC)

1999 年には市場でのシェアは 24% に上昇し、増加率は 93% で、他のシステムの増加率の 4 倍です。

図 2-2 サーバー・オペレーティング・システムのシェア、1999 年(IDC)

Dataquest では、2003 年に販売されるはサーバーの 14%、110 万台のサーバーが Linux サーバーになると予想しています。

インターネット上にも、フリー・ソフトウェアの優位を示すマーケティング・ツールが用意されています。 ウェブ・サーバー・ソフトウェアに関しては Netcraft 、インターネット上のサーバーに関しては IOS Counter によって、2 つのカウンタが定期的に更新されています。 その結果は、下記に示すように、Apache は 600 万以上の運用サイトで使用されて他を圧倒し、インターネット・サーバーの世界では、フリー・オペレーティング・システムの Linux と *BSD が優勢であることが明らかです。

図 2-3 1995 年〜2000 年の Netcraft によるウェブ・サーバー・ソフトウェア

図 2-4 IOS Counter によるインターネット・サーバーのシェア、1999 年 4 月

2.2.2.2. 財務的考察

フリー・ソフトウェアは金銭面でも有利です。 まず、取得費用が少なくて済みます。 ただし、ゼロではありません。 たとえ、インターネット上に存在するとしても、接続に要する費用がかかります。 ただ、市販のソフトウェアに比べれば、はるかに安い費用で入手できます。 RedHat 7.0 Linux ディストリビューションは、1,200 以上のソフトウェア・パッケージ付きで、約 60 米ドルですが、Windows NT Server は 800 米ドルもする上に IIS しか付属していません。

また、フリー・ソフトウェアの場合は、ユーザー・ライセンスや補助サービスのライセンスを気にする必要がありません。 フリー・ソフトウェアの場合は、そのソフトウェアの使用が増えても、余分な費用は必要ありません。 市販ソフトウェアの場合は、ライセンス数だけの費用が必要なことがほとんどです。

また、フリー・ソフトウェアを使用した場合は、大量のパーソナル・コンピュータで使用する場合によく問題となる TCO(総所有コスト)も低く抑えることができます。 Linux や FreeBSD などのシステムは Unix ですから、コマンド・ライン(telnet を使用)またはグラフィカル・モード( X-Window を使用)で、リモート環境から完全に管理でき、管理コストを低く抑えることができます。 さらに、真のマルチ・ユーザー・モードのため、管理操作が楽です。 独自のハードウェア(ほとんどの HP NetServers に内蔵されている Remote Assistant カードなど)や、リモート接続(モデム、ISDN アダプタ、固定接続)とネイティブ PPP プロトコルおよびトンネリングや ssh などの安全な接続を通じて、常時、リモート管理を行うことができます。 そのため、アウトソーシングにより、外部の実体による管理すら可能です。

最後に、ハードウェア自信のコストも節約することができます。 また、必要な機能をフリー・ソフトウェアで実現できない場合は、その部分だけを市販のソフトウェア・ソリューションでカバーすることができます。 フリー・ソフトウェアをベースにしたソリューションは、他のオペレーティング・システムやアプリケーションと同じ条件で使用した場合は、本質的に性能が優れている上、旧式のハードウェア・プラットフォームも使用できます。 旧式の、主として型番の古いハードウェアも使用することができます。 したがって、ソリューションの運用時に、必要に応じて投資することが可能です。 システムの能力の強化を漸進的に行うことができます。

2.2.2.3. 技術的考察

この考察は、前のセクションでも行いました。 ここでは、その説明を補完する情報を提供することにします。

フリー・ソフトウェアをベースにしたソリューションの信頼性に関しては、その実運用時間が非常に高い事実を知ることが重要です(Unix システムの一般的特徴)。 これは、uptime コマンドで測定できます。 Medasys および HP の顧客である聖ミカエル病院によれば、Linux でのルータとして、Vectra VL5 が 300 日以上も連続して動作を続けています。 しかも、これは特別な例ではありません。

フリー・ソフトウェアは、卓越した移植性だけではなく、標準や規格に準拠しているため、さまざまなプラットフォーム用に開発されたアプリケーションは、同じ品質を保つことができます。 フリー・ソフトウェア・ベースのアーキテクチャによる性能やサービスに満足できない場合でも、HP-UX の動作する HP 9000 システムなど、もっと性能が高くて容量の大きなマシンに簡単に移行することができます。

最後に、性能を中心にした開発プランにより、システムのカーネルをハードウェアの容量に合わせてリサイズしたり、必要に応じてダイナミックにロードしたモジュールを使用するなど、モジュール方式が採用されています。 パッケージのインストールは、最小システムの 40GB から完全なディストリビューションまで、さまざまです。 システムの直線性により、マルチ・プロセッサ・マシン(SMP)もサポートできます(Sparc マシンで最大 32 プロセッサのテスト済)。 モジュール方式のシステムにより、1.44MB のフロッピーでも、最小緊急環境や完全なルータとして動作します。 モジュール方式、ソースの公開など専用周辺機器との通信が簡単なため、組み込みシステムの世界では、Linux のようなシステムへの関心がますます高まっています(データ収集カード、ゾンデなど)。 CERN や Thomson などでは、既にこのようなソリューションが使用されています。

2.2.20.4. ソリューションとしての考察

フリー・ソフトウェアを使用しても、何の役にも立たなかったり、問題の解決が得られないと、まったく意味がありませんから、このセクションが最も重要かもしれません。 フリー・ソフトウェアは、どの分野で今日のソリューション足りえるでしょうか。 フリー・ソフトウェアは、エンタプライズ・コンピューティングのほとんどすべての分野のソリューションとして立派に使用できることを認めなければならないでしょう。

歴史的に、インターネット/イントラネット・サーバーの構築にはオープン・ソース・ソフトウェアが使用されてきました。 オープン・ソース・ソフトウェアはインターネットと共に成長してきたのです。 ウェブ・サーバー(Apache)、FTP サーバー(Wu-Ftpd)、DNS サーバー(Bind)、電子メール・サーバー(Sendmail または PostFix)、Usenet グループ・サーバー(INN)、プロキシ・サーバー(IPmasqadm)、ファイアウォール(IP-Chains)、仮想私設ネットワーク(OpenSSH)、ウェブ用キャッシュ・サーバー(Squid)、タイム・サーバー(NTP)、(LDAP)サーバー、コンテンツ管理(Midgard)サーバーなど、インターネット関連のすべての面をカバーしています。 このれらのソフトウェアは、すべて、Linux の標準ディストリビューションに含まれています。 クライアント・コンピュータには、そのオペレーティング・システムに関係なく、使用するアプリケーションに対応しているソフトウェア(メール・リーダ、ニュース・リーダ、ウェブ・ブラウザなど)をインストールすれば良いのです。 これらのツールは、すべて、RFC の標準に準拠しているため、クライアントの選択は自由です。

フリー・ソフトウェアの二番目に優勢な分野は、ファイル・サーバーとプリント・サーバーの分野です。 これらのサービスでは、さまざまなクライアントが使用できます。 Unix(ファイルの共有には、NFSKNFSCoda を、プリント・サービスには lpd を使用)。 Microsoft Windows (SaMBa を使用、ローカル・クライアントのプリンタも使用可能)。 Novell (Mars_nwe を使用)。 MacIntosh(NetAtalk を使用)。 これらのソフトウェアは、すべて、標準の Linux ディストリビューションに含まれていて、クライアント・レベルでの修正は一切不要です。

Linux のようなシステムがソリューションとなる分野は、ほかに、高速ネットワーク・インターフェイス(100 Mbit/s、GigabitMyrinet)を使用し複数のノードのクラスタに接続されたマルチプロセッサをサポートする計算ソリューション、HP NetRaidRem. をサポートし、ハードウェアにより制御された Raid レベル、0、1、3、5、10、50 および HotSpare ディスクを使用したデータ・セキュリティ・ソリューション、HylaFAX などのフリー・ソフトウェアを使用した集中ファックス・サーバー、Arkeia などの市販ソフトウェアによる、HP SureStore DAT または DLT ライブラリを使用したアーカイブ/バックアップ・サーバー、PostgreSQLMySQL などのフリー・ソフトウェアまたは市販の Oracle を使用したデータベース・サーバーなどがあります。

クライアント側では、現時点ではあまり重要視されていませんが、フリー・ソフトウェアまたは市販ソフトウェアをベースにした多数のソリューションが使用できます。 インターネット関連が主ですが、グラフィカル・ウェブ・ブラウザ(Netscape)またはテキスト・ベースのもの(lynx)、多数のグラフィカル・メール・リーダ(KmailXFMailなど)またはテキスト・ベースのもの(muttelm)など、多数のツールが揃っています。 また、今日のパーソナル・コンピュータに不可欠のツールとして、PDF リーダ(Acrobat Reader または xpdf)、画像操作ツール(ImageMagickGimpRealPlayer tools など)、ワード・プロセッサ(LyXLaTeXSGMLToolsWordperfect など)、市販オフィス・スイート(ApplixWareStarOffice)、サウンド管理ツール(WavToolseplaymidixmcd など)、CD 作成ツール(cdrecordBurnIT など、その補助ソフトウェア mkisofscdparanoia)、フリーまたは市販のさまざまなシステムのエミュレータ(WineExecutorWABIDOSEmu など)、あらゆる言語のコンパイラおよびインタープリタ(CC++PascalFortranBasicTcl/TkPerlPythonAdaEiffelLispSchemeProlog など)、その市販バージョン(PGI など)、グラフィカル環境(GnomeKDEMotif など)があります。 これらのツールの進歩により、2000 年代は、Linux とフリー・ソフトウェアがクライアント上で爆発的に使用されるようになるでしょう。

この文書は Linux ディストリビューションだけを使用した HP Brio BAx 上で、SGMLToolsJade 、および単一のソースから HTML、Txt、RTF、PostScript、PDF の各フォーマットを生成できる DocBook を使用して作成されていることを述べておきたいと思います。

2.2.2.5. サービスの考察

これが、長い間、フリー・ソフトウェアの普及を妨害してきたポイントです。 ただし、今日には当てはまりません。 HP を含め、サービス・プロバイダやハードウェア製造企業の多くは、今では、これらのソリューションの管理と、そのサポートを行っています。

これらのソリューションを専門に扱ういくつかのウェブ・サイトを通じて、他の情報ソースも豊富に利用できます。 専門別のメーリング・リスト、さまざまなユーザー・グループ、Linux の場合は、国際的なグループcomp.os.linux.*、フランス語圏の人々用の fr.comp.os.linux.* などがあります。

フリー・アプリケーションやオペレーティング・システムの使用についての学習と訓練の期間を終えた若いエンジニアや研究者が、どんどん増えています。 この人たちが社会に出て、これらのツールの普及に大きく貢献することになるでしょう。 最後に、大企業の多くはこの能力を内部的には無視してきました。 しかしながら、このような企業の従業員でも、家庭ではこのようなソフトウェアをインストールして使用していることが多く、よく使いこなしています。 この人々も、職場にフリー・ソフトウェアが配備されたときには、大いに貢献してくれる筈です。

2.2.3. フリー・ソフトウェアに対する誤解

フリー・ソフトウェアに関して一般的に受け入れられている考えで、フリー・ソフトウェアの擁護のために、それを排除するように努力しなければならないものがあります。

「サポートもトレーニングも提供されない」

前にも述べたように、サポート体制は現在構築されていく過程にあります。 たとえば、RedHat のような企業は、そのソリューションのサポートを行っています。 フランスの場合は、フリー・ソフトウェアのサポートを明言している、MedasysAtridAlcove を挙げることができます。 また、フランスの場合、トレーニング・コースの基礎である一般的なネットワークおよび Unix のトレーニングのほか、フリー・ソフトウェアのトレーニングが、HP FranceLearning TreeIUT de Velizy で行われています。 また、豊富に用意されている文書を使用して、独学することも可能であることを言っておかなければなりません(第 6 章を参照)。

「参考文献が存在しない」

完全なマニュアルが揃っています。 Linux Documentation Project によって FAQ(質疑応答集)および HOWTO が作成されていますし、300 以上もの Linux に関するフランス語の参考文献が用意されています。 確かにドキュメントの品質はさまざまですが、独学で Linux のディストリビューションとそのすべてのコンポーネントを理解できる大系を作りあげています。 私事で恐縮ですが、私の場合は、フリー・ソフトウェアを使用して自分の仕事を遂行するのに必要なものは、これらのドキュメントの中にすべてありました。 また、多数のウェブ・サイトや Usenet グループにも、有益なものが豊富に用意されています。 オンラインで利用可能な数え切れないほどのページ数のマニュアルも存在します。

O'ReillySSC の編集者によって、フリー・ソフトウェアの作者自信が記述した文献も提供されています。 これらの文献は、その分野のリファレンスとして扱われています。

「無料または無料に近い製品は玩具のようなものだ」

自由(言論の自由)と無料(ただ酒)の違いを理解しなければなりません。 Microsoft 環境のフリーウエアのほとんどは、実際に玩具のようなものが多く、品質も良くありません。 前のセクションでも触れましたが、これはフリー・ソフトウェアにはまったく当てはまりません。 フリー・ソフトウェアは本質的に信頼性が高いことを忘れないでください。

「Linux はインストールが難しい」

Linux はプロフェッショナルなオペレーティング・システムです。 つまり、インストールするには、それなりの能力が必要です。 これは、Unix や Windows NT などの他のプロフェッショナルなオペレーティング・システムでも同じです。 ただし、RedHat 7.0 や Mandrake 7.2 などのディストリビューションでは、これらよりもインストールが簡単になっています。 これらのディストリビューションでは、30 分もあれば完全にインストールすることができ、HP-UX の場合とほとんど同じですが、Windows NT Server よりはるかに短時間でインストールできます。

また、Windows NT の場合は、インストールの前に、Microsoft のハードウェア互換リストで互換性をチェックする必要がありますが、Linux の場合も Hardware HOWTO でチェックし、HP マシンの場合は、このページを参照することを強くお勧めします。

「フリー・ソフトウェアは重い仕事には向いていない」

この批判は必ずしも当を得ていませんし、次のバージョンの Linux のカーネルにはまったく当てはまりません。 次のバージョンの Linux にはジャーナライズド・ファイル・システムが採用され、真のアプリケーション・クラスタが可能になります。 また、Linux では、既に、マルチ・プロセッサによる複数のノードによる計算クラスタが実現されています。 Linux は、ポータル Voila(France Telecom)やエンジン Deja によって使用されていることを忘れないでください。 また、世界最大の ftp サーバー Walnut Creek CDROM サーバーとして使用され成功を収めています。

「エディタに問題が発生したらどこに文句を言えば良いのか」

ソフトウェア・ライセンスは作者の責任をすべて拒否していますから、問題が発生しても文句は言えません。 ただし、実際には、開発者は問題に対して前向きに対処し、できるだけ早くバグを修正しようとするのが普通です(たとえば、Pentium の F00F バグに対しする Linux カーネルのパッチは 3 日以内に公開されました)。 これに反して、市販製品の場合は、パッケージの内容が違っている場合を除いて、問題に対するユーザーへの対応はひどく悪いと言えるでしょう。

2.2.4. フリー・ソフトウェアについての実際の問題

フリー・ソフトウェアに問題がないかと言えば、まったくないとは言えません。 解決に向かって一歩踏み出したものもあれば、依然としてシステムに残っているものもありますし、解決に時間のかかるものもあります。

最初の問題は、フリー・ソフトウェアに固有なのですが、さまざまなツールやディストリビューションが存在することです。 ですから、たとえば、メール・サーバーを構築する場合、Sendmail、Exim、PostFix、Qmail、Smail の中から、使用するものを選択する必要があります。 また、Linux をインストールする場合は、RedHatSuSESlackwareMandrakeTurbo LinuxDebian のディストリビューションの中から選択する必要があります。 このような選択は、初めてフリー・ソフトウェアを使用しようとする人にとっては少々難しいでしょうが、経験の豊かな人にとっては、解決すべき問題と自己の経験に照らし、幅広い選択肢から選択できるのは良いことでしょう。 コード公開のルールが守られている限り(rpm および deb フォーマット)、コミュニティという視点からすればリスクはほとんどありません。

二番目の問題、これもフリー・ソフトウェアには付き物ですが、ソリューションを管理するには、Unix と インターネットについての知識と運用能力が必要なことです。 フリー・ソフトウェア・ソリューションの能力は、管理者の能力次第です。 これは、管理用のソリューションがどれだけグラフィカルになっても、本質的には変わりません。 ただ、一度習得してしまえば、バージョンが変わっても、そのたびに習得し直す必要はありません。 毎日使用するシステムも、一度習得しさえすれば、単純なものに見えてくるから不思議です。 インターネットの運用能力も、決してむだになることはありません。 情報をフランス語や他の言語に翻訳する作業ですら、技術英語への精通がどれだけプラスになるか分かりません。

三番目の問題は、フリー・ソフトウェア・ソリューションの実装に関する問題で、現在の流れを理解していない管理者をどのように説得するかということです。 このセクションの目的は、その目的を達成するために役立つ考察を多岐に渡って提供することです。 また、これらのソリューションが大企業によって採用されれば、多くの問題は一気に解決するでしょう。