自由ソフトウェア
自由ソフトウェア(じゆうソフトウェア、free software、libre software)とは、ユーザーがどのような目的に対しても実行することを許可し、また、プログラムについて研究したり、変更したり、それを配布したりする自由も認めることを条件として配布されるコンピュータソフトウェアのことである。自由ソフトウェアには、プログラムの対価として支払った価格とは無関係に、ユーザーが(個人で、あるいは、コンピュータプログラマーと協力して)ソフトウェアのコピーを用いて、自身が望むことを(自由ソフトウェアを用いて利益を獲得することを含めて)する自由が存在するということである。コンピュータプログラムが自由であるとみなされる必要十分条件は、本質的には(開発者のみではなく)すべてのユーザーに第一にプログラムをコントロールする権利があるということであるとされる。したがって、ユーザーが所有する装置が「自由」であるためには、プログラムによって何が行われるのかを、ユーザーが本質的にはコントロールできなければならない。
コンピュータプログラムを研究したり変更したりする権利を保証するためには、ユーザーがプログラムのソースコード(これがプログラムの変更を行うために適した形式である)を読むことが可能である必要がある。このことは「ソースコードにアクセスできる」(access to source code)とか「パブリックに利用できる」(public availability)という言葉で言い表されることがよくあるが、フリーソフトウェア財団は、単純にこのような表現を使ってプログラムを考えることに反対している。その理由として、このような表現を使うと、プログラムのコピーを他者に与えなければならないという義務(義務とは権利とは正反対のものである)がユーザーにある、という印象を与える恐れがあることを挙げている。
free softwareという言葉は、自由ソフトウェアの概念が生まれる以前からゆるく使われていたが、リチャード・ストールマンは、彼がGNUプロジェクトを立ち上げたのと同じ1983年から、この言葉を上記で述べたような意味で使うことを促す自由ソフトウェア運動を開始した。GNUプロジェクトは、自由の精神を尊重したオペレーティングシステムを協力して製作するプロジェクトであり、コンピュータの黎明期にハッカーたちの間に存在していた、互いに協力する精神をよみがえらせることを目的としている。
フリーソフトウェア財団は自由ソフトウェアの定義を提示している。ソフトウェアライセンスについては自由ソフトウェアライセンスを参照。
定義に照らして自由ではない、すなわち改造や再配布などに制限が掛かっていたり、ソースコードが開示されていない、無償で利用できるソフトウェアとは異なる概念であり、この場合はフリーウェアもしくは無料ソフトと呼ぶことが望ましいとフリーソフトウェア財団はしている。
逆に定義に従ったソフトウェアであれば、一次的な配布が有償であっても自由ソフトウェアと呼ぶことができる。ただし、前述したように配布が自由であるため、ほとんどの自由ソフトウェアは無償で配布されている。
また、現状強い影響力を持つ定義として、フリーソフトウェア財団の定義の他に、DebianフリーソフトウェアガイドラインとそれをベースにしたOpen Source Initiativeのオープンソースの定義がある。
そもそも、英単語であるフリー (free) は、「自由」と「無料」、双方の意味をもっていて、たんに"free"といっただけでは区別が付かない。これに対し、Free Softwareの概念においては、「自由」と「無料」の違いが大きな意味を持つ。このため、英語圏では、自由のfreeと、無料のfreeを区別するため、無料を示すのに「free as in "free beer"(無料のビール)」、また、自由であることを示すのに「free as in "free speech"(言論の自由)」などという表現がよく使われる。
熟語として記述する際には、"free software"、"Free Software"と区別している。前者がよく言われる"無料のソフトウェア"であり、後者は固有名詞で、リチャード・ストールマンが自由なソフトウェアに対して名づけた"自由なソフトウェア"のことである。最近では本来英語の単語でないものの、「自由」を意味する単語としてラテン語の "libre" を使い "Software libre" のように表すこともある。
フリーウェアを参照のこと。
コンパイルした成果物だけでなく、ソースコードが入手可能であり、さらに、その改変と再配付も自由である必要がある。
フリーソフトウェア財団(FSF)の創始者リチャード・ストールマン(RMS)が、自由に利用し、改変し、再配布することができるという意味でFree Softwareという語を1980年代初頭に作った。この場合、単に無料であるソフトウェアは、"フリーウェア"と呼んで区別する。
ソフトウェアが自由であることを重視するリチャード・ストールマンの立場からは「無料」との混同は避けたいところである。そのため、彼は折に触れてこの区別を強調し、また「日本語にはせっかく2つの意味を区別する言葉があるのだから、Free Softwareではなく自由なソフトウェアと呼んで欲しい」と述べている。
自由ソフトウェアは、著作権を放棄した「パブリックドメインソフトウェア」とは異なる。一見矛盾しているように見えるかも知れないが、自由ソフトウェアは(自身が自由であるための手段として)著作権を明確に主張し、そのライセンスの文中で自由を規定するという方法を取っている。
このため、あるソフトウェアが、自由なソフトウェアである場合には、自由であることを、ライセンスで明確に示しており、確認することができる。ライセンスが、例えばGPL、LGPL、GFDL、BSDライセンス、X11ライセンスなどであれば、自由なソフトウェアである。
現在、GNU/Linuxとして知られる自由ソフトウェアのオペレーティングシステムのプロジェクト:GNUを始めるに当たって、作られるソフトウェアの自由を保証するために、自由ソフトウェアの概念を定義した。GNUは自由ソフトウェアのみで構成されるというわけである。
自由ソフトウェアとして認められるライセンスには、二通りある。
コピーレフトな自由ソフトウェアのライセンス
再配付/改変後のソフトウェアも自由ソフトウェアにする必要があるライセンス。
GPLやLGPLなど。
コピーレフトではない自由ソフトウェアのライセンス
再配付/改変後のソフトウェアを自由ソフトウェアにする必要のないライセンス。
BSDライセンスなど。
ソースコードが公開されなければ、自由なソフトウェアではない。ソフトウェアを自由に変更・配布することはソースコード無しには極めて困難だからである。
しかし、ソースコードが付属していても、ソースコードを改変したり配布したりする自由が制限されていれば自由なソフトウェアとは言えない。
自由なソフトウェアは、そのソフトウェアが仮に有料で取得されたとしても、それを無料でコピーすることを制限しない。また、同時に、自由なソフトウェアは、それを有料で販売することも制限していない。「自由」には有料で販売する自由、無料でコピーする自由が含まれている。したがって、「有料なので自由なソフトウェアではない」という判断は間違いである。例えばLinuxディストリビューションに有償のものも多いように、自由なソフトウェアを集めてそれらを有償で販売する製品形態は定着してきている。
自由なソフトウェアは、有用なものであれば大抵はそれを無料で配布しようとする者が現れる。勿論、無料で配布することは自由である。その意味では自由なソフトウェアには無料という意味でもフリーなものが多い。
自由なソフトウェアが、永続的に自由であるための概念としてコピーレフトがある。
コピーレフトとは、配布にあたって「配布される人にソースコードを自由に取得・変更・再配布する権利を提供せずにプログラムの再配布をしてはいけない」という制約をつけることで一旦自由ソフトウェアになったソフトウェアは他人の手を経て再配布されても自由ソフトウェアであり続けることを保証する。
この制約の有効性はプログラム著作者の著作権(コピーライト)によって保証されている。rightをleftに置き換えてコピーレフトという語が作られた。
日本においては、コピーレフトの観念を"永久に無料で更新され続ける"かのようなイメージで語られることがあるが、コピーレフトは、ソフトウェアを"永続的に使う機会を保証する"ために、そのソフトウェアのもとになるソースコードの利用の自由を保証する(させる)だけである。エンドユーザが常に改良されたソフトウェアを使えるかどうかとは無関係である点に注意が必要である。
要するに、私有ソフトウェアは、なんらかの事情で権利主が更新が停止した場合、そのソフトウェアの命脈は文字通りそれまでであるが、コピーレフトであれば、ソースコードを改良する人がいる限り、ソフトウェアの更新も継続される、ということである。逆にいえば、コピーレフトであっても、誰もメンテナンスしなければそのソフトウェアはそのままであるし、実際にそういうソフトウェアは多い。
コピーレフトもまたGNUを始めるに当たって、より自由なソフトウェアを定義するための概念である。GPL/LGPLは、コピーレフトを実現する法的に有効なライセンスで、弁護士の協力の元に作られた。
ソフトウェアに例えて言えば、コピーレフトは「アーキテクチャ」であり、GPLはその「実装」ということになる。つまり、コピーレフトを実現するライセンスにはGPL以外にもあり得る。
コピーレフトやGPL自身が、実社会で動作するコンピュータプログラムのようなもので、天才プログラマのストールマンならではの作品だと言える。自由な社会を作り出すプログラムである。「GPLをあなたのソフトウェア/作品に組み込めばそれは、自由な社会を作り出すために自動的に働き始めますよ」というわけだ。
GNUなどの考え方としては、コピーレフトなライセンスが「自由な世界のソフトウェアは自由を失うことが難しい」という意味で、より自由ということになる。
これに対して、BSDを始めとしたコピーレフトではないライセンスは、「自由なソフトウェアが将来自由を失う可能性があり得る」という意味で、コピーレフトに比べて自由さに欠けるとされる。例えば、BSDライセンスで公開されているソフトウェアを改良して公開するとき、必ずしもソースコードを公開しなくても良い。コピーレフトの考え方によれば、このとき「改良されたバージョンは自由が失われている」とされる。
一方、コピーレフトは「自由であること」が失われないために「自由でなければならない」という制約を付けていると見ることもできる。例えば、コピーレフトなソフトウェアを改造して公開する場合、ソースコードの公開を拒むことはできない。コピーレフトなソフトウェアをBSDライセンスで公開することもできない。この意味で、「コピーレフトは制約が強く、BSDライセンスなどに比べて自由でない」と考える人もいる。
詳しくはGNUプロジェクトの「さまざまなライセンスとそれらについての解説」に自由ソフトウェアとして認められるライセンスの一覧があり、必要に応じて更新されている(日本語版は英語版に比べて更新が遅れるので、最新の情報を得る必要があるときは、英語版を参照のこと)。
Free softwareという言葉は「無料」を連想させるため、一般企業には採用されにくい考えかたであった。この状況を改善させるため、エリック・レイモンドらによって近年オープンソースという語が提案され、広く使われるようになった。オープンソースという言葉には自由の思想が含まれておらず(前述の状況を回避するため意図的に避けられている)、あくまでビジネス上の企業戦略の一つとして紹介された。「ソースコードを公開するとどういうメリットがあるか」が関心の中心である。
オープンソースはソースを取得、変更、再配布できることに注目し、ソフトウェアの自由を維持するためのコピーレフトの概念は含まれていない。
このような違いから、自由ソフトウェアとオープンソースの立場は別の物として扱われている。形としては、オープンソースは自由ソフトウェアの一部のように見えるが、意味としては全く違うと、リチャード・ストールマンは主張している。逆にオープンソースは、自由ソフトウェアをその一部として含む。
各ライセンスはオープンソースの概念を発表・定義し、推進する団体であるOpen Source Initiativeによる認証を受けることで「オープンソース・ライセンス」を名乗ることができる。しかしオープンソースは流行語になったため独自の解釈による自称オープンソースが複数存在するため問題となっている。
自由ソフトウェアが提唱された当初は批判意見もあり、利用者は研究者や個人に限られていた。
1990年代になると、インターネットの爆発的普及により、自由ソフトウェアに携わる技術者が世界的に増大した。また、ダウンサイジングとオープンシステムの普及により、情報システムにおける標準化とコストの劇的な低下が起こり、相対的にシステム構築や、保守運用のコストの比重が増加した。
このため、自由ソフトウェアを使用し、情報システムの構築、保守運用を行うことで利益を上げるベンチャービジネスが勃興した。
このような企業において独自に行われた、バク修正や機能の追加は、インターネットを通じ公開され、自由ソフトウェアの信頼性向上や高機能化に貢献した。企業も、社会貢献によるイメージアップと、技術力を示すことによる広告効果を期待することよりも、特定の高価な独占ソフトウェアでは利益が独占企業に集中するだけであり、対抗して作られてきた自由ソフトウェアに積極的に開発に携わることにより、利益確保の道を模索している。あるいは、開発、保守の費用負担ができなさそうなソフトウェアを自由ソフトウェアとしてソースコードを公開することより、固定的な費用負担を削減することを目的としている場合もある。
2000年代になると、自由ソフトウェア産業はエコシステムとして機能するようになり、多くの人から産業としての価値を認められるようになった。また、従来からの大企業が自由ソフトウェアに関わることも珍しくなくなった。
一方、現在でも自由ソフトウェア開発では、特許などの知的所有権の保護が十分検証されておらず、企業での利用にはリスクがあると批判されることがある。しかし、国際規格などの公開の規格類に適合していれば、特許・知的所有権は規格制定とその後の所定の期間で検証済みとなるため、企業での利用にリスクがあるとは限らない。保守運用で利益を上げることが難しい個人向けソフトウェアでは、有償の自由ソフトウェアの運用は進んでおらず、個人の自己責任での利用が広がっている。また、自由ソフトウェアが入っていることを知らずに利用している場合の方が多くなっている。