GNU ソフトウェアの関連記事 - 1

□GNU 宣言 *1□ ---The GNU Manifesto---

GNU Emacs 配布テープの dist-emacs/etc/GNU ファイルより

Richard Stallman

■ GNU とは何か

 GNU は Gnu's Not Unix です。私が今書いている Unix 互換のソフトウェア・システムです。私はこれを使いたいという人にフリーで提供しようと思っています。私のほかにも何人ものプログラマが手伝ってくれています。時間、お金、プログラム、機器の寄付を大いに必要としています。

 すでに我々は VAX、Motorola 68000 用の C 言語と Pascal 言語のコンパイラ、Emacs というテキスト・エディタ (コマンド記述用の Lisp 言語付き)、yacc 互換の構文解析部生成システム、リンカ、その他の約 35 個のユーティリティを準備しています。シェルはほとんど完成しつつあります。カーネルとデバッガが完成すれば (1985 年中には何とかしたいと思っているのですが)、プログラム開発環境に適したシステム GNU を配布することができます。その後、テキスト清書システム、エンパイヤ・ゲーム、スプレッドシートなど何百ものツールをオンライン・ドキュメントと共に提供するつもりです。最終的には Unix に標準的についてくる有用なツールの全てに代わるもの (あるいはそれ以上のもの) を提供したいと思っています。

 GNU は Unix のプログラムを動作させることができますが、Unix そのものではありません。我々は、ほかの OS の経験上、便利だった点はどんどん採り入れていきます。特に、長いファイル名やファイルのバージョン番号、クラッシュに耐えうるようなファイル・システム、ファイル名の補完 *2 などです。さらに、おそらく、端末に依存しないディスプレイ・プログラムの支援サポート、最終的には複数の Lisp プログラムや通常の Unix プログラムが画面を共有できるような Lisp ベースのウィンドウ・システムについても計画しています。◆1,2

 システム・プログラミング用の言語としては C 言語と Lisp 言語の両方に対応しています。また、通信用に、UUCP、MIT Chaos Net、Internet の各プロトコルをサポートする計画です。

 GNU はまず、68000/16000*3 クラスの仮想メモリをもったマシンを想定しています。何故ならば、この程度のマシンならば比較的簡単に GNU を動作させることができるからです。もっと能力の小さなマシンの上で走らせるための努力は、そのマシンの上で使いたい人の課題ということになるでしょう。

 混乱を避けるために GNU の G は発音してください。*4

■ 自己紹介

 私の名は Richard Stallman です。最初の Emacs エディタの考案者で、以前勤めていた MIT の AI ラボにいる時に作成しました。その後 Emacs エディタに似ているものがたくさん作られました。コンパイラやエディタ、デバッガ、コマンド・インタープリタ、ITS(Incompatible Timesharing System) や Lisp マシンの OS に至る広範囲の作業を行なってきました。ITS 上で端末に依存しない表示サポート・システムを提唱しました。その後 Lisp マシン用に故障に強いファイル・システムと 2 つのウィンドウ・システムを作成し、3 番目のウィンドウ・システムの設計の後現在作成中です。これは GNU を含む多くのシステムに移植されるでしょう。*5

■ なぜ GNU を書く必要があるか

 「もし、好きなプログラムがあれば、それを好きなほかの人と共有しなければならない」という黄金律を考えています。ソフトウェア販売会社は、ユーザにソフトウェアを他人と共有しないことを契約させることによって、ユーザを分割、支配しようとしています。自分の良識では、非公開契約あるいはソフトウェアのライセンスにはサインできません。何年もの間、私はこのような傾向に抵抗するために AI ラボの内部で活動してきました。結局、私の努力は無駄でした。私は自分の意志に反して、このようなライセンスにサインする教育機関に留まることは不可能になったからです。

 私は自分の信念を曲げないで計算機を使い続けるために、独占的なソフトウェアを使用しないで十分やっていけるようなフリー・ソフトウェアの団体を組織することを決意しました。私は GNU の配布を MIT によって合法的に阻止されないために、AI ラボを辞職しました。

■ なぜ GNU は Unix 互換なのか

 Unix は私の理想のシステムというわけではありませんが、そんなにひどいものでもありません。Unix の本質的に良い特徴を備えています。私はその点を活かして Unix に欠けているものを補いたいと思います。さらに Unix との互換性は、移植したいと思っているほかの多くの人々にとっても便利なはずです。

■ GNU をどうやって配布するか

 GNU はパブリック・ドメイン・ソフトウェアではありません。GNU の修正やその再配布は自由ですが、再配布を禁止することはできません。言いかたを換えれば、独占的な修正は許されないということです。私は GNU の全てのバージョンがフリーで *6 あることを明言します。

■ なぜ多くのプログラマが支援してくれるのか

 私は GNU に惹き付けられ、手伝いたいという多くのプログラマをまのあたりにしました。

 多くのプログラマはシステム・ソフトの商業化に幻滅しています。それは彼等に金儲けをさせると同時に、ほかのプログラマを仲間ではなく競争相手と考えるように仕向けているからです。GNU は、プログラムを共有することで、プログラマ同士の連帯を強めます。これが GNU の基本原則です。今行なわれている市場の仕組みでは、プログラマにほかのプログラマと友人として接するということを忘れさせています。ソフトウェアの購入者は、友情のもとで選択を行ない、かつ、法に服従しなければなりません。多くの人が友情のほうが大切であると考ています。それは自然なことです。しかし、法律の枠組みの中で物事を考える人は、すぐにそれを決めかねます。そのような人はプログラミングは単なる金儲けの手段に過ぎないと考えてしまうのです。

 プログラムを独占するのではなく、GNU で仕事をし、GNU を使うことで我々は、誰に対しても寛容になることができ、同時に法を守ることもできます。さらにほかの人々に GNU のコミュニティに参加するように示唆し、ある 1 つの好例を提供することになります。それは私達がフリーではないソフトウェアを使い続けた場合には得られないようなある種の協調の念を抱くことです。私の話したプログラマのうち、約半数がそれはお金にかえられない貴重な幸福であると言っていました。◆3

■ どうしたら参加できるか

 私は計算機メーカにマシンとお金の寄付を求めています。また、個人にもプログラムと労働力の提供を求めています。

 ある計算機メーカはすでに、マシンの提供を申し出てくれています。しかし、我々はもっと必要としています。もし、マシンを寄付してもらえるならば、GNU を早いうちからそのマシン上で動かすことができるという結果になります。そのマシンは、普通の人がいる部屋に置けるもの、特殊な空調や電源を必要とするものではあってはなりません。

 多くのプログラマが GNU に、パートタイムで労働力を熱心に提供してくれています。ほとんどのプロジェクトではこのような部分的で分散した仕事というのはまとめ上げが非常に難しく、独立して書かれた部分は統合してもうまく動かないものです。しかし、Unix を書き換えるというこの特殊な仕事にとっては、この点は問題になりません。完全な Unix システムは何百というユーティリティ・プログラムから構成され、それらは個々に文書化されています。ほとんどの GNU ソフトウェアのインタフェース仕様は Unix 互換となっています。1 人 1 人の参加者がある Unix ユーティリティを Unix と互換性のある代替のユーティリティに書き換えることができます。さらに、それが Unix 上で元のものと置き換えて正しく動作すれば、それらを集めたものも正しく動作するはずです。こういった方法を採用していれば、ある部分で大きな問題が発生したとしても、組み合わせて実行させることが可能です (カーネルの部分は綿密なコミュニケーションを必要とし、小人数の緊密なグループで仕事をしなければならないでしょうが)。

 もし、お金を寄付してもらえれば、私はフルタイムかパートタイムの人を何人か雇うことができるでしょう。給料はプログラマの標準からすれば余り高くはできないかもしれませんが、お金を稼ぐことと同様にコミュニティの精神を築くことが大切であると考えるような人を私は探しています。これは GNU に参加してくれる人が別の方法で生活の糧を得る代わりに、その全力を GNU の仕事に注ぎ込めるようにするための方法の 1 つであると思います。

■ なぜ全てのユーザにとって有益となるのか

 ひとたび GNU が書き上がってしまえば、誰もがちょうど空気のような感覚で良質のシステム・ソフトウェアを自由に入手することができるようになります。

 これは単に人々が Unix のライセンス料を節約できるというだけのことではありません。システム・プログラミングの非常に無駄な重複を避けることができます。この努力は、代わりに「現在の技術水準」を高めるのに費やすことができます。

 完全なシステム・ソースを誰でも見られるようになるでしょう。そうすれば、システムに変更を加えようとするユーザは自由に自分で書き換えたり、誰かプログラマか会社にそれを依頼することができます。ユーザはもはやソース・コードを独占するプログラマや会社のお情けにすがる必要もなく、変更を行なうことに関しては独立した存在でいられるのです。

 学校では生徒達にシステム・コードを学習し、改良するように奨めることで、最高の教育環境を用意することができます。ハーバード大学の計算機研究室には、ソース・コードが公開されないようなプログラムはシステムには置かないという方針があり、実際にそのようなプログラムのインストールを拒否することでその方針を貫いています。私はこれに深く感銘を受けました。◆4

 最後に言えることは、誰がシステム・ソフトウェアを独占し、誰がそれに関わる権利があり、あるいはないのかということをいちいち考慮する煩わしさがあげられます。

 プログラムを使う代価を人々に払わせるという規定 (コピー・ライセンスを含む) は、人々が (どのプログラムに) いくら支払うべきかを決定する厄介な機構を介在させて、常に社会に大変なコストを負わせています。このようなことを人々にこれまでよりもさらに厳守させようとするには警察国家でもなければできません。

 例えば、空気を作り出すのに膨大なコストがかかる宇宙ステーションがあるとします。空気 1 リットルを呼吸するたびに料金がかかるのはよいとしても、課金のためにメーター付きの酸素マスクを昼も夜も着けなければならないとしたら、たとえ全人類が料金を支払うようになっていったとしても耐え難いものです。そして、テレビ・カメラがそれを外したりしないように到る所で監視することにでもなれば、これはもうどうかしているとしか言いようがありません。頭割りの料金で、エア・プラントを作り、マスクを外したほうがずっとましなはずです。

 プログラムを全部または一部をコピーするということは、プログラマにとって呼吸をするのと同じように自然なことなのです。それはフリーであるべきなのです。

■ GNU の目標への反対とそれに対する反証

「ただのものなんか誰も使おうとしないだろう。なぜならば、それはどのようなサポートをもあてにできないということだからだ」

「サポートを提供することでプログラムに対して代金をとったらどうか ?」

 人々がサービスのないフリーな GNU よりも、サービスがついている有料の GNU のほうがよいというのならば、フリーで GNU を手に入れた人にサービスを提供する会社を作って儲けることができるでしょう。

 本当のプログラミング作業という意味でのサポートと、単なる手間仕事を区別するべきだと思います。前者はソフトウェア販売会社には期待のできないサービスです。多くの人々にとってもそれが問題にならない限り、販売会社は何もしてくれないでしょうから。

 あなたの仕事の都合上、サポートに頼らざるを得ないのであれば、必要となるのはソースとツールだけです。そうすれば、残るはあなたの問題を解決してくれる人を雇うだけで、誰のお情けも必要ではありません。Unix の場合は、たいていのビジネスにとってはソースの価格があまりにも高いので、このようなことは考慮の対象外とする結果になっています。GNU の場合では何の支障もありません。身近に有能な人間がいないままにやっていくとしても、配布規定ではなんら問題にはなりません。GNU は世界中の難問を全て解決しようとするつもりはありません。

 一方、計算機のことを何も知らないユーザにはいろいろな雑事が発生するでしょう。つまり、自分でも簡単にできるようなことを代行してくれる人を必要としています。どうやったらできるのか、その方法を決して知りたがっているわけではありません。

 そのようなサービスならば、単純作業と修復サービスのみを行なうような会社が請け負うでしょう。ユーザがお金を払ってでもサービス付きの製品を手に入れたがっているということが事実ならば、ユーザは製品をフリーで手に入れた場合でも、そのようなサービスを買いたいと思うはずです。サービス会社は仕事の質と価格で競争するでしょう。ユーザは特定の会社に結び付けられることはありません。一方、サービスを必要としないユーザは、サービスに対して代価を支払う必要はありません。

「広告を出さなければ多くの人々に知らせることはできないだろう。その分だけでもプログラムの料金をとるべきだ」

「自由に入手できるプログラムの広告をしてもしかたがない」

 多くの計算機ユーザに、GNU のようなものについての情報を伝えられるような無料か、あるいは非常に安い広報にはいろいろな媒体があります。広告を使えばさらに多くのマイクロコンピュータのユーザにまで知らせることができるのも事実かもしれません。本当にそうだとして、代金をとり、GNU のコピーや配送のサービスを広告してくれる企業は、その広告料以上に見合うだけの成功をおさめなければなりません。結局、広告から利益を受けるユーザだけがそれに支払うことになります。

 ところで、多くの人々が友達から GNU を入手していくとしたら、そのような企業は存続しないでしょう。つまり、GNU を普及させるのには広告がどうしても必要なわけではありません。自由市場の擁護者は何故こんなことを市場で自由に決めさせないのでしょうか ?

「私の会社はライバルに競り勝つために独占的な OS が必要である」

 GNU は競争の領域からオペレーティング・システムを除外しようとしているのです。あなたはこの分野で勝利を得ることはできないでしょうが、同時にあなたの競争相手が勝利を得るということもないのです。あなたとあなたの競争相手はそのほかの分野で競争し、そこで互いに利益を得ることになるでしょう。あなたの商売が OS の販売であれば、GNU に好意を抱くわけにもいかないでしょうが。そうでなければ、GNU は、OS の販売というような高くつく商売にあなたが巻き込まれないで済むようにしてあげられるでしょう。

 GNU 開発が多くの企業やユーザからの善意で支えられているのをこの目で見たいものです。

「プログラマは自分の創造性に対して報われないのではないか ?」

 何か報われることがあるとすれば、それは社会的な貢献です。創造性は社会的な貢献ですが、それは社会がその成果を自由に使う限りにおいてなのです。プログラマが革新的なプログラムを作り出したことに対して報われるべきだとしたら、同様にそのプログラムの使用を制限することは罰せられるべきことではないでしょうか。

「プログラマは自分の創造的な仕事に対して、その代償を求めてはいけないのか ?」

 仕事への対価を求めたり、自分の収入をできるだけ多くしようとすることは反社会的な手段を用いない限り悪いことではありません。しかし、今日ソフトウェア開発の現場で習慣となっている手段は破壊的なものに基づいています。

 プログラムの使用を制限することによって、プログラムのユーザからお金を引き出すことは反社会的な行為です。制限すればそのソフトウェアの流通量や利用方法を減らしてしまうことになるからです。これは、人間がプログラムから得ることのできる富の量を減少させます。故意に制限しようとするならば、その有害な結果は故意の破壊行為と言わざるを得ません。

 まっとうな市民がそのような破壊的な手段に頼らないのは、誰もがそのようなことをすれば、互いの破壊行為の中で我々全てが貧しくなっていくからです。これはカント的な倫理、黄金律です。皆が情報を私有化した結果を私は嫌悪するからこそ、このようなことは悪いことだということをよく考えてくれるように私はお願いしているのです。特に、自分の創造性が報われたいという欲望は、世の中の一般からその人の創造性の一部あるいは全部を奪うことを正当化するものではありません。

「プログラマは餓死しないだろうか ?」

 誰もがプログラマに強制することはできない、ということをまず答えておきます。たいていの人々は、街角に立ってしかめっつらをしながら、お金を得ているかどうかなど管理することはできません。しかし、結局、街角に立ってしかめっつらをしながら餓死する人生を過ごしたとしてもそれを非難することはできまん。現実には、そうしないでほかのことをするでしょう。

 しかし、これは正しい回答ではありません。質問者の暗黙の仮定を採り入れていないからです。ソフトウェアの所有権がなければプログラマはおそらく収入を得られない、という仮定です。おそらく収入が全く得られないか、得られるかという仮定です。

 プログラマが飢餓しない本当の理由は、プログラミングに対して報酬を得る可能性がまだ残されているからです。これは現在得ているものとは異なります。◆5

 コピーを制限することが、ソフトウェア・ビジネスの基礎になっており、報酬を得る最大の共通手段となっています。カスタマが禁止したり拒否すれば、ソフトウェア・ビジネスは変わり、現在ではほとんど機能していない形態の組織に移行するでしょう。ほとんどがそのような形態になるでしょう。

「人間には自分の作り出したものがどのように使われるかを管理する権利があるのではないか ?」

 「自分のアイデアの利用についての支配権」は、実際には他人の生命についての支配権から成り立っています。そして、それは他人の生存を危うくする方向によく用いられる傾向にあります。

 法律家のように知的所有権についてよく学んだ人は、知的財産には本質的な権利はないと言っています。政府が認めているような仮想的な知的所有権の類は特殊な目的のための特殊な立法行為によって作り出されたものなのです。

 例えば、特許制度は発明家に発明の細部を公開させるために制定されたものです。その目的は発明家個人を保護することではなく、社会を保護することだったのです。その当時、特許に対して 17 年という保護期間は、技術の発展の割合に比べれば短いものでした。特許は単に企業家の間に限られた問題でしたから、ライセンス契約のコストや手間が製造の準備よりも小さな存在として扱っている人々にとって、特許制度はそれほど害を及ぼさなかったし、また、特許のついた製品を使う個人をそれほど妨害することもありませんでした。

 著作権の概念は、ノンフィクション作品の中で著者がほかの著者から長々と引用をよく引き写していた古代には存在しませんでした。この慣行は、著者の作品を部分的にせよなるべく生きながらえさせるのに有用、かつほとんど唯一の方法でした。ですから、著作権制度は明らかに著述業を助けるために作り出された制度でした。この制度が対象とする分野 (書物、これは印刷するだけで安価に複製できます) では、ほとんど害を及ぼすことはないばかりか、本を読む個人を妨害するなどということはありませんでした。

 知的財産に対する権利というものは全て、単に社会によって承認された契約にすぎません。なぜならば、良し悪しは別として、その契約を承認することによって社会全体が利益を得ると考えられたからでした。しかし、どのような特殊な状況下においても我々は問い直さなければなりません。

「このような契約を承認することは本当により良いことなのか ?」

「我々はその人に何をすることを認可していると言えるのだろうか ?」

 今日のプログラムにおいては 100 年前の本の場合とは全く異なっています。プログラムをコピーする最も簡単な方法は、隣から隣へまわすだけであるという事実。プログラムにはソース・コードとオブジェクト・コードがあってそれぞれ違うものだという事実。プログラムは読んだり、楽しんだりするものではなく使うものだという事実。著作権を押し通そうとする人間が、これらの事実を組み合わせて物質的にも精神的にも社会に害を及ぼすような新しい状況を産み出しているのです。ですから、そのような状況の中で、人々は法律が自分にとってよいものかどうかよく考えていかなければなりません。

「競争はものごとを良い方向へ導いていく」

 競争のパラダイムはレースにあります。勝利を得ればさらに速く走ることを助長します。資本主義はこの原理に基づいています。ですから、それを守りにいつでもうまく使えると考えるのは誤りです。つまり資本主義はたいていはうまくいくということを掲げています。もしランナーがなぜ賞を与えられるのかを忘れて、手段を選ばず勝とうとすれば、おかしな戦略 (例えば、ほかのランナーを攻撃する、など) を考え出すかもしれません。ランナーが暴力ざたを起こせば、結局、そのほかのランナーも皆遅くなってしまいます。

 ソフトウェアの所有権と機密が道徳律となれば、ランナーの暴力行為に等しいのです。口に出すのも嘆かわしいですが、ただ 1 人のレフリーは攻撃に反対しているかのように見えますが、単に取り締まるのみです。例えば、10 ヤード走るごとに 1 回、蹴とばしてもいいなどという暴力は、本当は止めさせた方がいいのです。暴力を働こうとした者を罰するべきなのです。

「金銭的な刺激がなくては誰もプログラミングなどしないのではないか ?」

 実際に、多くの人々が金銭的な刺激が全くないとしてもプログラムを書くでしょう。プログラミングはある人々にとって (そのような人はプログラミングに最も向いている場合が多い) 拒否し難い誘惑なのです。例えば、音楽で生活の糧を得る望みがないとしても、プロのミュージシャンがいなくなってしまうことがないのと同じです。

 しかし実際に、この質問は (よく質問されるのですが) 状況を正しく反映していません。プログラマへの支払は少なくなったとしても、なくなることはないでしょう。そこで正しい質問は次のようになります。

「金銭的な刺激が減ってまでもプログラムを書く人はいるか ?」

私の経験から言えば、そういう人はいるでしょう。

 10 年以上もの間、世界中の最も優秀なプログラマが、よそに行けばもらえるはずの給料よりはるかに少ない給料で MIT の AI ラボで働いてきました。彼らは金銭面ではない多くの報奨を得ました。例えば、名誉や評価といったようなものです。また、創造することは彼らには喜びであり、それ自体が報奨でもあったのです。

 そして、彼らの多くは、もっと高い給料でこれまでと同じぐらいに興味深い仕事の話がきたときにはここを去っていきました。

 この事実が示しているのは、人間は富以外の理由でプログラムを書くということ、そして、もっとお金を儲けるチャンスがあれば、それを受け入れるということです。支払の良くない組織は、支払の良いところとの競争では負けてしまいがちですが、支払の良い組織がなくなってしまえば、そんなにひどいことをしているわけではないということです。

「プログラマを本当に必要としているので、そのような隣人を助けないように要求されれば、それに服従しなければならない」◆6

 この類の要求に従わなければならないと思って、本当に、絶望的になってはいけません。「国を守るためには 100 万ドルをかけてもよいが、貢ぎ物には 1 セントも出すな」という原則を思い出して欲しいのです。

「プログラマは何とかして生活の糧を得なければならない」

 短期的に見ればこれは真実です。プログラマがプログラムの使用権を売らなくても生きていける方法はいくらでもあります。これはプログラマとビジネスマンが慣習上、多額のお金を作り出すからであって、それが唯一の生活の糧ではありません。探そうと思えばほかにも方法はたくさん見つかるはずです。ここにいくつかの例をあげてみましょう。

 全てのプログラム開発に対して、ソフトウェア税のような資金を運用することもできます。

 結果として、

 長期的に見れば、プログラムをフリーにすることは、飢餓のない世界---誰もが生活の糧を得るため以外にはきつい労働をする必要のない世界---に向けての一歩になります。人々は、1 週間に 10 時間ほど立法や家族協議、ロボットの修理、小惑星の試堀などの必要な仕事にあてた後、自由に楽しみの得られる活動 (例えば、プログラミング) に専心することができます。そうすれば、プログラミングでお金を稼ぐ必要もなくなるでしょう。

 社会全体で必要とされる仕事の量を、我々は大幅に削減してきました。しかし、生産的な活動が増えるにつれて、それ以外の非生産的な作業も必要となってきているにもかかわらず、そのうちのわずかな時間しか労働者のレジャーに振り替えられていません。これは、官僚主義と競争が引き起こしている闘争心が原因です。ソフトウェア開発の分野では、フリー・ソフトウェアがこういった失費を大幅に削減することができるでしょう。我々は、生産性の技術的な進歩を労働の削減に振り向けるために、是非この活動を行なわなければなりません。


gnu宣言 【脚注】

*1

…Copyright©1985 Richard Stallman. 著作権の表示とこの告知をすべての写しに載せており、しかも何ら変更を加えていない場合にのみ、この GNU 宣言の (あらゆる媒体への) 写しの配布を許可します。修正を加えてはなりません。

*2

(訳注)…ファイル名を途中まで指定するとシステムが残りのファイル名を完全なものにする機能。

◆1

Lisp ベースのウィンドウ・システムはもう考えていないようだ。

◆2

MIT Chaos Net のサポートも考えていないと思う。

*3

(訳注)…Motorola 68000 と National Semiconductor の 16000。

*4

(訳注)…もともと GNU はヌーという動物で、この発音を採用すると GNU system は「ニュー・システム」になり new system と混乱するので「グヌー」と発音する。

*5

(時間経過に伴なう注)…このウィンドウ・システムは完成しなかった。GNU では X Window を採用する予定である。

*6

…誰でもソース・コードをアクセスできるという意味で。

◆3

コミュニティを共同体と呼ぶこともある。

◆4

GNU は教育の機会均等に貢献するわけである。

◆5

プログラマの作業として前述のようなサポートや保守サービスも考えられる。詳細は後述を参照のこと。

◆6

原文説明が足りないので、補足する。「うちの会社ではプログラマが不足しているから、GNU プロジェクトのソフトウェアを書くよりも、うちのソフトウェアを作るように言われれば、それに従わざるを得ない」という意味である。