Windowsプログラマを主な対象にして,Linux上でプログラミングを行う方法を段階的に解説します。第1回は,Linuxのライセンスである「オープンソース」の基礎について説明します。
ITproサイト内の本コラムを読み始めた皆さんの中には,「『オープンソース』という言葉を聞いたことがない」という人はほとんどいないと思います。「オープンソース」という言葉が誕生して今年でちょうど10年になりますが,この10年間でオープンソースの認知は飛躍的に高まりました。とはいうものの,主にWindows上でプログラムを開発している人にとっては,オープンソース・ソフトウエアに触れる機会はほとんどない,あるいはオープンソース・ソフトウエアに興味はあるけれどもよく分からない,という場合が決して少なくないでしょう。
この連載では,普段Windowsを使っていて,Linuxやオープンソース・ソフトウエア(Open Source Software=OSS)にはあまり触れたことがないという人を対象として,LinuxやOSSの使い方,それらを活用したプログラミングを基礎から解説していきます。Linuxの基本的な扱いに慣れ,Linux上で気軽にプログラミングを楽しめるようになるのが目標です。
オープンソースとは何か
皆さんは「オープンソースとは何か?」と尋ねられたら何と答えますか?
一言で答えるなら「ソフトウエアのソースコードが公開されていること」でしょう。しかし厳密には,それだけではオープンソースとみなされないのです。オープンソースの推進活動をしている団体「Open Source Initiative(OSI)」では,オープンソースの定義として,次の10項目(表1)を定めています。
表1●オープンソースの定義 | ||||||||||
|
この定義に矛盾しないライセンスを採用しているソフトウエアがオープンソース・ソフトウエアと言えるでしょう。OSIが認定しているオープンソース・ライセンスは,2008年4月現在で70以上もあります。代表的なオープンソース・ライセンスを表2に示します。
表2●代表的なオープンソース・ライセンスと採用ソフトウエア | ||||||||||
|
もっとも有名なオープンソース・ライセンスはGNU GPL(General Public License)でしょう。Linuxをはじめ,多数のソフトウエアがGNU GPL(以下,GPL)を採用しています。GPLが適用されたソフトウエアでは,そのソフトウエアに変更を加えて再配布する場合,すべての変更部分を含むソースコードも提供しなければなりません。これを,著作権(コピーライト)にちなんで「コピーレフト」といいます。業務でGPLのソフトウエアを利用する場合は,ちょっと注意が必要ですね。
フリーソフトウエアとオープンソース・ソフトウエアの違い
ところで,オープンソース・ソフトウエアは無償で利用することができますが,オープンソースという言葉が登場する以前から,同様の言葉として「フリーソフトウエア」という言葉が使われてきました。オープンソース・ソフトウエアとフリーソフトウエアは何が違うのでしょうか?
フリーソフトウエアは,UNIX互換のソフトウエアを実装するためのGNUプロジェクトを開始したRichard Stallman(リチャード・ストールマン)氏が1980年代に提唱した概念です。英語のfreeという言葉には「無料」という意味のほかに「自由」という意味があります。フリーソフトウエアのフリーは自由を意味します。この場合の自由というのは,ソフトウエアの利用,改変,再配布が自由にできるということです(もっとも,大抵のフリーソフトウエアは無料で利用できますが)。
しかしながら,フリーという言葉は無料を連想させます。利益を生み出すことを本質とするビジネスの世界では,無料という考えはあまり馴染みません。また,当時のフリーソフトウエア運動は,商用ソフトウエアをはじめとするフリーでないソフトウエアに対して攻撃的な面があったこともあり,賛同する企業は多くはありませんでした。
そこで,企業にとってあまりイメージのよくなかった「フリーソフトウエア」という言葉に代わり,自由の思想を抑えて「ソースコードを公開するメリット」を中心に据えたのが,オープンソースという概念です。Eric Raymond(エリック・レイモンド)氏らによって1998年に提唱され,Linuxの台頭と合わせてまたたく間に広まっていきました。