自由および不自由なソフトウェアの分類
できれば避けたい混乱を招くことばもご覧ください。
自由ソフトウェア
自由ソフトウェアとは、すべての人に対して、利用、複製、配布する許可が与えられているソフトウェアのことです。そのまま、もしくは改変したもの、無償もしくは料金を取るもの、のいずれに対してもです。特に、ソースコードが入手可能であることが必須とされています。「ソース無くしてソフトウェア無し」です。これは簡略な定義です。詳しくは、自由ソフトウェアの定義をご覧ください。
もしプログラムが自由であれば、GNUのような自由なオペレーティングシステムや、自由なバージョンのGNU/Linux システムに含める現実的な可能性があります。
プログラムを自由にするにはいくつもの異なった流儀があります。すなわち、選択肢としては複数選べるが、そのどれを選んでもなおプログラムを自由と出来るような細かい論点が多くあるということです。可能なバリエーションのいくつかについては後述します。具体的な自由ソフトウェアのライセンスについての情報は、ライセンスの一覧をご覧ください。
自由ソフトウェアでは自由の問題であり、値段の問題ではありません。一方プロプライエタリ・ソフトウェアの企業は、典型的には、値段について言及する際「フリー(自由)ソフトウェア」という用語を使います。そういう場合、彼らが意味しているのはバイナリのコピーが無料で手に入るということだったり、あなたが買おうとしているコンピュータにおまけで付いてくるということだったりします。いずれにしろ、こういったことは、わたしたちがGNUプロジェクトにおいて「自由ソフトウェア」で意味していることとは何の関係もありません。
このように意味をはき違えている可能性がありますので、ソフトウェア会社が自分たちの製品をフリー(自由)ソフトウェアだと言っている場合には、いつでも実際の配布条件をチェックして、ユーザにとって本当に自由ソフトウェアという語が含意するすべての自由があるかどうか確かめるようにして下さい。その製品は本当に自由ソフトウェアなのかも知れませんが、そうでないこともあるのです。
多くの言語では、自由の「フリー」と無料の「フリー」に二つの別の単語があります。たとえば、フランス語では「libre」と「gratuit」があります。しかし、英語では違います。英語にも「gratis」という語があり、これを使えば値段について言及していることは誤解の余地無く示せますが、一般的な形容詞で自由という意味での「フリー」を明確に表現できるものが存在しないのです。ですから、他の言語では、“free”を明確に翻訳することを提案します。さまざまな言語への“free software”の用語の翻訳のリストをご覧ください。
自由ソフトウェアは、不自由なソフトウェアよりも、しばしば、より信頼できるものです。
オープンソース・ソフトウェア
「オープンソース」ソフトウェアの用語は、ある人々によって、多かれ少なかれ自由ソフトウェアと同じカテゴリを意味するのに用いられます。まったく同じクラスのソフトウェアというわけではありません。かれらは私たちが制限が強すぎると考えるライセンスを認めますし、かれらが認めていない自由ソフトウェアのライセンスもあります。しかし、カテゴリの違いは小さなものです: オープンソースだが自由ではないソースコードについて、わたしたちはいくつかのケースに限って知っています。原理的には、ある自由なプログラムがオープンソースとして拒絶されることはありえますが、これまでそういうことが起こったことは知りません。
わたしたちは用語として「自由ソフトウェア」を選びます。なぜなら、それは自由を意味するからです。これは、「オープンソース」の用語がなさないものです。
パブリックドメイン・ソフトウェア
パブリックドメイン・ソフトウェアは著作権が主張されていないソフトウェアです。もし、ソースコードがパブリックドメインであれば、これはコピーレフトでない自由ソフトウェアの特別の場合ですが、このソフトウェアの複製物や改変されたバージョンは全く自由でなくなってしまうかもしれないことを意味します。
あるケースでは、実行可能プログラムがパブリックドメインだが、ソースコードが利用可能でないという場合があるでしょう。これは自由ソフトウェアではありません。なぜなら、自由ソフトウェアはソースコードへのアクセスを必要とするからです。一方、ほとんどの自由ソフトウェアはパブリックドメインではありません。それは著作権が主張され、著作権者が自由ソフトウェアのライセンスを用いて、すべての人に自由に利用する許可を法的に与えているのです。
時折、自由、もしくは、「無料で入手可能」を意味するのに、ゆるいやり方で、人々は「パブリックドメイン」という用語を使います。しかしながら、「パブリックドメイン」というのは法律用語の一つであり、厳密に「著作権が主張されていない」ということしか意味しないのです。意味をはっきりさせるために、わたしたちは本当に著作権が主張されていないことを示したいときのみ「パブリックドメイン」という語を使い、他の意味を伝えたいときは他の用語を使うことをお勧めします。
ベルヌ条約では、ほとんどの国が署名していますが、書かれたものはなんにしろ、自動的に著作物となる、とされています。これにはプログラムも含まれます。ですから、あなたが書いたプログラムをパブリックドメインとするためには、あなたはその著作権を放棄するいくつかの法的なステップを踏む必要があります。そうでなければ、プログラムには著作権があるのです。
コピーレフトとされるソフトウェア
コピーレフトとされるソフトウェアは、自由ソフトウェアであり、その配布条件において、すべてのバージョンのすべての複製物が、多かれ少なかれ、同一の配布条件を持つことを保証したものです。たとえば、コピーレフト・ライセンスは、一般的に、ほかの人が追加の要件をソフトウェアに加えることを認めず(限定された安全な要件は認められますが)、ソースコードを利用可能とすることを要求します。これはプログラムを保護し、改変されたバージョンがプログラムをプロプライエタリにする通常の方法から守るのです。
GPLバージョン3のようなコピーレフト・ライセンスでは、ソフトウェアをプロプライエタリにする別の方法、たとえばtivoization、をブロックしています。
GNUプロジェクトでは、わたしたちが書くほとんどすべてのソフトウェアをコピーレフトとしています。なぜならわたしたちの目標はすべてのユーザに「自由ソフトウェア」ということばが含意する自由を与えることだからです。コピーレフトがどのように機能するか、そしてなぜわたしたちがそれを適用するかについての詳細はコピーレフトの小論をご覧ください。
コピーレフトは一般的な概念です。実際のプログラムをコピーレフトとするには、特定の配布条件のセットを適用する必要があります。コピーレフトの配布条件を書くには多くの可能なやり方があり、原理的には、たくさんのコピーレフトの自由ソフトウェア・ライセンスがありえます。しかしながら、現実の監修としては、ほとんどすべてのコピーレフトとされるソフトウェアはGNU一般公衆ライセンスを用いています。ふたつの異なるコピーレフト・ライセンスは通常、「非両立」です。つまり、あるライセンスのコードともうひとつのライセンスのコードをマージすることは違法です。ですから、コミュニティにとって、人々が単一のコピーレフト・ライセンスを使うことが良いことです。
コピーレフトとされない自由ソフトウェア
コピーレフトでない自由ソフトウェアには作者から再配布と改変の許可が与えられていますが、制限を追加することもまた許可されています。
もしプログラムが自由でも、コピーレフトでなければそのいくつかの複製物や改変されたバージョンは全く自由でなくなるかもしれません。あるソフトウェア会社は、プログラムを(改変あり、またはなしで)コンパイルして、実行形式ファイルをプロプライエタリ・ソフトウェア製品として配布することができます。
Xウィンドウ・システムは、この例証となっています。XコンソーシアムはX11をコピーレフトでない自由ソフトウェアとする配布条件の下でリリースし、続く開発者はこの慣習にほぼ従いました。この配布条件の複製物は自由ソフトウェアです。しかし、世の中には不自由なバージョンも同様に存在し、(少なくともかつては)人気のあるワークステーションやPCのグラフィックボード上ではそういった不自由なバージョンしか動作しないということがあるのです。もしあなたがこのようなハードウェアを使っているならば、あなたにとってX11は自由ソフトウェアではありません。一時、X11開発者はX11を自由でないものにしたことさえありました。これは、ほかの人たちが、コピーレフトではない同じライセンスのもとでコードを貢献したからできたことです。
ゆるく寛容にライセンスされるソフトウェア
ゆるい寛容なライセンスにはX11ライセンスと二つのBSDライセンスがあります。これらのライセンスでは、コードのほとんどあらゆる利用を認めています。ソースコードの変更ありでまたはなしでプロプライエタリのバイナリを配布することを含めて認めています。
GPLで保護されたソフトウェア
GNU GPL (GNU一般公衆ライセンス)はプログラムをコピーレフトとするための配布条件の、具体的なセットの一つです。GNUプロジェクトではほとんどのGNUソフトウェアの配布条件としてこれを使っています。
ですから、自由ソフトウェアをGPLで保護されたソフトウェアと同一視することは間違いです。
GNUオペレーティング・システム
GNUオペレーティング・システムはUnixライクのオペレーティング・システムで、すべてが自由ソフトウェアであり、1984年からわたしたちがGNUプロジェクトとして開発してきているものです。
Unixライクなオペレーティングシステムは多くのプログラムで構成されます。GNUシステムはすべての公式GNUソフトウェアを含みます。また、Xウィンドウ・システムやTeXといったGNUソフトウェアではない多くのパッケージも含んでいます。
「完全なGNUシステム」の最初のテストリリースは1996年でした。これには1990年から開発された、わたしたちのカーネル、GNU Hurdが含まれています。2001年、(GNU Hurd を含めて)GNUシステムは信頼に足る動作をするようになりましたが、Hurdは、いくつか重要な機能がまだ欠けていますので、広く使われてはいません。そうしている間、GNU/Linuxシステム、GNU Hurdの代わりにLinuxをカーネルとして使った、GNUオペレーティング・システムの分家が90年代より非常な成功を収めました。このことが示すとおり、GNUシステムは単一の決まったプログラムの集合ではありません。ユーザやディストリビュータがかれらの必要と要求に応じて、異なるパッケージを選択できるのです。結果は、なおGNUシステムの一種です。
GNUの目的は自由であることですから、GNUシステムのどの一部分をとっても自由ソフトウェアでなければなりません。しかし、それらすべてがコピーレフトとされる必要はないのです。そのプログラムが技術的な目標を満たすのに有用ならば、どの種の自由ソフトウェアもGNUに含めるのに法律上、適します。
GNUプログラム
「GNUプログラム」はGNUソフトウェアと同じ意味です。あるプログラムFooがGNUソフトウェアならそれはGNUプログラムです。また、わたしたちは時々、それは「GNUパッケージ」である、と言います。
GNUソフトウェア
GNUソフトウェアはGNUプロジェクトの後援を受けてリリースされたソフトウェアです。あるプログラムがGNUソフトウェアである場合、わたしたちは、それをGNUプログラムと呼んだり、GNUパッケージと呼んだりもします。GNUパッケージのREADMEやマニュアルでは、GNUであることを示すべきです。また、自由ソフトウェア・ディレクトリでも、すべてのGNUパッケージを確認できます。
ほとんどのGNUソフトウェアはコピーレフトとされるものですが、すべてではありません。しかしながら、すべてのGNUソフトウェアは自由ソフトウェアでなければなりません。
あるGNUソフトウェアはフリーソフトウェアファウンデーションのスタッフによって書かれました。ほとんどのGNUソフトウェアは、多くのボランティアからもたらされました。(これらのボランティアの何人かは会社や大学から報酬を得ましたが、わたしたちに対してはボランティアです。)いくつかの寄贈されたソフトウェアはフリーソフトウェアファウンデーションの著作物とされています。いくつかはそれを書いた寄贈者の著作物です。
FSFの著作物とされたGNUソフトウェア
GNUパッケージの開発者は著作権をFSFに移管できますし、そのまま自身で保持することもできます。その選択はかれらのものです。
FSFに著作権を移管すると、そのプログラムはFSFの著作物とされたGNUソフトウェアとなります。そしてFSFはそのライセンスを守らせることができます。開発者がそのまま著作権を保持する場合、ライセンスの強制はかれら自身の責任です。
FSFは、ルールとして、公式GNUパッケージではないソフトウェアに対して著作権移譲を受け付けません。
不自由なソフトウェア
不自由なソフトウェアは、自由ではないソフトウェア、のことです。その利用、再配布、改変は禁止されているか、許可を得ることが必要とされているか、あるいは厳しい制限が課せられていて自由にそうすることが事実上できなくなっています。
プロプライエタリ・ソフトウェア
プロプライエタリ・ソフトウェアは不自由なソフトウェアの別の名前です。かつて、わたしたちは、不自由なソフトウェアを、非商用で改変と再配布が可能な「準・自由ソフトウェア」とそれもダメな「プロプライエタリ・ソフトウェア」に分けていました。しかし、わたしたちは、この区別を止め、今は、不自由なソフトウェアの同意語として「プロプライエタリ・ソフトウェア」を使っています。
フリーソフトウェアファウンデーションでは、そのプログラムの自由な代替品を書くという特定の目的のために一時的にそうせざるを得ない場合を除き、いかなるプロプライエタリ・プログラムをもわたしたちのコンピュータにはインストールしないという規則を守っています。それ以外には、プロプライエタリ・プログラムをインストールするいかなる可能な言い訳も存在しないと思います。
たとえば、1980年代においてはUnixをわたしたちのコンピュータにインストールすることは正当化しうると考えていました。なぜなら、わたしたちはそれをUnixの自由な代替品を書くために使っていたからです。現在では自由なオペレーティングシステムが入手可能となっていますから、この言い訳はもはや通用しません。わたしたちは自由ではないオペレーティングシステムは使っていませんし、新しく導入するコンピュータではすべて完全に自由なオペレーティングシステムを動かさなければならないということにしました。
GNUのユーザやGNUに対する貢献者の皆さんにまで、このルールに従って生きることを強制するつもりはありません。これはわたしたちが自分たち自身に課した規則です。しかし、わたしたちは、あなた自身の自由のために、これに従うことを望んでいます。
フリーウェア
「フリーウェア」という用語に、一般的に認められたはっきりとした定義はありません。しかし多くの場合このことばは、再配布は許可しているが改変は許可されていない(そしてソースコードも入手できない)ソフトウェアパッケージを指すのに使われています。こういったソフトウェアパッケージは自由ソフトウェアではありません。ですから、自由ソフトウェアについて言及するのに「フリーウェア」という語は使わないようお願いします。
シェアウェア
シェアウェアとは人びとが複製物を再配布することは許可しているが、そのコピーを使用し続ける人は皆ライセンス料を払わなければならないと主張するソフトウェアのことです。
シェアウェアは自由ソフトウェアではありませんし、準自由ですらありません。それには二つ理由があります。
- ほとんどのシェアウェアでは、ソースコードが入手できません。よって、そのプログラムを改変することは全く不可能です。
- シェアウェアでは、ライセンス料を払わない限りソフトウェアを複製したりインストールしたりする許可を与えられません。非営利な活動に参画している個人にすらそうです。(実際のところ、人々は、しばしば、配布条件を無視して、どちらにしろそうするのですが、配布条件では認めていません。)
プライベート・ソフトウェア
プライベートあるいはカスタム・ソフトウェアとは、一ユーザ(典型的には、一つの団体、もしくは一つの会社)のために開発されたソフトウェアのことです。ユーザはそれを保持し使いますが、ソースコードでもバイナリのいずれでもリリースし公開することはしません。
あるプライベート・プログラムは、その一ユーザに対して四つの自由があれば、(つまらない意味合いしかありませんが)自由ソフトウェアです。特に、そのユーザがそのプライベート・プログラムに対しすべての権限があれば、そのプログラムは自由です。しかしながら、そのユーザがコピーを配布して、そのコピーに対して四つの自由をほかの人に与えなかったならば、そのコピーは自由ソフトウェアではありません。
自由ソフトウェアは自由を問題とし、そのアクセスを問題としていません。一般的に言って、プログラムを開発し、リリースしないことを間違いだとは、わたしたちは考えません。あるプログラムがとても重要で、公開を差し控えることが人として間違っている、という状況もあるでしょう。しかし、そのようなケースは稀です。ほとんどのプログラムはそんなに重要ではなく、リリースしないことは特別に悪いことではないでしょう。ですから、プライベートあるいはカスタム・ソフトウェアを開発することと、自由ソフトウェア運動の原則とには衝突はありません。
ほとんどすべてのプログラマの雇用はカスタム・ソフトウェアの開発です。ですから、ほとんどのプログラミングの仕事は、自由ソフトウェア運動と両立するもの、あるいは両立させることができるもの、です。
商用ソフトウェア
「商用」と「プロプライエタリ」は同じ意味ではありません! 商用ソフトウェアはビジネスの一部として、あるビジネスによって、開発されたソフトウェアのことです。ほとんどの商用ソフトウェアはプロプライエタリですが、商用の自由ソフトウェアはありますし、自由ではない非商用のソフトウェアも存在します。
たとえば、GNU Adaは、ある会社により開発されました。それは、常にGNU GPLの条項により配布されており、その複製物はすべて自由ソフトウェアです。一方でGNU Adaの開発者たちはサポート契約を販売しています。かれらのセールスマンが顧客になってくれそうな人なり企業なりの相手をするとき、こんなふうに言われるかも知れません。「商用のコンパイラの方が安心みたいな気がするよ。」、と。こういう場合セールスマンは、「GNU Adaは商用コンパイラですよ。たまたま自由ソフトウェアなだけで。」と答えるでしょう。
GNUプロジェクトにとって、重要視する優先順位が違うのです。重要なのはGNU Adaが自由ソフトウェアだということで、それが商用かどうかは、単に、その詳細に過ぎないのです。しかしながら、商用であるがゆえにGNU Adaのさらなる開発が進むことは、もちろん有益なことです。
自由の商用ソフトウェアがあり得ることに関する認知を広めることにどうかご協力下さい。「プロプライエタリ」を意味するときに「商用」と言わないように努力することも助けになります。