リチャード・M・ストールマン |
|
|
|
|
|
|
|
最初の仕事は、オペレーティング・システムであるべきだと私は判断しました。それはなぜでしょう?あなたがコンピュータを使う場合、オペレーティング・システムがなくてはならないからです。UNIXのようなオペレーティング・システムがあり、そして他になにもなくても、あなたにはたくさんのことができます。あなたは、プログラムを開発し、デバッグし、走らせることができます。あなたはテキストを編集して、本の体裁にし、印刷することができます。メールのやり取りもできます。あなたには非常に多くの有益なことができるのです。しかし、システムがないのに、アプリケーション・プログラムだけがあるような場合、あなたは何もできません。システムがなければアプリケーション・プログラムさえも実行できないのです。ですから、私達は、最初の目標としてフリーのオペレーティング・システムを開発する必要がありました。
私は、このシステムをUNIXと互換性があるようにしました。それには非常に特別な理由があります。それは、5年後または10年後に人々がどのようなコンピュータを使っているかわからないからです。私は「ポータブル」なシステムを作りたかったのです。そして、UNIXはそれを実現するのにすぐれたモデルを与えてくれました。ですから私はこのシステムをUNIXと互換性を持たせようと決めました。すべてのUNIXユーザが、私達の新しいシステムに切り替えるのになにも障害がないようにしたかったのです。ユーザは結局のところ、互換性のない変更を嫌います。私達はそのことを知っていたのです。
したがって、私は、UNIX互換のポータブルなフリー・ソフトウェア・オペレーティング・システムを開発することを決断しました。それには名前が必要でした。私は、GNUという名前を付けました。これにはいくつかの理由があります。まず、GNUという言葉は英語の中で最もユーモアがこめられた言葉の1つなのです。辞書ではその発音は[new]と示されていますが、言葉遊びの感覚としてそれを[g-new]と発音します。この言葉からインスピレーションを得た気のきいた愉快な歌まであるのです。しかし、GNUは、"GNU is Not UNIX"の再帰的な略語でもあります。これは、UNIXの技術的なインスピレーションに対して敬意を表すると同時に、このシステムの最も重要な点として、それがUNIXではないことを示しています。UNIXは所有権のあるソフトウェアでした。私達はUNIXを使うことはできませんでした。自由人はUNIXを使うことができなかったのです。私達にはUNIXとは違ったものが必要だったのです。私達が自由であることを可能にするものが必要だったのです。
しかし、「これはフリー・ソフトウェアである」というのはどういう意味なのでしょう?ここで、「フリー・ソフトウェア」というのが特定の自由を意味するものであるということを詳細に説明した方がいいでしょう。このことは非常に重要です。いずれにしろ、「私は自由を信じる」と言うことは容易です。しかし、もっと具体的なことを言わないと実際の問題には取り組んでいないことになります。ここで難しいのは、ある自由は他の自由と矛盾するということです。そして、場合によっては、自由は、ある人たちが持ちたいと思っている権利と矛盾するのです。したがって、本当に困難な問題は、あなたがこれらの矛盾と取り組むときに明らかになるのです。私達が守らなければならないとする大切な自由はどれなのでしょう?そして、放棄しなければならない二次的な自由はどれなのでしょう? これらの困難な課題に直面するためには(そうです、この「直面」という言葉を私は求めていたのです)、私は、自由のリスト、つまり、フリー・ソフトウェアの定義をあなた方にお見せするべきでしょう。
プログラムは、あなたがそれを実行し、それが何をするかを調べ、それを変更し、そのコピーを配布し、そして、改良されたバージョンを公開することができる場合には、フリー・ソフトウェアとなります。このようなことができるということが、私達が求める自由なのです。なぜなら、これらの自由によって、私達はソフトウェアを私達の利益のために使うことができ、そして、お互いに協力してコミュニティを形成することができるからです。
まず、ソフトウェアを実行する自由があります。これは、レシピにしたがって料理をしてその料理を食べることに似ています。このことは非常にわかりやすいことです。もし、あなたが料理をどのように食べるかについて制限されているのであれば、このレシピは自由ではありません。そして、料理人であるあなたも自由ではありません。
次に、ソフトウェアが何をするのかを調べ、それをあなたの思い通りに変更する自由があります。この自由に関して、レシピではだれもあなたを止めることはできません。レシピを見れば、材料が何であるか明確です。それらは明確に記述されています。しかし、コンピュータ・プログラムでは、あなたを制限する方法があります。プログラムはバイナリ形式で配布することができます。バイナリというのは一連の不思議な数字の羅列にすぎません。ただ、それを非常な労力でもって調べるプログラマであれば、そのようなプログラムが何をするかをおそらく見つけ出すことができます。しかし、それは非常に困難な作業です。それは、「逆アセンブリ」として知られていますが、非常に困難であり、「最後手段」としてしか行われません。
プログラムを本当に理解するには、ソース・コードを見なければなりません。したがって、「フリー・ソフトウェア」というのは、ソース・コードへのアクセスを可能にしているということを意味します。そして、最後に、あなたがプログラミングを知っているのであれば、それを読むことができ、それが何をするかを見ることができます。そのような自由がなければ、そこには意地の悪い機能、バックドア(不正手段)、監視システムなどが取り付けられている可能性があり、これらについてはどのようなものがあるのかあなたにはわかりません。私が知っているところによると、Windowsの一部にはNSA-Key-1とラベルがつけられたなんらかのロケーションがあります。これは、国家安全局用のバックドアであると推測されていますが、それが何をするのかを理解するのは非常に困難です。これは、マイクロソフト社のプログラマのジョークに過ぎないのかもしれません。でも、はっきりとはわかりません。そんなプログラムを使いたいとは思わないでしょう。プログラムを使いたい場合、ソースがあれば、それを読み、それが何をするかを見ることができます。また、それを変更することもできます。バグを修正したり、機能を追加したり、コマンドやメッセージを日本語に、あるいは、あなたが好きなように変換したりすることができます。この自由は、実際、フリー・ソフトウェアのユーザにとって非常に大きな恩恵となります。 |
|
|