目次


オープンソースで行こう!: 第1回 当然知ってるよね? オープンソースが意味するもの

Comments

1998年、エリック・レイモンド氏らによって提唱された「オープンソース」は、PCとインターネットの普及という波に乗り、業界の地図を塗りかえました。オープンソースは技術的に成熟し、日々実績を重ねつつあります。その一方で、どうやってそれを使うべきか、あるいはコミュニティーとどうつきあっていくべきかと戸惑うユーザー、企業も数多くいます。

本連載では、特にコンピュータを生業とするエンジニアやビジネスマンにとって、オープンソースとどう関係していくべきかを知る手引とするべく、オープンソースの歴史と現状についてまとめます。

今回は、あらためて「オープンソース」の意味について、歴史や最新動向などを見ながらまとめていきます。知らない人からは同じように見える「オープンソース」「フリーソフト」「フリーソフトウェア」の違いなども、今回の解説で理解できるでしょう。

なぜオープンソース?

「オープンソース」という言葉は、1998年2月3日にエリック・レイモンド(Eric S. Raymond)氏ら*が生み出したものです(図1)。ソフトウェアのソースコードを無償で公開し、誰でも自由に閲覧・改良および再配布できるようにすることを指しています(コラム1 ソースコードとは?)。

図1 オープンソースをめぐる歴史

では、レイモンド氏らが「オープンソース」という言葉を提唱した理由は何でしょうか? 実はレイモンド氏自ら、「オープンソースという言葉は、マーケティング用語として作り出された」と告白しています*。1998年といえば、Netscape CommunicationsがWebブラウザのソースコードを公開した年でもあります。レイモンド氏らは、Microsoftとの戦いに敗れ、ビジネス上苦境に立たされていたNetscapeの活動を支援するため、オープンソース活動を展開したというのです。

実際、ソースコードの公開は1月22日に発表され、2月3日に「オープンソース」という概念が発表されています。Netscapeのソースコード公開は、前年に発表されていたレイモンド氏の論文「伽藍(がらん)とバザール」*に着想を得たものでした。この論文はLinuxの成功を見て嘆息したレイモンド氏が、ソフトウェア開発においては、伽藍(仰々しい建物の中で賢者たちがものづくりをするスタイル)よりもバザール(市場のように誰もが自由にやり取りしながらものづくりをするスタイル)の方が有効であることを指摘したものです。

伽藍のイメージから、この論文がプロプライエタリ*なソフトウェアを批判するものだと想像するかもしれません。しかしどちらかというと、それはもともと「フリーソフトウェア」に向けて発せられた言葉でした。そう、オープンソース以前にLinuxやその周りの文化がそう呼ばれていた名前に対してです。「ハッカー*の復讐」という文書の中でレイモンド氏は、フリーソフトウェアがハッカーコミュニティーにひどい損害をもたらしていたとまで書いています。

フリーソフトウェアとは

「フリーソフトウェア」はリチャード・ストールマン(Richard M. Stallman)氏が提唱している言葉で、氏は「使用、学習、コピー、改変、再配布を自由に行えるソフトウェア」と定義しています。また、そのようなソフトウェアであることを保証するGPL(GNU General Public License)ライセンスを作成、公開しています*

GPLというライセンスが世に出たのは1989年ですが、ストールマン氏による活動は1970年代から行われていました*。1970年代といえば、まだソフトウェアが売り物にすらならなかった時代です。コンピュータメーカーは、主にハードウェア(メインフレームやミニコンといわれた大型で高価なコンピュータ)を製造・販売して売り上げの柱としていました。

しかし、技術の進歩や市場の需要によって、コンピュータは徐々に小型化、低価格化していきます。そのような流れの中で、最初はハードウェアのおまけでしかなかったソフトウェアが売り物と見なされる状況が出来上がっていったのでした。

以上の状況を背景に、それまでプログラマー仲間の間で自由に使うことのできたソフトウェアが使いにくくなっていったといいます。MIT(マサチューセッツ工科大学)の人工知能研究室に在籍し、メインフレームやUNIX文化に親しんでいたストールマン氏は、ビジネスマンがやってきて、自由なハッカー文化からソフトウェアを奪い去ろうとする状況に反発したといわれています。1984年に、OSからアプリケーションまで、あらゆるソフトウェアを自由に利用できるコンピューティング環境という理想を掲げてGNUプロジェクトを開始したのでした。

GNUとUNIX文化

GNUとは、「GNU is not UNIX」の略で、(商用の)UNIXではないけれど、それと同等か代替となる環境を意味するソフトウェア開発プロジェクトのことです。

UNIXは1970年代に米国の電話会社AT&T*の研究所で開発されたOSです。数人の研究者が半ばプライベートプロジェクトのように作っており、「ゲームで遊ぶために作った」と言われるほど自由な雰囲気の中で開発されていました。

UNIXは、電信電話事業を専業とするAT&Tで生まれたため、当初製品として発売されることはありませんでした。その代わりに「研究や教育用途に限る」という条件付きでソースコードが公開されていました。当時は「ソースコードの公開されたOS」は珍しく、またシンプルな設計コンセプトや充実した開発環境から、次第に人気を集めていきました。

UNIXには、プログラミング言語としてC言語が搭載されていました。C言語は、UNIXを開発するために作られた言語のため、ユーザーはそれを使ってUNIX自体の不具合を修正したり、機能を追加することができました。また、あるコマンドを別のコマンドと自由に組み合わせて利用できたので、草の根のユーザーによってシンプルなツールなどが多数開発されていきました。

このような追加機能やツールは、UNIXのオリジナル開発者にフィードバックされ、UNIX自体を強化していったのでした。開発者コミュニティーの雰囲気が、Linuxと似ていたことは想像にかたくありません。商用UNIXが登場する前に見られたオープンな開発体制は、Linux型開発の有効性を指摘した論文「伽藍とバザール」で説明されているバザールに似ています。UNIXはまさに、オープンソース開発のはしりと言えるでしょう。

1980年代から90年代にわたって、UNIXが並みいる競合OSを押しのけてコンピュータ業界を席巻したのは周知のとおりです。1990年代後半からはPCの低価格化、高性能化に裏付けられたWindowsの躍進で勢いが衰えましたが、UNIXを代替するLinuxの登場によって息を吹き返しつつあります。

オープンソースの原動力

では、UNIXやLinuxが躍進した理由はどこにあるのでしょうか? 技術的な背景や社会的な要因もあるでしょうが、1つにはユーザーが自由に開発、交流できる土壌があったという考え方が一般的になりつつあります。「伽藍とバザール」において指摘されたのもまさにその点でありました*し、米国の法学者ローレンス・レッシグ(Lawrense Lessig)教授が指摘するように、文化的・社会的発展を促進するためには、誰もが自由に利用できる共有地(コモンズ)が必要という考え方も多くの支持を集めつつあります。

2004年12月には、米国政府の産業政策に強い影響力を持つ競争力評議会が、「Innovate America」(通称パルミザーノリポート*)を発表しました。この中では、「米国が21世紀も引き続き成長と発展を遂げるためには、イノベーション*が最も重要なファクターである」と提言しています。具体的には、著作権や特許を強く保護することで産業を守るよりも、自由な競争によって産業を活性化させようという動きです。

2005年10月11日、日本においても「ソフトウェア特許はイノベーションを減退させやすい」という旨の中間報告が、経済産業省の研究会によって発表されました。業界を揺るがす問題として、今後の行方が注目されています。

オープンソースで行こう!

「何のためにオープンソースを作るのか?」という問いに、「ただ楽しいから」、あるいは「そこに山があるから」といった声もあります。確かに「作る」ことに純粋な楽しみはあるでしょうが、1人で楽しむだけでなく、ソースコードを通して学びが得られたり、共同作業することでイノベーションが起こることもあるでしょう。

ハードウェアの価格が下がりネットワークが普及したことによって、コンピュータを使ってできることの範囲が広がってきました。コンピュータのパワーを引き出すことで、今後はいままで以上にいろいろなことができるはずです。そういったときに、オープンソースはきっと役立つでしょう。

コラム1 ソースコードとは?

ソースコードとは、コンピュータの動作を記述したもので、ソフトウェアを作る上での基になります。大まかに表現すると、ソフトウェアとは「ソースコードを実行ファイルに変換したもの」といえます(図A)。例えば、皆さんが日常使っているWebブラウザやメールも、ソースコードから変換された実行ファイルによって動いています。

しかし、なぜオープンソースではソースコードを問題にするのでしょうか。結論から言うと、その理由は次の2つにあります。

  1. 人間にとって実行ファイルは読み書きしにくい
  2. 「ソースコードを実行ファイルに変換」するのは容易だが、逆に「実行ファイルをソースコードに戻す」ことは難しい

例えばWebブラウザのInternet Explorerに不具合があった場合、前述の(1)の理由から、手元にある実行ファイルを直接修正することは非常に困難です。しかし、もしInternet Explorerのソースコードが手元にあれば、ユーザーが自分で修正できる可能性があります。また、新しい機能の追加なども自由に行えます。プログラマーにとって、ソフトウェアのソースコードは非常に重要なものなのです。

図A ソースコードとは

コラム2 「フリーソフト」とは何か

本文では「フリーソフトウェア」と「オープンソースソフトウェア」を紹介しましたが、「フリーソフト」の方が耳慣れているかもしれません。前述の2つの概念は、いずれも米国で発祥したもので、日本においては直接の当事者という感覚を持ちにくい人も多いでしょう(特にフリーソフトウェアについて)。

一方で「フリーソフト」は、1990年代、日本のPC通信で生まれたものと言われています。当時のPC用OSでは商用/フリーを問わずアプリケーションが少ない状況で、ユーザーたちは積極的に情報やソフトウェアを共有していました。ただし、フリーソフトのコミュニティーではソースを公開していることは重視されず、あくまで商用ソフトウェアとの対比として「フリー」という言葉が使われています。

本連載では、GPLに従った自由なソフトウェアを「フリーソフトウェア」と表現し、PC通信などをルーツに持つ無料のソフトウェアを「フリーソフト」もしくは「無料のソフトウェア」と称します。

このページで出てきた専門用語

エリック・レイモンド氏ら

正確には、エリック・レイモンド氏、米国を中心にUNIX/オープンソース関連の出版事業を行っているティム・オライリー氏、Linux関連のシステム開発をしているVA Linux Systems Inc.(当時)の社長を務めるラリー・オーガスティン氏の3人によります。

告白している

「ハッカーの復讐」という文書の中で、当時のオープンソース活動について述べたものです。氏が意図的にメディアを操作していた様子が描かれています。
http://cruel.org/freeware/revenge_of/

伽藍とバザール

http://cruel.org/freeware/cathedral.htmlで和訳が読めます。

プロプライエタリ

英単語の「proprietary」から、所有や独占を意味。転じてオープンソース関連の文脈では、ソースコードが公開されていないソフトウェアや、オープンでない状態を指します。プロプラなどと略されることもあります。

ハッカー

「コンピュータを使いこなして普通ではなしとげられない成果を生み出す人」を指す言葉。「コンピュータを使って他者を攻撃する」といった悪い意味で使われることがありますが、本来は前者の意味で使われるべき言葉(とハッカーコミュニティーは主張しています)。

GPL(GNU General Public License)を作成、公開している

ストールマン氏が主宰するFSF(The Free Software Foundation)という団体によって管理が行われています。

ストールマン氏による活動は1970年代から行われていた

氏が開発したソフトウェアとして最も有名なのがEmacsです。EmacsはUNIX/LinuxやWindows上でも動作するエディタで、非常に高機能であることから多くのファンに利用されています。Emacsは、1974年ごろからMITの人工知能研究室にいた多くの大学生の手で開発・改良が行われてきましたが、原作者がEmacsのソースコードを企業に売ってしまうという事件が起こりました。こういったできごとをきっかけに、ストールマン氏はフリーソフトウェア活動を始めたといわれています。

AT&T

日本でいえばNTTに当たります。公共性の高い事業を扱っています。

「伽藍とバザール」において指摘されたのもまさにその点でありました

LinuxはOSの中核部分をなす「カーネル」というソフトウェアですが、GNUにおいてもカーネルを開発する「Hurd」というプロジェクトがありました。しかし、それは何年たっても実用レベルにならなかったのです。なかなか日の目を見ないHurdと飛躍的に成長するLinuxを見比べて、レイモンド氏は「伽藍とバザール」を書くに至りました。

パルミザーノリポート

報告書をまとめたIBMのCEO、サミュエル・パルミザーノ氏の名前からそう呼ばれています。

イノベーション

英単語の「innovation」から、改革、革新、新しいものという意味。


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


関連トピック


コメント

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

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Open source
ArticleID=249561
ArticleTitle=オープンソースで行こう!: 第1回 当然知ってるよね? オープンソースが意味するもの
publish-date=05112007