『IT初心者向け解説 第4回:オープンソース編』
■みんな大好き、オープンソース!
こんにちは、ロニーです。
勝手にアウトプット第4回、今回は「オープンソース」についてです!
いや~、心躍りますね! !
大好きです、オープンソース。
え、タダで使えるからだろ、ですって?
ま、まさか!そんな理由だけじゃありません!
オープンソースの思想は素晴らしいものなのです。
ほんとですよ!
サーバの設計・構築業務や、開発周りではよく出てくるこの「オープンソース」という言葉。
オープンソースソフトウェアを省略してOSSと書かれることも多いです。
難しい概念ではないので、ここでオープンソースがどういったものか大枠を理解しておきましょう!
■オープンソースとは何か
オープンソースはOpen Sourceと書き、直訳すれば「公開されているソースコード」となります。
ソースコードとは、あらゆるソフトウェアの源となっている、プログラムの文のことを指します。
では公開されていて自由に使えるソフトがオープンソースなのかな、と思うと、実はそうではありません。
自由に使えるといっても、一定の制限や使用条件が付いているものがあります。
「オープン」であっても、完全に自由ではない事には注意が必要です。
また、無料で使えるプログラムのことが取り上げられることが多いですが、実際には無料もあれば有料もあります。
じゃあオープンソースであることの条件、定義ってなんでしょう?
はい、オープンソースの定義をあげてみましょう。
全部で10項目あり、正式にオープンソースと名乗るためにはこれらの要件を満たしていなければなりません。
ここでは分かりやすくするために一部説明を簡略化しています。
1.再頒布の自由
オープンソースを利用して新たに作ったソフトウェアを販売・無料頒布することを、制限したり印税等の報酬を要求してはならない
2.ソースコード
オープンソースのプログラムはソースコードを含んでいなければならない
3.派生ソフトウェア
元のソフトウェアと同じライセンスの下で頒布することを許可すること
4.作者のソースコードの完全性
ソフトウェアの作者が明確化できること
5.個人やグループに対する差別の禁止
多種多様な人々やグループに平等にオープンソースに貢献する資格が与えられている必要がある
6.利用する分野に対する差別の禁止
どんな分野に使っても構わないこと。営利企業・遺伝子検査・軍事・原発開発等への利用を許さない、というような制限は禁止する
7.ライセンスの分配
プログラムに付随する権利はみんなに等しく認められなければいけず、また追加的ライセンスの同意を求めてはいけない
8.特定製品でのみ有効なライセンスの禁止
元のソフトウェア頒布物に与えられていた権利と同等の権利を有することを保証すること
9.他のソフトウェアを制限するライセンスの禁止
他のソフトウェアに制限を設けてはいけない
10.ライセンスは技術中立的でなければならない
特定の技術や様式に強く依存するような規定は無効
これらをまとめると、
・自由であること、
・平等であること、
・元のソースコードを守ること、
・オープンソースの仕組みを存続させること
という意味に集約できそうです。
これらの条件を満たしているソフトウェアが、オープンソースソフトウェア、OSSと呼ばれます。
■「フリーソフト」と「オープンソース」の違い
「窓の社」などで無償で公開されていて取得できるソフトって色々ありますよね?
こういったソフトは「フリーソフトウェア」や「フリーウェア」、といった呼び方をされます。
オープンソースとどう違うの?という疑問がわいてきそうですが、
その大きな違いは、著作権者の権利の扱いです。
フリーソフトはあくまで製作者が著作権を持っているため、利用条件は製作者が自由に決めることができます。
一方、オープンソースの場合は、手に入れたソースコードを複製した人、修正した人などが利用条件を勝手に決めることはできません。
○オープンソースのライセンス
オープンソースには、オープンソースの条件を満たすライセンスが存在します。
代表的なものには、
New BSD License、
MITライセンス、
Apacheライセンス version2.0、
Mozila Public License、
GNU General Public License(GLP) version2.0
などがあります。
制限・条件は緩いものから厳しいものまでまちまちですが、これらオープンソースのライセンスを有しているソフトウェアは、その条件内において再配布や編集が許されるわけです。
■オープンソースが生まれた経緯
オープンソースソフトウェアで有名なものは、Linuxです。
というよりも、Linuxの発展を通じて、オープンソースが確立していったと言えます。
オープンソースという言葉が生まれる前、UNIXコミュニティでは無償で公開し、エンジニアが自由に開発し、共同で編集していくのは暗黙の了解でした。
しかしUNIXが有償化を始めたことから、それを快く思っていなかったリチャード・M・ストールマンが、UNIX互換OSを開発し、自由にソースコードを利用できるようにしました。
これがGNUプロジェクトです。
GNUとは、「GNU is Not Unix」の略で、「GNUはUNIXじゃない」という再帰的な形の名称が由来になっています
リチャード・M・ストールマンはemacsエディタやgcc(GNU Compiler Collection)などを開発し、これによって各種ソフトウェア開発が発展していきます。
Linuxの生みの親、リーナス・トーバルズはこのgccを利用して開発していたことから、GNUと同じく、ソースコードを自由に利用できる条件を設定し、Linuxのソースコードをネットに公開しました。
UNIX及びLinuxがオープンソースによる相互作用で迅速に成長していき、同様にApache、PHP、Perlなど、同じ開発形態をとっていたソフトウェアが急成長、注目されます。
これを受けて、エリック・S・レイモンドという人らがこの開発手法をオープンソースと名付けました。
後にエリック・S・レイモンドは、Debianプロジェクトを指揮していたブルース・ペレンスに依頼してオープンソースの定義「OSD(The Open Source Definition)」を作ってもらい、共同でオープンソース認証マークを管理する非営利団体OSI(Open Source Initiative)を設立しました。
これ以降、それまではフリーソフトウェアと呼ばれていた手法は明確に定義され、オープンソースと呼ばれるようになりました。
■代表的なオープンソースソフトウェア
Linux以外で有名なのは、ミドルウェアとしてはApache HTTPDやApache Tomcat。
データベースとしてはMySQL、PostgreSQL、MariaDBの有名どころがみんな該当し、NoSQLだとMongoDBもオープンソースです。
プログラミング言語としては、Java、PerlやPython、PHP、そしてまつもとゆきひろ氏が開発したRubyが有名です。
WebブラウザのFirefoxや、Google Chromeの元であるChromium。
アプリケーションでは、Webサイトを作れるWordPress、画像編集ソフトのGIMP、仮想環境を用意できるVirtualBoxなどがよく使われているものではないでしょうか。
今やなくてはならないオープンソース。
多くが無料で手に入れることが出来、自由にソースコードをいじれるので、もちろん我々も使用できます。
上記の代表的なオープンソースソフトウェアだけで、仮想環境立ててLAMP環境を作り、WebサイトからWebアプリまで一式全て用意・開発できてしまうって驚きですよね。
■オープンソースのまとめ!!
オープンソースは有志のボランティアで成り立っているものもあれば、
企業が戦略的に行っている部分もあります。
個人のスキルアップ、
コミュニティでの楽しんでのチーム開発、
自分の経験の社会還元、
名誉を得ること、
社会的な知名度を上げること。
オープンソースに携わる人々の目的は様々ですが、みんなで協力して、善意をもとにITを発展させていく、この構造や思想はとても尊いものだと思っています。
無料で使える物多いですし!
徳が高い!
はい、やや長くなりましたが、今回はこれにて。
また次回も一緒にITを学んでいきましょう!