オープンソースはどのように世界を変えたのか

読了 8分

前回の記事 ハッカーとは何か では、1960 年代に MIT のサークルのハッカーたちが言っていた言葉を紹介しました。「Information wants to be free」、情報は自由であることを望んでいる、という言葉です。自分が解き明かした原理やコードを一人で抱え込まず、みんなが読んで修正できるように解き放つという考え方です。

その考えが単なるスローガンで終わっていたら、いまこの記事を書く理由はありません。その精神はオープンソースという名前で育っていき、今日みなさんが使うほとんどすべてのサービスは、その上で動いています。スマートフォン、ウェブサイト、検索、メッセンジャーのなかで、オープンソースを一行も使っていないものを探すほうが難しいくらいです。今回の記事では、オープンソースとは何か、そしてどのような過程を経て現代 IT の土台になったのかを、教養レベルで整理していきます。

オープンソースとは何か #

オープンソースとは、ソースコードを公開したソフトウェアのことを指します。ここでいうソースコードとは、人が読み書きできる形のプログラムの設計図です。

ほとんどの商用ソフトウェアは、この設計図を公開しません。私たちは完成した成果物だけを受け取って使い、中で何が起きているのかは知ることができません。逆にオープンソースは、設計図をまるごと開いておきます。誰でもコードをのぞき込み、気に入らなければ修正し、修正したものをまた別の人に再配布できます。

読み、修正し、再配布できるというこの三つが、オープンソースの核心です。単に無料という意味ではありません。車にたとえると、無料のソフトウェアはガソリンをタダで入れてくれる車であり、オープンソースはボンネットを開けてエンジンを自分で分解し、部品を交換できるように許された車です。

フリーソフトウェア運動から始まった #

オープンソースのルーツは、リチャード・ストールマン(Richard Stallman)というプログラマーにあります。1980 年代初頭、ソフトウェア会社はソースコードを閉ざし始めました。ストールマンはこの流れに反発しました。ユーザーがコードを読み、修正する自由を奪われるのは不当だと見たのです。

そこで 1983 年、ストールマンは GNU プロジェクトを始めます。誰もが自由に使い、修正できるオペレーティングシステムを、最初から作り上げるという計画でした。1985 年には、フリーソフトウェア財団(Free Software Foundation)を設立します。

彼が生み出したもう一つの重要な発明が、ライセンスでした。1989 年にまとめた GPL(GNU General Public License)という利用規約は、コピーレフト(copyleft)という独特な概念を込めていました。著作権(copyright)をひっくり返した言葉遊びのように聞こえますが、その発想は真剣です。「このコードは自由に使ってよい。ただし、このコードで作ったものも同じように自由に解き放たなければならない」。自由を強制する自由でした。

Linux が欠けたピースを埋める #

GNU プロジェクトはオペレーティングシステムのほとんどすべての部品を作りましたが、いちばん奥でハードウェアを直接扱う核心の部品であるカーネル(kernel)が、最後まで完成しないままでした。

その空白を埋めた人が、フィンランドの大学生リーナス・トーバルズ(Linus Torvalds)です。1991 年、彼は自分が作ったオペレーティングシステムのカーネルをインターネットに公開します。これが Linux です。GNU の部品たちと Linux カーネルが合わさって、ようやく完全に自由なオペレーティングシステムが完成します。

興味深いことに、最初この運動は「フリーソフトウェア」という名前で呼ばれていました。ところが free という英単語が「自由」と「無料」を同時に意味するため、企業がお金の話だと誤解することが頻繁にありました。そこで 1998 年 2 月、クリスティン・ピーターソン(Christine Peterson)らが集まった場で「オープンソース(open source)」という新しい名前が提案され、この言葉が急速に定着します。価格ではなく、コードが開かれているという点を前面に押し出した名前でした。

GPL と MIT、二つの流れの約束 #

オープンソースだからといって、すべてが同じルールに従うわけではありません。ライセンスによって許される範囲が異なります。大きく二つの流れに分けて、軽く見ていきます。

一方は、先ほど見た GPL 系です。コピーレフトなので、このコードを持ってきて修正すると、修正した成果物も同じように公開しなければなりません。自由を次の人へ義務として受け継がせる方式です。

もう一方は、MIT やアパッチ(Apache)のような許容型ライセンスです。こちらははるかにゆるやかです。持ってきて修正したあと、それを公開せずに商用製品として売っても構いません。出典さえ明らかにすればよいのです。企業の立場からすると負担が少ないため、最近は多くのプロジェクトがこちらを選んでいます。

どちらが正しいというよりは、目的が違います。GPL は自由が広がることを重視し、MIT 系はできるだけ広く使われることを重視します。

世界はオープンソースの上で動いている #

この流れが生み出した結果は、一文で整理できます。今日、ほとんどすべてのサービスはオープンソースの上で動いています。

みなさんの手にある Android スマートフォンの土台は Linux カーネルです。私たちがアクセスするウェブサイトの多くは、オープンソースのウェブサーバーの上で動いています。プログラミングを学ぶときに最初に出会う Python と JavaScript は、巨大なオープンソースの生態系そのものです。Google の Chrome ブラウザでさえ、Chromium というオープンソースを土台に作られています。

それどころか、開発者がコードを管理するツールそのものがオープンソースです。リーナス・トーバルズは Linux を作っただけではなく、コードの変更履歴を追跡する Git も作りました。世界中の開発者がコードをアップロードして協力し合う GitHub は、まさにこの Git の上に築かれたサービスです。

少し大げさに言えば、オープンソースが止まれば、インターネットのかなりの部分が止まります。目に見えない土台であるだけなのです。

無料ではなく、ビジネス #

オープンソースがすべてボランティアだけで回っていると考えるなら、それは誤解です。大きな企業が莫大な人員とお金をかけてオープンソースに貢献し、その上で事業を行っています。

代表的な会社が Red Hat です。Linux は誰でも無料で使えるのに、Red Hat はその Linux を企業が安心して使えるように安定化し、セキュリティアップデートを保証し、問題が起きれば責任を持って支援するというサービスを売って会社を大きくしました。最終的には IBM に巨額で買収されるまでに至ります。

ソフトウェアそのものは公開していても、それを安定して運用し支援する仕事には、明確な価値があります。Google や Microsoft のような巨大企業も、自社の人員を投入してオープンソースプロジェクトを助けています。自分たちのサービスがその上で動いているため、土台を強くすることがそのまま自分の利益になるからです。

光があれば影もある #

オープンソースには長所ばかりがあるわけではありません。いちばん大きな悩みは保守です。

誰でも使えるという言葉は、裏を返せば、誰も責任を取らないこともありうるという言葉でもあります。世界中が依存する核心的なプロジェクトを、実のところ少数のボランティアが無報酬で支えているケースが少なくありません。

2014 年に起きたハートブリード(Heartbleed)事件は、この問題をあらわに見せつけました。当時、世界中のウェブサーバーの約 3 分の 2 が、OpenSSL という暗号化ソフトウェアを使っていました。ところが、この巨大な土台を管理する人員は、実質的にパートタイムの開発者が二、三人にすぎず、受け取る寄付金は年に数千ドル程度でした。小さなコードのミス一つが、世界中の通信の秘密を脅かす穴へと広がってしまったのです。

この事件のあと、業界は衝撃を受けました。Linux 財団が乗り出して核心インフラに資金を出す集まりを作り、大きな企業がお金を出し合って OpenSSL の開発者を正規で雇用させました。私たちが当然だと思っている土台が、実は誰かの善意でかろうじて支えられている場合があるという教訓でした。

まとめ #

今回の記事では、オープンソースとは何か、そして 1983 年の GNU プロジェクトから 1991 年の Linux を経て、どのように現代 IT 全体の土台になったのかを見てきました。ライセンスの二つの流れ、企業との関係、そして少数が土台を支える影の部分まで、あわせて取り上げました。

前回の記事のハッカーたちが叫んだ「情報は自由であることを望んでいる」という言葉は、漠然とした理想ではありませんでした。その考えはコードになり、オペレーティングシステムになり、私たちが毎日使うサービスの土台になりました。一人の信念が、数十年をかけて世界の動き方を変えたわけです。

次回の記事では、その土台の上でコードを一緒に書いて管理するツール、Git と GitHub が、正確にどのように協業を変えたのかを、さらに詳しく扱っていきます。

X