見出し画像

Linuxを中心としたオープンソースの開発モデル:社会を支え、未来を作る

本記事は、Linuxを中心としたオープンソースの開発モデルについて概観する記事です。


オープンソースとは

オープンソースとは、一般的には、改変や再配布が可能なように自由に利用できるようにしたソースコードやソフトウェアのことです。それを利用する個人や団体の努力や利益を遮ることがない精神に基づき、GPLライセンス、MITライセンス、Apacheライセンス等のオープンソース・ライセンスの下で開発、リリースされるプロダクト(ハードウェアも含む)のことを指したり、そのような開発方法のモデルを指すこともあります。

オープンソース促進を目的とした世界的な団体 Open Source Iitiative は、「オープンソース」と名乗るための要件として、"The Open Source Definition"(オープンソースの定義)を掲げていますが、この用語はソフトウェア分野にとどまらず、その他のオープンコンテンツやオープンコラボレーションの形態にまで拡大しています。


社会を支えるオープンソース

オープンソースはあらゆるところで使われています。今や世界の大企業のシステムの中で、オープンソースが使われていないシステムというのを想像することはまず不可能なぐらい、我々のIT社会の根幹となっています。我々が普段接する FacebookやInstagram、Twitter、Google はもちろんそうです。Android のOSもそうです。TVは一昔前から組み込みでLinuxが搭載されており、オープンソースで家電が動いていることも当たり前です。さらには、国家の安全保障のシステムにも使われていたりもします。


オープンソースとして公開する企業・組織の拡大

使われるだけでなく、オープンソースとしてソフトウェアを公開する企業・組織も拡大してきました。2016年、アメリカ政府は、新しくカスタム開発されたコードの少なくとも20%をオープンソース化すると約束しました。2019年には、NSA(米国家安全保障局)が、オープンソースのリバースエンジニアリングツールであるGhidraを公開しています。


日本では、国土地理院がソースコードを公開してきており、2020年5月に、経済産業省が法人の住所や電話番号の形式の統一を行うソフトウエアの提供を開始し、MITライセンスにてソースコードも公開しています。

企業の例で意外なところでは、Goldman Sachsがデータモデリングのプログラムを公開しています。


また、石油メジャーのExxonMobilは、.NET オブジェクトを石油業界標準のXMLデータフォーマットに変換する開発者向けツールをオープンソースとして提供しています。


Walmartは、イノベーション推進組織である Walmart Lab にて、多くのオープンソースプロジェクトを立ち上げています。


オープンソースの起源

オープンソースの起源は、1970年代のMIT(マサチューセッツ工科大学)のAI Lab(人工知能研究室)にさかのぼります。1971年ハーバード大学の学部生だったリチャード・ストールマンは、MITのAI Labでプログラマーとして働き始めました。その後、MITの大学院に入り、プログラマーとしての活動を続けました。当時、AI Lab にはプリンタがあり、それは定期的に紙詰まりを起こしていました。ストールマンはプリンタのソースコードに変更を加え、紙詰まりをおこしたときに、「Go to the printer room and fix the problem (プリンターの部屋へ行って問題を解決するように)」というエラーメッセージがAI Labの全員に送信されるようにしました。AI Labがのちにプリンターを新しいものに置き換えましたが、ストールマンはそのソースコードにアクセスできないことに気づきます。

彼は別の研究室がソースコードのコピーを持っていることを知り、ソースコードの共有を要求しますが、それを断られ、プリンターの効果的なメンテナンスができなくなります。結果、彼はソースコードを共有することがいかに大事か、またソースを開示しないプロプライエタリなシステムがいかに危険かという考えを持つにいたります。彼は最終的に仕事を辞めて、AT&T社のベル研究所で開発されたUNIXが製品化され、ライセンスビジネスが始まっていったことに反発して、1983年にGNUプロジェクトと呼ばれる、UNIX互換OSおよびそのツール群を開発するイニシアチブを始めます。ストールマンは、ソフトウェアユーザーの本質的な自由を企図したフリーソフトウェア運動の先頭に立ち、その思想を広めました。


しかし、このような自由なソースコードの共有スタイルが直ちにソフトウェア開発やビジネスの基盤となったわけではありません。メインストリームにはソースコードを共有しない、プロプライエタリなソフトウェアがありました。パーソナルコンピューターの開発と普及に伴い、1980年代から1990年代を通して、ハードウェアビジネスと同様の枠組みをもって展開するソフトウェアビジネスが、そのビジネスとしてのわかりやすさから拡大。対して、ソースコードを共有するソフトウェアは、多数派ではない有志の開発者によって開発され、保守されるものとして継続していきました。


Linux の登場とオープンソースという言葉の誕生

そのような中、GNUプロジェクトで作られたシステムツールやライブラリを活かしつつ、デバイスドライバ、デーモン、カーネル群を、当時ヘルシンキ大学の学生だったリーナス・トーバルズが開発して、オープンソースのOSであるLinux が1991年にリリースされます。それは既存のソフトウェアビジネスに対する革命の狼煙でした。当初は、WindowsやMacOSに代わるものを探している趣味での利用が中心でした。しかし、徐々に大企業がLinux、そしてその開発モデルの持つポテンシャルと柔軟性を理解し、ニーズに合わせてソフトウェアをカスタマイズしていったり、また開発に参加していくことで、Linuxはその勢いを増していきました。Linuxが成長し普及するのとあわせて、プログラミング言語のPerl、Python、PHP、Ruby、データベース管理システムのMySQL、PostgreSQL、WebサーバのApache等、他のソフトウェアプロジェクトも人気を集めていきました。そして、1998年、Linux の躍進に倣い、WebブラウザのNetscape がソースコードを公開するのにあわせて、フリーソフトウェア運動の戦略会議でオープンソースという用語が提案されました。その後、ティム・オライリーによって開催されたフリーウェアサミットでオープンソースという言葉が正式に発表され、エリック・レイモンドらによって、OSI(Open Source Initiative)が設立されることになります。


オープンソースの開発モデル

オープンソース・ソフトウェアは、地球規模でコーディングと助け合いが進行する共同作業の世界です。

オープンソースソフトウェアの多くは様々なエンジニアによって共同で開発されています。無給のボランティアから競合するテック企業の従業員まで、何千人ものエンジニアによって作成され、メンテナンスされています。個人であってもバグを発見したり、改善の機会を識別したりすると、コードの変更を提案することができ、それによって地球上で最も大きなソフトウェアプロジェクトの貢献者になることもできます。

このような開発モデルも、Linuxのコミュニティによって生み出されました。Linuxの開発は1991年から始まったわけですが、その開発モデルはエリック・レイモンドが1997年に「Cathedral and Bazzar(カセドラルとバザール)」という書籍が発表されたことで注目されます。従来OSのような複雑なソフトウェアは、伽藍(カセドラル)を建てるように中央集権的に開発されるものと認識されていました。それに対して、人々がルールや指揮系統が少ない方法でオープンに開発をし続けることが、活気ある市場(バザール)に似ていることからバザール型開発と呼ばれて、今のオープンソースにおける開発モデルの型となったのです。


オープンソースとコミュニティに支えられる現代のビジネス

気がついたら、OpenOfficeやFirefoxを使っていたという人もいるかもしれませんが、プログラミングにあまり親しくない人にとって、これらのオープンソースの台頭はひっそりと静かに進行したように思われるかもしれません。1990年代、個人用のPCでLinuxを実行している人というのは少数派でした。しかし、そこから十数年の年月が流れた2008年に、GoogleはLinuxカーネルをベースとしたモバイル汎用OSであるAndroidとその搭載デバイスをリリース。スマートフォン市場を揺るがしました。現在、Androidを使用しているアクティブなデバイスは25億台を超え、モバイルOSにおける70%以上のシェアを握っています。

現代におけるあらゆる製品やサービスはソフトウェアで動いています。例えば、現代のEV(電気自動車)に搭載されているソフトウェアのコードの桁数は、数十年前の企業の基幹システムよりも多くなっています。

そして、Android がそうであったように、企業が製品やプラットフォームを構築し、展開するには、オープンソースソフトウェアの存在が欠かせません。今や、上場している企業の90%が自社のシステムにオープンソースを利用しています。多くのWebサーバはLinuxであり、ほとんどの人がRuby、Python 等のオープンソースのプログラミング言語でプログラムを組んでいます。クラウドシステムにも様々なオープンソースのライブラリが使用されています。企業が活用する先端技術群、AIやデータサイエンス、IoT、ブロックチェーンでもオープンソースが活用されています。同時にHadoop、OpenStack、Spark、Docker 等主要なソフトウェアは、みなオープンソースです。更にはオープンソースの5Gネットワーク機器も開発されており、次世代のイノベーションにも貢献しています。

そう。意識しているしていないに関わらず、現代のビジネスは広大なオープンソースコミュニティの不断の努力に支えられているのです。


OSS開発を加速させた GitHub

オープンソースの役割は重要なものになりました。日々増加するその開発をいかに効率的に、効果的にスケールさせていくか。開発者の間では、Linux や主要なOSSに代表される巨大なプロジェクトでの、共同作業を助けるリポジトリの重要性は認識されており、1999年に登場したSourceForge.net を皮切りに様々なオンラインレポジトリの試みが存在していました。そして2008年、画期的なプラットフォームが誕生します。GitHubです。

GitHubは、オープンソースソフトウェア開発で広く用いられている巨大なソースコードのレポジトリであり、標準化されたインタフェースを持つプロジェクトプラットフォームです。GitHub上でソースコードを格納、管理することで、数多のソフトウエア開発者と協働してコードをレビューしたり、プロジェクトを管理しつつ開発を行うことができます。また開発者は、GitHub上にある多様なオープンソースソフトウェアのプロジェクトに貢献することができます。

GitHub は、様々なビジネス、経済のトレンドも支えました。Webサービスを迅速に開発するのを助け、スタートアップにおけるWebアプリ構築の標準ともなったRuby on Rails は、GitHub がスタートしたベータ版のときに早くも参加し、プロジェクトを運営し始めます。現代の貨幣経済のあり方を大きく変えるきっかけとなったビットコインは、2010年にGitHubへアップロードされています。


オンラインゲームやVRの発展に多大に貢献している、Unreal Engine は、バージョン4からオープンソースとなり、2015年からGitHub上で公開されました。Deep Learning の機械学習ライブラリでもある Tensor Flowは、GitHub上で最も利用され、開発されているオープンソースソフトウェアの一つです。


GitHubにより、オープンソースの開発は爆発的に加速しています。2018~19年の1年間で、このプラットフォームの利用者は44%も増加しています。特に、アジアやアフリカの地域から参加するプログラマーの数が増えています。今日、GitHubには約1億4千万件のプロジェクトがあり、世界のオープンソースソフトウェアプロジェクトの大部分をホストしています。


企業のオープンソースへの貢献

2014年のMicrosoft の .NET のオープンソース化に続いて、2018年、Microsoft がGitHubを75億ドルで買収します。


Microsoftはプロプライエタリなソフトウェアビジネスを過去のものと認めており、テック企業がオープンソースコミュニティの独立性を守り、また貢献すべきことを確認しました。今、企業からのオープンソースへの貢献も大きなものとなっています。Googleは、2018年に2万8000以上のプロジェクトに貢献していますが、何もGoogleに限ったことではありません。例えば、社内に数千人の開発者がいても、現在、GitHub上でアクティブに参加している4000万人の開発者のスケールには到底及びません。オープンソースコミュニティにただ依存するだけでなく、積極的に協力し、連携していくことが、ビジネスにおける新たなスタンダードになりつつあります。


オープンソースのマネタイゼーション

このように、企業とオープンソースコミュニティとの連携も増え、企業からの支援も積極的に行われるようになりましたが、まだ難しい問題が残っています。マネタイゼーションです。コミュニティとともに開発され、無償で用いることができるOSSをどう商業化していくべきかというテーマは、長く議論され、様々な取り組みによって試行錯誤されてきました。

例えば、有償のサポートビジネスです。1993年に設立されたRed Hatは、OSであるRed Hat Enterprise Linuxのサポートサービスを販売するというビジネスを展開しました。誰でも無料でダウンロードできますが、技術サポートやより高いセキュリティを求める場合は、サブスクリプションを購入する必要があります。このビジネスモデルは成功し、2019年に、IBMがRed Hatを340億ドルで買収します。


他の試みもあります。ドキュメント指向データベースである MongoDB やアプリケーションやサービスの統合プラットフォームである MuleSoft は、無償版とともに、有償であるビジネス版を提供するという、プロプライエタリなソフトウェアビジネスとのハイブリッドなビジネスを展開しています。(2018年、SalesforceがMuleSoftを65億ドルで買収しています。)


とはいえ、そのような成功例はオープンソース開発の世界的な規模に比べたら稀有な存在です。企業ではそのような手段があっても、多くの個人の開発者たちに貢献の対価を提供できるようなビジネスモデルはまだ十分に見つかっていません。

GitHubは、2020年、オープンソースソフトウェアの開発に携わる開発者に経済的な支援を行えるサービス「GitHub Sponsors」をリリースし、このテーマに取り組んでいます。


社会課題を解決し、未来を作る

ここまで見てきたように、オープンソースの存在は、我々のビジネス、経済を支え、また極めて重要なエコシステムを構成しているともいえます。そして、オープンソースやその開発モデルの活用により、広く力をあわせて社会課題を解決しようという試みも活発化しつつあります。

科学技術振興機構と大阪大学は癌ゲノムデータを用いた細胞シミュレーション解析ツールを構築し、オープンソースとして公開。創薬に向けたデータ解析に役立つことを期待しています。今回のCOVID-19 パンデミックにおいては、厚労省がオープンソースソフトウェアをもとに、新型コロナウイルス接触確認アプリの開発を進めました。世界的医療機器メーカーのメドトロニックは、人工呼吸器のハードウェアの設計図、組み込みソフトウェアのソースコード、試験方法等も含めて公開を行いました。COVID-19関連では、東京都もソースコードの公開をしています。非営利団体 Code for Japanに所属するエンジニアやデザイナーが中心となり、オープンソースで開発された東京都の対策サイトのソースコードがGitHubで公開され、全国の地方自治体のサイトに派生しました。

オープンソースとは、単純にソフトウェアのソースコードを共有することをこえて、また、製品やサービスを効率的・効果的に開発するということをこえて、ビジネスを成功させるということもこえて、そこで得た様々な知識や成果を社会で共有し、人々の知恵をアップデートして、また新たな解決すべき問題に立ち向かうための共通の基盤でもあります。興味深い動きとして、UNICEF(国際連合児童基金)の投資ファンドである UNICEF Ventures は、スタートアップへの投資条件にプロダクトをオープンソース化することをあげています。これもソリューションの普及を促進し、社会課題を解決していく公共財を構築していこうという流れの一つです。

これまで、社会は技術の発展により様々な問題を解決してきましたが、その一方で解けない、内在する問題に多く直面し始めています。世界は今や非常に複雑怪奇な自らのあり様と対峙しています。COVID-19に代表される新型感染症環境や人口、食料・水、格差と分断、AIと倫理、それらによってもたらされる問題。これらは極めて入り組んだ複雑さを有し、その解決には今までにないアプローチが求められています。この難問に対し、社会は多様な創造性と迅速な対応力をもったモデルで立ち向かう必要があります。オープンソースの開発モデルは、まさに我々が困難な課題を克服し、未来を作っていくための鍵となりえるでしょう。


おまけ

以上、Linuxを中心としたオープンソースの開発モデルについて、その歴史も踏まえて概観しました。

同様の記事として、ここ十数年に渡るデータベースの進化を概観する記事も書いています。もしご興味がございましたら、こちらもご覧ください。


この記事が参加している募集

この記事が気に入ったらサポートをしてみませんか?