この翻訳ほんやくは、 2023-05-04 以降いこうおこなわれた 英語えいごのオリジナルばん変更へんこう反映はんえいできていません。

確認かくにんするには、 こちらの変更へんこうらんください。 わたしたちのウェブページの翻訳ほんやく保守ほしゅ情報じょうほうについては、翻訳ほんやく READMEをごらんください。

GNUプロジェクト

最初さいしょのソフトウェア共有きょうゆうコミュニティ

1971ねんMIT人工じんこう知能ちのう研究所けんきゅうじょ(AIラボ)ではたらはじめたとき、わたしはなんねんまえからあったソフトウェア共有きょうゆうコミュニティの一員いちいんになりました。ソフトウェアの共有きょうゆうは、わたしたちのそのコミュニティにかぎられたことではありませんでした。ちょうどレシピの共有きょうゆう料理りょうりおなじくらいふるくからあるのとおなじように、コンピュータとおなじくらいふるくからあったことでした。しかし、わたしたちは、それをほとんどのところよりも、もっと、おこなったのです。

AIラボはITS (Incompatible Timesharing System)とばれるタイムシェアリング・オペレーティング・システムを使つかっていました。これは、研究所けんきゅうじょのスタッフのハッカーたち [1]により、当時とうじおおきなコンピュータのひとつ、DECせいPDP-10よう設計せっけいされ、アセンブリ言語げんごかれていました。このコミュニティの一員いちいんとして、またAIラボのスタッフのシステム・ハッカーとして、このシステムを改善かいぜんしていくことがわたしの仕事しごとでした。

わたしたちは自分じぶんたちのソフトウェアを「自由じゆうソフトウェア」とはんでいませんでした。なぜなら、その用語ようごはまだ存在そんざいしていなかったからです。しかし、それはそういうものでした。大学だいがく会社かいしゃからやってひとがプログラムを移植いしょくして使つかいたいときはいつでも、わたしたちはよろこんでそうさせました。もしだれかがめずらしくて面白おもしろそうなプログラムを使つかっているのをたら、いつだってソースコードをせてくださいとたのめました。そして、それをみ、え、もしくは、その一部いちぶしてあたらしいプログラムにすることができたのです。

コミュニティの崩壊ほうかい

DECしゃがPDP-10シリーズを製造せいぞう中止ちゅうしした1980年代ねんだいはじめ、状況じょうきょうおおきくわってしまいました。60年代ねんだいにはエレガントでパワフルだったそのアーキテクチャは、80年代ねんだい実用じつよう可能かのうになった、よりおおきなアドレス空間くうかんに、自然しぜん拡張かくちょうすることが出来できなかったのです。これはITSを形成けいせいしていたプログラムの大半たいはんがもう時代遅じだいおくれになってしまったということでした。

AIラボ・ハッカー・コミュニティは、すでに、そのまえ崩壊ほうかいしていました。1981ねんにスピン・オフの会社かいしゃSymbolicsがAIラボのほぼすべてのハッカーをいてしまい、人数にんずうったコミュニティはかなくなっていたのです。(スティーブ・レビィちょハッカーズ、にはこれらの出来事できごと全盛期ぜんせいきころのこのコミュニティの姿すがたきとえがかれています。) AIラボが1982ねんあたらしいPDP-10を購入こうにゅうしたとき、管理かんりしゃはITSではなくDECしゃ不自由ふじゆうなタイムシェアリング・システムを使つかうことを決定けっていしました。

VAXや68020のような当時とうじ先進せんしんてきなコンピュータは専用せんようのオペレーティング・システムをそなえていましたが、どれも自由じゆうソフトウェアではありませんでした。つまり、実行じっこう可能かのうなコピーを入手にゅうしゅするためだけでも開示かいじ契約けいやくむす必要ひつようがあったのです。

ということは、コンピュータを使つか最初さいしょ段階だんかいで、まわりのひと手助てだすけしない、と約束やくそくするということでした。協力きょうりょくうコミュニティはきんじられてしまったのです。プロプライエタリなソフトウェアの所有しょゆうしゃによってつくられたルールとは「もしおまえ隣人りんじんかちうなら、おまえ海賊かいぞくだ。変更へんこうくわえたいのなら、われわれにたのんでつくってもらうことだ」というものなのです。

プロプライエタリなソフトウェアの社会しゃかいシステムというかんがえ—ソフトウェアを共有きょうゆうしたり変更へんこうしたりするのはゆるされないとするシステム—ははん社会しゃかいてきであり、倫理りんりはんし、ただ単純たんじゅん間違まちがっているのだというかんがかたに、読者どくしゃ方々かたがたおどろかれるかもしれません。しかし社会しゃかい分断ぶんだん利用りようしゃあしないようにされてしまうことのうえきずかれたシステムについて、なんといいようがあるでしょう。このかんがかたおどろほうは、プロプライエタリなソフトウェアの社会しゃかいシステムをあたえられたものとしてめ、プロプライエタリなソフトウェアのビジネスが提唱ていしょうする用語ようご判断はんだんしているのではないでしょうか。ソフトウェア会社かいしゃはこの問題もんだい見方みかたひとつしかないと人々ひとびとしんじさせるためにながいこと非常ひじょう作業さぎょうかさねてきたのです。

ソフトウェア会社かいしゃが「権利けんりを」「行使こうしする」あるいは「海賊版かいぞくばんめる」とかたるとき、かれらがかたっていることは実際じっさいにはつぎなのです。この言明げんめいしんのメッセージは、かれらが当然とうぜんであるとみなし、あえてくちにしていない前提ぜんてい条件じょうけんほうにあります。つまり、社会しゃかいかれらのことを批判ひはんれるべきだというわけです。ではそのてんについて吟味ぎんみしてみましょう。

ひと前提ぜんていは、ソフトウェア会社かいしゃ自分じぶんたちのソフトウェアについてソフトウェアを所有しょゆうするという議論ぎろん余地よちがない自然しぜんけんゆうしており、したがってそのすべての利用りようしゃ支配しはいする権力けんりょくつということです。(もしこれが自然しぜんけんであれば、それが公衆こうしゅうにどんながいあたえようと、わたしたちは反対はんたいできません。) 面白おもしろいことに、合衆国がっしゅうこく憲法けんぽうほう伝統でんとうではこの見方みかた否定ひていされています。著作ちょさくけん自然しぜんけんではなく、利用りようしゃのコピーする自然しぜんけん制限せいげんする、人工じんこうてき政府せいふいる独占どくせんなのです。

もうひとつのかたられざる前提ぜんてい条件じょうけんとは、ソフトウェアにかんして唯一ゆいいつ重要じゅうようなことはそれがどんな作業さぎょうをさせてくれるかであって、どんな社会しゃかいらすことができるかについてわれわれコンピュータの利用りようしゃにかけるべきではないというものです。

さん番目ばんめ前提ぜんてい条件じょうけんは、会社かいしゃにプログラムの利用りようしゃ支配しはいするちからをさしださなければ、わたしたちには使つかえるソフトウェアははいらない(あるいはプログラムにあれやこれやの特定とくてい作業さぎょうをさせることがまるっきり不可能ふかのうだ)ということです。この仮定かていはまことしやかにこえました、自由じゆうソフトウェア運動うんどうくさりわせることなく、豊富ほうふ便利べんりなソフトウェアをつくりだせることを実際じっさいにやってみせるまえは。

これらの前提ぜんてい条件じょうけん拒否きょひして、それぞれの問題もんだい利用りようしゃだいいちかんがえて普通ふつう常識じょうしきてき道徳どうとくらしわせて判断はんだんするならば、まったべつ結論けつろんみちびされます。コンピュータの利用りようしゃ自分じぶんのニーズにわせてプログラムを変更へんこうし、ソフトウェアを共有きょうゆうする自由じゆうがなければなりません。なぜなら、他人たにん手助てだすけをすることは社会しゃかい基本きほんなのですから。

この結論けつろん裏付うらづける論旨ろんしについて十分じゅうぶんべる余地よちはここにはありません。くわしくは、こちらのウェブページ「ソフトウェアに所有しょゆうしゃがいてはならない理由りゆう」と「自由じゆうソフトウェアはいまやさらに重要じゅうよう」を参照さんしょうしてください。

冷厳れいげんなる道徳どうとく選択せんたく

コミュニティがなくなってしまい、以前いぜんおなじように活動かつどうつづけていくのは不可能ふかのうになってしまいました。そのわりに、わたしはきびしい道徳どうとくてき選択せんたく直面ちょくめんすることになったのです。

容易ようい選択せんたくは、プロプライエタリなソフトウェアの世界せかい参加さんかして、開示かいじ契約けいやくむすんで仲間なかまのハッカーたちを手助てだすけしないと約束やくそくすることでした。その場合ばあい、おそらく、わたしは開示かいじ契約けいやくのソフトウェアも開発かいはつし、したがって、ひとたちにも自分じぶんたちの仲間なかま裏切うらぎるよう圧力あつりょくをかけるようになっていたでしょう。

このやりかたでおかねもうけることも出来できたでしょう。そしておそらくコードをくことをたのしんだかもしれません。しかしキャリアのわりには、人々ひとびとへだてるかべきずいてきたなんねんもの日々ひびおもかえし、自分じぶん人生じんせい世界せかいをよりわるいものにするためについやしてきたとかんじるようになるのはかっていました。

わたしにはすで開示かいじ契約けいやく当事とうじしゃになった経験けいけんがありました。あるひとがわたしとMITのAIラボにわたしたちのプリンタを制御せいぎょするプログラムのソースコードをわたすことを拒否きょひしたときのことです。(このプログラムにはある特定とくてい機能きのうがなかったので、プリンタを使つかうのにはひどくいらいらさせられていました。) ですから、開示かいじ契約けいやくにはつみはない、と自分じぶん自身じしんうことはできませんでした。こうがわたしたちと共有きょうゆううことを拒否きょひしたときには本当ほんとういかりました。わたしはかえって、みんなをおなにあわせることなどできません。

もうひとつの選択肢せんたくしは、まっすぐではあるけれどもうれしくないもので、コンピュータの世界せかいからることです。そのやりかたではわたしのスキルは間違まちがった使つかわれかたはしませんが、無駄むだになってしまうことにはわりありません。わたし自身じしんがコンピュータの利用りようしゃ分断ぶんだんしたり制限せいげんしたりするあやまちをおかすことはありませんが、それでもそういうことはこるでしょう。

そこでわたしはプログラマがただしいことをできるようになるための方法ほうほうさがしました。自分じぶんけるプログラムはあるだろうか、それでもう一度いちどコミュニティをつくることができるようになるだろうか、と自分じぶんいてみました。

こたえはあきらかでした。最初さいしょ必要ひつようだったのはオペレーティング・システムです。コンピュータを使つかうには重要じゅうようなソフトウェアです。オペレーティング・システムがあれば、たくさんのことが出来できるようになります。なければ、コンピュータをはしらせることがまったく出来できません。自由じゆうなオペレーティング・システムがあれば、わたしたちはもう一度いちどハッカーたちが協力きょうりょくえる—そしてだれでも勧誘かんゆうできるようなコミュニティをつことが出来できるのです。そうすれば自分じぶん友人ゆうじんたちをこばむたくらみからはじめることなく、だれもがコンピュータを使つかうことが出来できるようになるでしょう。

オペレーティング・システムの開発かいはつしゃとして、わたしにはこの仕事しごと相応ふさわしいスキルがありました。だから、成功せいこう見込みこみがあるわけではなかったのですが、わたしは自分じぶんがこの仕事しごとをするようえらばれたのだと気付きづいたのです。移植いしょくせいたかくなるだろうという理由りゆうから、システムはUnixと互換ごかんせいのあるものにすることをえらびました。それに、そうすれば Unixの利用りようしゃ容易よういえることができるでしょう。GNUという名前なまえはハッカーの伝統でんとうしたがって、“GNU's Not Unix”(GNUはUnixではない)の再帰さいき頭字かしらじとしてえらばれました。これはかたgいち音節おんせつ発音はつおんされます。

オペレーティング・システムというのはせいぜいのプログラムを実行じっこうするのにるだけのカーネルだけを意味いみするわけではありません。1970年代ねんだいには、オペレーティング・システムの相応ふさわしいものであれば、どれにもコマンド・プロセッサやアセンブラ、コンパイラ、インタプリタ、テキストエディタ、メイラ、そしてもっとたくさんのものがふくまれていました。ITSでも、Multicsでも、VMSでも、Unixでもです。GNUのオペレーティング・システムにもそれらはふくまれるようにするつもりでした。

のちになってヒレル [2]のものとされるつぎのような言葉ことばりました。

わたしが自分じぶんのために存在そんざいするのでなければ、いったいだれがわたしのために存在そんざいする?
わたしが自分じぶんのためだけに存在そんざいするとすれば、わたしはいったいなにものだ?
いまでなければ、いったいいつ?

GNUプロジェクトをはじめようという決意けついおなじような精神せいしんもとづいてのことでした。

自由じゆうとしてのフリー

自由じゆうソフトウェアの英語えいご“free software”は、ときに誤解ごかいみます。値段ねだんとは関係かんけいないのです。自由じゆうについてなのです。ですから、ここで自由じゆうソフトウェアの定義ていぎべます。

ある特定とくてい利用りようしゃであるあなたにとって、あるプログラムが自由じゆうソフトウェアであるとは、

  • そのプログラムをあなたのほっするままにどんな目的もくてきのためにでも実行じっこうする自由じゆうがあること。
  • あなたの必要ひつようおうじて、そのプログラムを変更へんこうする自由じゆうがあること。(この自由じゆう実際じっさい実効じっこうてきにするために、ソースコードへのアクセスがあることが必須ひっすです。ソースコードなしにあるプログラムに変更へんこうくわえることは、大変たいへん困難こんなんともなうからです。)
  • 無償むしょうあるいは有償ゆうしょうのどちらでも、コピーをさい配布はいふする自由じゆうがあること。
  • そのプログラムの変更へんこうしたはん配布はいふする自由じゆうがあり、コミュニティがあなたの改善かいぜんによる利益りえき享受きょうじゅできること。

「フリー」は自由じゆうのことをいうのであって、値段ねだんのことではありません。ですから、コピーを販売はんばいすることと自由じゆうソフトウェアであることに矛盾むじゅんまったくありません。事実じじつ、コピーを販売はんばいする自由じゆう重要じゅうようです。というのも自由じゆうソフトウェアのコレクションのCD-ROMを販売はんばいするのはコミュニティに大切たいせつなことであり、また、それを販売はんばいすることは自由じゆうソフトウェア開発かいはつのための資金しきん調達ちょうたつをする重要じゅうよう手段しゅだんだからです。それゆえに、このなか収録しゅうろくすることができないプログラムは自由じゆうソフトウェアではありません。

「フリー」というかたり曖昧あいまいさのせいで、人々ひとびとはそれにわるべつのものをさがしてきました。しかし、だれもぴったりくるようなべつわりをつけられなかったのです。英語えいごにはのどの言語げんごよりもたくさんの言葉ことばやニュアンスがありますが、しかし「フリー」を自由じゆうあらわすシンプルで明白めいはく単語たんごがありません—“unfettered”(足枷あしかせのない、自由じゆうな)というかたり意味いみうえもっとちかいところにありますが。“liberated”、“freedom”、“open”のような候補こうほにも間違まちがった意味いみやその不都合ふつごうがありました。

GNUソフトウェアとGNUシステム

システム全体ぜんたい開発かいはつするというのは巨大きょだいなプロジェクトです。それを実現じつげん可能かのうなところにもっていくため、わたしは既存きそん自由じゆうソフトウェアを可能かのうであればなんでも採用さいようし、使用しようすることにしました。たとえば、開始かいし当初とうしょにTeXを主要しゅようなテキスト・フォーマット・ツールとして採用さいようするにめました。そのすうねんには、GNUけにべつのウィンドウ・システムをつくるよりもXウィンドウ・システムを使つかうことにめました。

この決定けっていおなじようなそのほかの決定けっていにより、GNUシステムはぜんGNUソフトウェアのコレクションとおなじものではなくなりました。GNUシステムにはGNUソフトウェア以外いがいのプログラムもふくまれます。それらのプログラムはひとたちによってそれぞれの目的もくてきおうじて開発かいはつされますが、自由じゆうソフトウェアなのでわたしたちも使つかうことが出来できます。

プロジェクトの開始かいし

1984ねんいちがつにわたしはMITをめてGNUソフトウェアをはじめました。MITがGNUを自由じゆうソフトウェアとして配布はいふするのをさまたげることができないようにするためにMITを必要ひつようがあったのです。もしわたしがスタッフとしてのこっていたなら、MITはその仕事しごと所有しょゆう主張しゅちょうし、自分じぶんたちの配布はいふ条件じょうけんけたり、プロプライエタリなソフトウェアとしてしまうことさえ可能かのうだったでしょう。わたしには自分じぶんのやってきた大量たいりょう仕事しごとをむざむざ無駄むだになるにまかせるつもりはありませんでした。あたらしいソフトウェア共有きょうゆうのコミュニティをつくるのが目的もくてきなのですから。

しかしながら、当時とうじMITのAIラボをひきいていたウィンストン教授きょうじゅのご好意こういにより、研究所けんきゅうじょ施設しせつ使つかつづけさせていただくことができました。

最初さいしょいち

GNUプロジェクトをはじめるちょっとまえ、VUCKというでもられる自由じゆう大学だいがくコンパイラ・キット(オランダで「自由じゆう」はVはじまります)のことをきました。これはCやPascalをふく複数ふくすう言語げんごあつかえるようつくられたコンパイラで、複数ふくすうのターゲトマシンをサポートするとのことでした。わたしは作者さくしゃにGNUでこれを使つかえないかどうかと質問しつもんおくりました。

大学だいがく自由じゆうだがコンパイラそうではない、とべたあざけるような返事へんじかれおくってきました。そこで、わたしはGNUプロジェクトの最初さいしょのプログラムは複数ふくすう言語げんご対応たいおうした、複数ふくすうのプラットフォームけのコンパイラにめたのです。

自分じぶんいちからコンパイラをげる手間てまはぶくため、Pastelというコンパイラのソースコードをれました。これはローレンス・リバモア研究所けんきゅうじょ開発かいはつされた複数ふくすうプラットフォーム対応たいおうのコンパイラです。拡張かくちょうされたPascalをサポートし、またその言語げんごかれたもので、システム・プログラミングのために設計せっけいされたものでした。わたしはC言語げんごのフロントエンドを追加ついかし、モトローラ68000コンピュータのための移植いしょくはじめました。しかしコンパイラがスタック空間くうかんなんメガバイトも必要ひつようとするのに、利用りようできる68000 Unixシステムでは64kしかないかもしれないことがかってあきらめることになりました。

Pastelコンパイラは入力にゅうりょくファイル全体ぜんたい構文こうぶん解析かいせきし、構文こうぶん全体ぜんたい一連いちれんの「命令めいれい」に変換へんかんし、それから出力しゅつりょくファイル全体ぜんたい生成せいせいすることがかりました。メモリを一切いっさい解放かいほうせずにです。ここで、わたしはあたらしいコンパイラをいちからつくらなければならないだろうという結論けつろんたっしたのです。そのコンパイラはいまGCCとしてられています。Pastelからのものはなに使用しようされておらず、自分じぶんいたCのフロントエンドをどうにか適応てきおうして使つかいました。しかしそれはすうねんのことです。まず最初さいしょに、わたしはGNU Emacsの作業さぎょうりかかりました。

GNU Emacs

GNU Emacsには1984ねんの9がつりかかり、1985ねんはやくには使つかえるようになりました。これでUnixシステムを編集へんしゅう作業さぎょう使つかうことが出来できます。viやedの修得しゅうとくには興味きょうみがなかったので、それまで編集へんしゅうにはべつ種類しゅるいのマシンを使つかっていたのです。

この時点じてんから、みんなが GNUEmacsをほしがるようになりました。そのため、どうやってこれを配布はいふするかの問題もんだい発生はっせいしたのです。もちろん、わたしはこれを自分じぶん使つかっていたMITの匿名とくめいftpサーバにきました。(このコンピュータ、prep.ai.mit.eduは、こうして主要しゅようなGNU ftp配布はいふサイトになったのです。すうねんにその役目やくめえると、わたしたちはあたらしいftpサーバに名前なまえ移転いてんさせました。) しかし、当時とうじ興味きょうみってくれたおおくのひとたちがインターネット環境かんきょうにはおらず、ftp経由けいゆでコピーをにすることが出来できませんでした。そこで問題もんだいは、このひとたちにはなにえばいいか、でした。

「ネットにつながっていてコピーしてくれる友達ともだちつけてください」とつたえることも出来できたでしょう。あるいはオリジナルのPDP-10 Emacsでやったことを自分じぶんですることも可能かのうでした。かれらに「テープとSASE(返信へんしんよう住所じゅうしょ記入きにゅう切手きってづけ封筒ふうとう)おくってくれれば、Emacsをれておくかえします」とうのです。しかし、わたしには仕事しごとがなく、自由じゆうソフトウェアからおかね方法ほうほうさがしていました。そこで、150ドルでテープを発送はっそうしますと発表はっぴょうしました。このやりかたでわたしは自由じゆうソフトウェア配布はいふビジネスをはじめました。GNU/Linuxシステム・ディストリビューション全体ぜんたい配布はいふしている今日きょう会社かいしゃ先駆せんくしゃとなったわけです。

プログラムはすべての利用りようしゃ自由じゆうなのか?

あるプログラムが作者さくしゃはなれたとき自由じゆうソフトウェアであったとしても、そのコピーをっているすべてのひとにとって自由じゆうソフトウェアであるとはかぎりません。たとえば、パブリック・ドメイン・ソフトウェア(著作ちょさくけん主張しゅちょうされないソフトウェア)は自由じゆうソフトウェアですが、だれでもそのプロプライエタリなはんつくることが出来できます。おなじく、おおくの自由じゆうソフトウェアには著作ちょさくけん主張しゅちょうされますが、単純たんじゅん容認ようにんのライセンスのもとで配布はいふされています。これは、プロプライエタリな変更へんこうばんゆるします。

この問題もんだい典型てんけいてきれいがXウィンドウ・システムです。MITで開発かいはつされ、容認ようにんのライセンスで自由じゆうソフトウェアとしてリリースされましたが、すぐにおおくのコンピュータ関連かんれん会社かいしゃによって採用さいようされました。かれらはXを自分じぶんたちのプロプライエタリなUnixシステムにバイナリ形式けいしきのみでみ、おな開示かいじ契約けいやくによっておおってしまったのです。これらのXのコピーはUnixと同様どうようにもはや自由じゆうソフトウェアではなくなりました。

Xウィンドウ・システムの開発かいはつしゃたちはこれを問題もんだいとはかんがえていませでんした。かれらはこうなることを期待きたいし、それを意図いとしていたのです。かれらの目標もくひょう自由じゆうではなく、「おおくの利用りようしゃ獲得かくとくする」という意味いみでただ「成功せいこうする」ことでした。かれらは利用りようしゃ自由じゆうることなどどうでもよくて、大勢おおぜいになりさえすればそれでよかったのです。

これによって、「このプログラムは自由じゆうなのか。」といういにたいして、自由じゆうりょうはかふたつのことなるやりかたがそれぞれべつこたえをしてしまうような逆説ぎゃくせつてき状況じょうきょうまれました。MITのリリースの配布はいふ条件じょうけんあたえる自由じゆうしたがって判断はんだんすれば、Xは自由じゆうソフトウェアとえたでしょう。しかしXの平均へいきんてき利用りようしゃ自由じゆう調しらべれば、これはプロプライエタリなソフトウェアとわざるをませんでした。ほとんどのXの利用りようしゃ自由じゆうはんではなく、Unixシステムと一緒いっしょになったプロプライエタリなはんはしらせていたからです。

コピーレフトとGNU GPL

GNUの目標もくひょう利用りようしゃ自由じゆうあたえることで、たん人気にんきることではありません。ですから、わたしたちはGNUのソフトウェアがプロプライエタリなソフトウェアにわることをふせ配布はいふ条件じょうけん使用しようする必要ひつようがありました。わたしたちが使つかっているこの方法ほうほうは「コピーレフト」 [3]ばれています。

コピーレフトは著作ちょさくけんほう利用りようしてはいますが、それをひっくりかえして通常つうじょうとは反対はんたい目的もくてきのために使つかっています。つまり、プログラムを制限せいげんするための手段しゅだんとしてではなく、プログラムを自由じゆうのままにしておく手段しゅだんとなるように。

コピーレフトの中心ちゅうしんてきかんがかたは、すべてのひとにそのプログラムを実行じっこうし、コピーし、変更へんこうし、変更へんこうしたはんさい配布はいふする許可きょかあたえ、制限せいげん事項じこうくわえることには許可きょかあたえるないというものです。したがって、それが「自由じゆうソフトウェア」であると決定けっていするような大切たいせつ自由じゆうというものは、そのコピーをっているひとたちすべてに保証ほしょうされる、不可侵ふかしん権利けんりになるのです。

コピーレフトを効果こうかてきなものにするために、変更へんこうされたはん自由じゆうでなければなりません。これにより、わたしたちのものをもとにした作品さくひん公開こうかいされた場合ばあい、それがわたしたちのコミュニティに入手にゅうしゅ可能かのうであるよう保証ほしょうされます。プログラマとしての仕事しごとっているひとがボランティアでGNUソフトウェアを改善かいぜんしたとき、それはコピーレフトなので雇用こようぬしに「我々われわれのプロプライエタリなはんつくるのに使用しようするから変更へんこうした部分ぶぶん共有きょうゆうしてはいけない」とはわせないようになっています。

そのプログラムの利用りようしゃすべての自由じゆう保証ほしょうしたいのであれば、変更へんこうたいして、自由じゆうでなければならないとの要求ようきゅう不可欠ふかけつになります。Xウィンドウ・システムを私物しぶつする会社かいしゃはたいてい自分じぶんたちのシステムやハードウェアに移植いしょくするさいなんらかの変更へんこうくわえています。これらの変更へんこうはXのだい部分ぶぶんくらべればちいさなものではあるでしょうが、だからといってるにらないものではありません。もし変更へんこうくわえることが利用りようしゃ自由じゆう否定ひていするためのいいわけになってしまうなら、そのいいわけにつけこむのはだれにとっても簡単かんたんなことでしょう。

これと関連かんれんして、自由じゆうのプログラムを不自由ふじゆうなのコードと結合けつごうさせることの問題もんだいがあります。そのようなわせは不可避ふかひてき不自由ふじゆうとなってしまいます。不自由ふじゆう部分ぶぶんにたとえどんなものであっても自由じゆうけているなら、全体ぜんたいもまたおなじなのです。そのようなわせをみとめてしまえば、ふねしずめるには十分じゅうぶんあなけてしまうことになりかねません。ゆえに、コピーレフトにかなら要求ようきゅうされるのはこのようなあなせんをすることです。コピーレフトのプログラムに付加ふかされる、あるいはわされるのがなにであれ、結合けつごうされたはんもまた自由じゆうでコピーレフトでなければならないのです。

コピーレフトの特定とくてい実装じっそうでわたしたちがほとんどのGNUソフトウェアにもちいているのがGNU一般いっぱん公衆こうしゅうライセンス、りゃくしてGNU GPLです。また特定とくてい状況じょうきょう使用しようする別種べっしゅのコピーレフトもあります。GNUマニュアルもコピーレフトされてますが、マニュアルに複雑ふくざつなGNU GPLは必要ひつようないので、もっと簡潔かんけつなコピーレフトを使つかっています。 [4]

フリーソフトウェアファウンデーション

Emacsを使つかうことに関心かんしんあつまってくるにしたがって、GNUプロジェクトに参加さんかするひとえてきました。そこでわたしたちはそろそろ資金しきん調達ちょうたつ方法ほうほう再考さいこうしてみようとめました。そして1985ねん自由じゆうソフトウェア開発かいはつのためのぜい控除こうじょ対象たいしょうとなる福祉ふくし団体だんたいフリーソフトウェアファウンデーション(FSF)を創設そうせつしたのです。FSFはEmacsのテープ配布はいふビジネスもぎ、のちにはこれに(GNUとGNUの両方りょうほうの)自由じゆうソフトウェアをテープにくわえ、さらには自由じゆうのマニュアルも販売はんばいするなど拡大かくだいしていきます。

かつて、FSFの収入しゅうにゅう大半たいはんは、自由じゆうソフトウェアのコピーやその関連かんれんサービスの販売はんばい(ソースコードのCD-ROMやバイナリのCD-ROM、かっこうよく印刷いんさつしたマニュアル、すべさい配布はいふ変更へんこう自由じゆうです)、そして豪華ごうかばんディストリビューション(顧客こきゃく選択せんたくしたプラットフォームけのソフトウェアのコレクション全体ぜんたいをビルドしたもの)からたものでした。今日きょうも、FSFはマニュアルやそののグッズの販売はんばいをしていますが、おおくの資金しきん会員かいいん会費かいひからています。あなたも、こちらfsf.orgからFSFに参加さんかできます。

フリーソフトウェアファウンデーションの職員しょくいんおおくのGNUソフトウェア・パッケージをき、またその保守ほしゅをしてきました。特記とっきすべきはCライブラリとシェルでしょう。GNU CライブラリはGNU/LinuxじょうはしるどのプログラムもLinuxとのやりりに使用しようしています。これはフリーソフトウェアファウンデーションのスタッフ、ローランド・マクグラスによって開発かいはつされました。大半たいはんのGNU/Linuxシステムで使つかわれているシェルがBASH、Bourne Again Shell [5]で、FSFの職員しょくいんであるブライアン・フォックスによって開発かいはつされました。

GNUプロジェクトはツールや開発かいはつ環境かんきょうまるものではないので、わたしたちはこれらのプログラムの開発かいはつ資金しきん援助えんじょしました。わたしたちの目標もくひょう完全かんぜんなオペレーティング・システムであり、これらのプログラムは目標もくひょう達成たっせいのために必要ひつようなものだったからです。

自由じゆうソフトウェアのサポート

自由じゆうソフトウェアの理念りねん世間せけんひろがる特定とくていのビジネス慣行かんこう否定ひていしてはいますが、ビジネスそのものに反対はんたいしているわけではありません。ビジネスが利用りようしゃ自由じゆう尊重そんちょうするなら、わたしたちはその成功せいこうねがっています。

Emacsのコピーを販売はんばいすることは、自由じゆうソフトウェアのビジネスのいちれい実際じっさいしめしています。FSFがこのビジネスをいだとき、わたしは生活せいかつのためにべつ収入しゅうにゅうみち必要ひつようとしました。わたしがつけたのは、自分じぶん開発かいはつした自由じゆうソフトウェアに関連かんれんしたサービスをることです。これにはGNU EmacsのプログラミングやGCCのカスタマイズの方法ほうほうといった題目だいもくおしえることや、たいていの場合ばあいはGCCをのプラットフォームに移植いしょくするものでしたが、ソフトウェア開発かいはつがありました。

今日きょうではこれらの自由じゆうソフトウェア・ビジネスはどれもおおくの会社かいしゃによって実践じっせんされています。CD-ROMで自由じゆうソフトウェアのコレクションを配布はいふするところもあれば、利用りようしゃ疑問ぎもんこたえたり、バグを修正しゅうせいしたり、あたらしく主要しゅよう機能きのうくわえたりするなどさまざまなレベルにわたるサポートを提供ていきょうするところもあります。また、あらたな自由じゆうソフトウェア製品せいひん市場いちばおくりだすことに基礎きそ自由じゆうソフトウェア会社かいしゃあらわれるのをにするようになってさえいるのです。

しかし、をつけてください。おおくの会社かいしゃが「オープンソース」という用語ようごで、実際じっさいには自由じゆうソフトウェアと一緒いっしょうご不自由ふじゆうなソフトウェアに基礎きそくビジネスを展開てんかいしています。これらは自由じゆうソフトウェア会社かいしゃではありません。自分じぶんたちの製品せいひん利用りようしゃ自由じゆうからはなそうとするプロプライエタリなソフトウェア会社かいしゃなのです。それを「付加ふか価値かち」とんではいますが、それはかれらがわたしたちにえらんでほしいとのぞんでいる価値かち反映はんえいしているにぎません。つまり、便利べんりさは自由じゆうまさるという価値かちです。もし自由じゆうがもっと大事だいじなものだとするなら、わたしたちはそれらを「自由じゆうらす」製品せいひんぶべきでしょう。

技術ぎじゅつてき目標もくひょう

GNUのだいいち目標もくひょう自由じゆうソフトウェアであることです。たとえGNUには技術ぎじゅつてきにUnixをしのぐところがまったくなかったとしても、利用りようしゃ協力きょうりょくうのをみとめるという社会しゃかいてき優位ゆういせいがあり、利用りようしゃ自由じゆう尊重そんちょうするという倫理りんりてき優位ゆういせいがあります。

しかし、よくられたすぐれた慣行かんこう標準ひょうじゅん作品さくひん適用てきようするのは自然しぜんなことでしょう。たとえば、恣意しいてき固定こていされたサイズ制限せいげんけてデータ構造こうぞう動的どうてきてること、意味いみがあるならばどこでも、可能かのうなすべての8ビット・コードをあつかうこと、です。

それにくわえ、わたしたちは16ビットのマシンをサポートしないことにめ(GNUのシステムの完成かんせいまでに32ビットのマシンが普通ふつうになっているだろうというのはあきらかでした)、Unixのちいさいメモリサイズへの注意ちゅうい無視むししました。また、1メガバイトをえないかぎりはメモリの使用しようりょうらそうとつとめるのもやめました。おおきなファイルをあつかうことがそれほど重要じゅうようでもないプログラムでは、プログラマには入力にゅうりょくされたファイル全部ぜんぶをコアにして、それからI/Oをにする必要ひつようなしに中身なかみをスキャンするようにすすめました。

これらの決定けっていにより、おおくのGNUのプログラムが信頼しんらいせいやスピードのめんでUnixの相当そうとうひんえることが可能かのうになりました。

寄贈きぞうされたコンピュータ

GNUプロジェクトの評判ひょうばんたかまるにつれ、プロジェクトにUnixがはしるマシンを寄付きふしたいともうんでくれるひとたちがあらわれるようになりました。これらは大変たいへん役立やくだちました。というのも、GNUのコンポーネントを開発かいはつするもっとも簡単かんたん方法ほうほうはそれをUnixじょう開発かいはつし、そのシステムのコンポーネントをひとつひとつえていくことだからです。

Unixはかつて(いまもそうですが)プロプライエタリなソフトウェアであり、GNUプロジェクトの理念りねんではプロプライエタリなソフトウェアは使つかってはならないことになっています。しかし、自己じこ防衛ぼうえいのための暴力ぼうりょく正当せいとうとされるおな論法ろんぽうで、ひとたちがプロプライエタリなパッケージを使つかうことをめるのを手助てだすけする自由じゆう代替だいたいぶつ開発かいはつするためにそれが重要じゅうよう役割やくわりたす場合ばあいは、プロプライエタリなパッケージを使つかうのは正当せいとう行為こういだという結論けつろんに、わたしはたっしたのです。

しかしこれは必要ひつようあくであるにしても、あくであることにはちがいありません。今日きょうわたしたちはもうUnixのコピーはっていません。なぜなら、自由じゆうなオペレーティング・システムにえてしまったからです。もしマシンのオペレーティング・システムを交換こうかんすることができないのならば、わたしたちはむしろマシンのほうえるでしょう。

GNUタスクリスト

GNUプロジェクトが進行しんこうし、つかったり、開発かいはつされたりしたシステム・コンポーネントのかずえるにしたがって、のこされた間隙かんげきのリストをつくったほう便利べんりだということになっていきました。わたしたちはけている部分ぶぶんつくってくれる開発かいはつしゃやとうのにこれを使つかっていました。このリストは GNUタスクリストというられるようになり、わたしたちはけているUnixのコンポーネントだけでなく、しん完成かんせいされたシステムにそなわっているべきだとかんがえられるそののさまざまなソフトウェアやドキュメンテーションのプロジェクトをくわえてリストにしていきました。

最近さいきんでは [6]少数しょうすうのそれほど重要じゅうようでないものをのぞけばGNUタスクリストにはUnixのコンポーネントはほとんどのこっていません。ですが、いわゆる「アプリケーション」のプロジェクトは目白押めじろおしです。それなりのかず利用りようしゃにとって魅力みりょくのあるものなら、どんなプログラムもオペレーティング・システムにくわえると便利べんりなものであるわけです。

ゲームもまたタスクリストにふくまれており、しかも最初さいしょころからずっとそうでした。Unixにはゲームがはいっていましたから、GNUにも当然とうぜんそうでなければなりません。しかしゲームに互換ごかんせいはそれほど問題もんだいにならないので、Unixにあるゲームのリストにしたがうことはしませんでした。そのかわり、利用りようしゃよろこばれそうな様々さまざま種類しゅるいのゲームをリストしたのです。

GNU劣等れっとうGPL

GNU CライブラリはGNU劣等れっとう一般いっぱん公衆こうしゅうライセンスという特別とくべつなコピーレフトを使つかっています [7]。これはプロプライエタリなソフトウェアにライブラリへのリンクを許可きょかするものです。なぜ例外れいがいみとめたのでしょうか?

原則げんそく問題もんだいではありません。プロプライエタリなソフトウェアの製品せいひんに、わたしたちのコードをふく資格しかくがあるとする原則げんそくはありません。(どうしてわたしたちと共有きょうゆうすることを拒否きょひしたうえっているプロジェクトにすのでしょう?) LGPLをCライブラリあるいはそののライブラリに適用てきようするのは、戦略せんりゃくじょう問題もんだいなのです。

Cライブラリはこれといって限定げんていされずにいろいろな仕事しごとをこなすもので、どのプロプライエタリなシステムやコンパイラにもCライブラリは付属ふぞくしています。したがって、わたしたちのCライブラリを自由じゆうソフトウェアでしか使用しよう出来できないようにしても、自由じゆうソフトウェアの有利ゆうりになることがありません。おそらく、そんなことをしてもわたしたちのライブラリのほう使つかうのにあしまれるようになるだけでしょう。

ひとつのシステムだけは例外れいがいです。GNUシステム(GNU/Linuxをふくむ)じょうでは、GNU Cライブラリが唯一ゆいいつのC ライブラリです。GNU Cライブラリの配布はいふかんする条件じょうけんは、GNUシステムけにプロプライエタリなプログラムをコンパイルすることを可能かのうにするかどうかめることです。GNUシステムじょうにプロプライエタリなアプリケーションをみとめる倫理りんりてき理由りゆうなにもありませんが、戦略せんりゃくというめんからると、これをみとめなければ自由じゆうなアプリケーションの開発かいはつすすめるよりもGNUシステムを使つかうのを躊躇ちゅうちょさせてしまうことのほうおおいとおもわれるのです。これが劣等れっとうGPLをCライブラリに使つかうのが戦略せんりゃくじょうよいという理由りゆうです。

のライブラリにはその都度つど状況じょうきょうまえて戦略せんりゃくてき決定けっていをする必要ひつようがあります。あるライブラリがある特定とくてい種類しゅるいのプログラムをくのに便利べんり特別とくべつ役割やくわりたす場合ばあい、GPLのしたでリリースして自由じゆうなプログラムに用途ようと限定げんていしてプロプライエタリなソフトウェアにたいする優位ゆういせいあたえるのも、自由じゆうソフトウェア開発かいはつしゃ手助てだすけするひとつの方法ほうほうです。

BASHけのコマンドライン編集へんしゅうのために開発かいはつされたライブラリ、GNU Readlineをれいかんがえてみましょう。Readlineは劣等れっとうGPLではなく通常つうじょうのGPLのもと、リリースされています。このためReadlineが使つかわれるかずったかもしれませんが、それはわたしたちにとって損害そんがいでもなんでもありません。そうしているあいだに、Readlineを使つかえるようにと、すくなくともひとつの便利べんりなアプリケーションが自由じゆうソフトウェアになりました。それこそがコミュニティにとってしん利益りえきです。

プロプライエタリなソフトウェアの開発かいはつしゃ資金しきんめん優位ゆういにあり、自由じゆうソフトウェアの開発かいはつしゃたがいに優位ゆういせいあた必要ひつようがあります。いつのか、プロプライエタリなソフトウェアには同等どうとうひんがないような、おおきなGPLのライブラリのコレクションをにして、あたらしい自由じゆうソフトウェアのビルディング・ブロックとして使つかえる便利べんりなモジュールを提供ていきょうし、さらなる自由じゆうソフトウェアの開発かいはつおおきな優位ゆういせいあたえてくれる、そうなればいいなとねがっています。

かゆいところをく?

エリック・レイモンドは「ソフトウェアのいい仕事しごとはいつも開発かいはつしゃ自分じぶん個人こじんてきかゆみをくことからはじまるものだ」とっています。たしかにそういうこともあるでしょう。しかし、GNUソフトウェアの中核ちゅうかくをなすようなだい部分ぶぶんは、完全かんぜん自由じゆうなオペレーティング・システムをつくるために開発かいはつされたのです。ヴィジョンと計画けいかくによってまれたのであって、衝動しょうどうからではありません。

たとえば、わたしたちはGNU Cライブラリを開発かいはつしましたが、それはUnixライクなシステムにはCライブラリが必要ひつようだったからです。BASHはUnixライクなシステムにはシェルが必要ひつようだから、GNU tarは、それがUnixライクなシステムに必要ひつようだからです。わたし自身じしんのプログラムにもおなじことがいえます。GNU Cコンパイラ、GNU Emacs、GDB そしてGNU Makeがそうです。

GNUプログラムにはわたしたちの自由じゆうたいする特定とくてい脅威きょうい対処たいしょするために開発かいはつされたものもあります。すなわち、わたしたちは、gzipをCompressプログラムをえるために開発かいはつしました。それはCompressがLZW特許とっきょのせいでもうコミュニティのものではなくなってしまったからです。また、わたしたちはLessTifを開発かいはつしてくれるひとたちをつけ、さらに最近さいきんではある特定とくていのプロプライエタリなライブラリによってこった問題もんだい(下記かき参照さんしょう)に対応たいおうしてGNOMEとHarmonyを開始かいししました。また、評判ひょうばんがよい不自由ふじゆう暗号あんごうソフトウェアの代替だいたいとしてGNU Privacy Guardを開発かいはつしています。なぜなら、利用りようしゃはプライバシと自由じゆうとのあいだ選択せんたくせまられるべきではないからです。

もちろん、これらのプログラムをいているひとたちはその仕事しごと興味きょうみつようになりましたし、おおくの機能きのう様々さまざまひとたちによってそれぞれのニーズや関心かんしんによってくわえられました。しかし、そのプログラムが存在そんざいする理由りゆうはそれだけではないのです。

予想よそうえた発展はってん

GNUプロジェクトの当初とうしょは、GNUシステム全部ぜんぶつくげ、それら全体ぜんたいをリリースするとかんがえていました。しかし実際じっさいにはそうはなりませんでした。

GNUシステムのかくコンポーネントはUnixシステムじょう実装じっそうされたので、完全かんぜんなGNUシステムが出来上できあがるずっとまえに、かくコンポーネントはUnixシステムじょう実行じっこうできました。これらのプログラムのうちのいくつかは評判ひょうばんになって、利用りようしゃはそれを拡張かくちょうしたり移植いしょくしたりするようになりました。Unixの様々さまざま互換ごかんはんや、ときにはのシステムにもです。

こういった過程かていでプログラムはさらにパワフルになり、GNUプロジェクトに資金しきん貢献こうけんしゃ両方りょうほうけることになりました。しかし、それが実際じっさい稼働かどうする最小限さいしょうげんのシステムを完成かんせいさせるのをなんねんおくらせたのかもしれません。GNUの開発かいはつしゃは、必要ひつようなコンポーネントを次々つぎつぎくよりも、これらの移植いしょく保守ほしゅしたり、既存きそんのコンポーネントにさらに機能きのうくわえたりすることに時間じかんられるようになったからです。

GNU Hurd

1990ねんまでにGNUシステムはほぼ完成かんせいしていました。のこされた唯一ゆいいつ主要しゅようなコンポーネントはカーネルです。わたしたちはカーネルをMachじょうはしるサーバ・プロセスの集合しゅうごうとして実装じっそうすることにめました。Machとは当初とうしょはカーネギー・メロン大学だいがくで、そのユタ大学だいがく開発かいはつされるようになったマイクロカーネルです。そして、GNU HurdはMachじょうはしりUnixカーネルのさまざまなジョブをこなすサーバの集合しゅうごう(つまり“a herd of GNUs”)です。開発かいはつ開始かいしはMachが約束やくそくされたように自由じゆうソフトウェアとしてリリースされるのをっていたためおくれました。

このデザインをえらんだひとつの理由りゆうは、カーネルのプログラムをそれようのソース・レベルのデバッガなしにデバッグするという、一番いちばん困難こんなんであろう作業さぎょうけるべきだったからです。Machではこのパートの作業さぎょうすでわっており、Hurdサーバをユーザ・プログラムとしてGDBをもちいてデバッグできればいいとかんがえていました。しかしそれが出来できるようになるまでにはなが時間じかんがかかり、たがいにメッセージをおくりあうマルチ・スレッドのサーバはデバッグするのが非常ひじょう困難こんなんなものだということも判明はんめいしました。Hurdを安定あんていして稼働かどうさせるのはなんねんさきにまでばされてしまったのです。

Alix

GNUのカーネルはもともとHurdという名前なまえになる予定よていではありませんでした。オリジナルの名前なまえはAlixで、わたしの当時とうじ恋人こいびと女性じょせいにちなんで名付なづけられたものです。Unixのシステム・アドミニストレータだった彼女かのじょが、自分じぶん名前なまえはUnixシステムのはん共通きょうつう命名めいめいパターンにぴったりかなと指摘してきしました。彼女かのじょ友人ゆうじんに「だれかカーネルにわたしの名前なまえをつけないかしらね」と冗談じょうだんはなしていたのです。わたしはなにいませんでしたが、彼女かのじょおどろかせてやろうとカーネルの名前なまえをAlixにすることにめました。

それから事情じじょうわり、中心ちゅうしんてきなカーネル開発かいはつしゃのマイケル(現在げんざいはトーマス)・ブッシュネルがHurdという名前なまえほうって、AlixをカーネルのなかでもシステムコールをトラップしたりそれをHurdサーバにメッセージをおくって対処たいしょする部分ぶぶん名称めいしょうさい定義ていぎしました。

結局けっきょく、Alixとわたしはわかれてしまい、彼女かのじょべつ名前なまえになってしまいました。それとはべつにHurdのデザインもわってしまい、Cライブラリが直接ちょくせつサーバにメッセージをおくるようになったので、デザインじょうもAlixのコンポーネントはえてしまいました。

しかし、そうなるまえに、彼女かのじょ友人ゆうじんがHurdのソースコードのなかにAlixの名前なまえつけて彼女かのじょにそのことをはなしたので、彼女かのじょ名前なまえにちなんだカーネルをつける機会きかいが、彼女かのじょには、たしかにあったのです。

LinuxとGNU/Linux

GNU Hurdはまだ本番ほんばん環境かんきょうでの利用りようにはてきしていません。いったい、そうなるかどうかもわかりません。ケーパビリティ・ベースのデザインが設計せっけい柔軟じゅうなんせいから直接ちょくせつ問題もんだいこしています。そして、解法かいほうがあるかどうかあきらかではありません。

幸運こううんなことに、べつのカーネルが使つかえるようになりました。1991ねんにリーナス・トーバルズはUnix互換ごかんのカーネルを開発かいはつし、それをLinuxと名付なづけました。当初とうしょはプロプライエタリでしたが、1992ねんに、かれはLinuxを自由じゆうソフトウェアとしました。Linuxとまだ完成かんせいだったGNUとのわせで完全かんぜん自由じゆうなオペレーティング・システムが誕生たんじょうしたのです。(このわせの作業さぎょうは、もちろんそれ自体じたい大変たいへんなものでした。) 今日きょう、GNUシステムのひとつのはん実際じっさいはしらせることが出来できるのはLinuxのおかげです。

わたしたちはこのシステムのはんGNU/Linuxび、その構成こうせいを、カーネルとしてのLinuxとGNUシステムのわせとして表現ひょうげんします。全体ぜんたいのシステムを“Linux”と慣習かんしゅうにはおちいらないでください。それは、わたしたちの仕事しごとべつだれかにぞくするもの、と意味いみしてしまいますから。どうか、わたしたちに同等どうとう言及げんきゅうをしてください。

これからの挑戦ちょうせん

わたしたちは広範囲こうはんいわたって自由じゆうソフトウェアを開発かいはつする能力のうりょくがあることを証明しょうめいしてきました。しかしだからといってわたしたちが無敵むてきだれにもめられないというわけではありません。自由じゆうソフトウェアの将来しょうらい見通みとおしを不透明ふとうめいにするような案件あんけんがいくつもあり、それにかうには、ときにはなんねんにもおよ不断ふだん努力どりょく忍耐にんたい必要ひつようになるでしょう。それにはみなさんが自分じぶんたちの自由じゆう大切たいせつなものであり、だれにもうばわせるつもりはないと表明ひょうめいするというようなあるしゅ決心けっしん必要ひつようになるでしょう。

つぎよっつのしょうでその挑戦ちょうせん課題かだいについてていきましょう。

開示かいじのハードウェア

ハードウェア産業さんぎょうはますますハードウェアの仕様しようかく傾向けいこうつよめています。このため、LinuxやXFree86であたらしいハードウェアをサポートするための自由じゆうなドライバをくのがむずかしくなっています。いま完成かんせいされた自由じゆうのシステムがありますが、つぎのコンピュータをサポート出来できないのなら、明日あしたもそれがあるというわけにはいきません。

この問題もんだい対処たいしょ方法ほうほうふたつあります。ハードウェアをどうサポートするのかつけすために、プログラマはリバースエンジニアリングすることが出来できます。そのひとたちは自由じゆうソフトウェアがサポートしているハードウェアを使つかうといいでしょう。そのかずえれば、仕様しようかくすのは自滅じめつてきポリシーだということになっていきます。

リバースエンジニアリングは大変たいへん仕事しごとです。それを実行じっこうする十分じゅうぶん決意けついをもったプログラマがわたしたちのなかにいるでしょうか。かならずいます。自由じゆうソフトウェアとは原則げんそく問題もんだいであり、不自由ふじゆうなドライバには我慢がまんならないというつよ気持きもちをてるのであれば。では、わたしたちのすうおおくは、自由じゆうなドライバをにするために、余分よぶんなおかね少々しょうしょう時間じかんさえむのでしょうか。そうです、自由じゆうにしようという決意けついひろまっていけば。 [8]

不自由ふじゆうなライブラリ

自由じゆうなオペレーティング・システムじょうはし不自由ふじゆうなライブラリは自由じゆうソフトウェアの開発かいはつしゃわなにかけるようなことをしでかします。ライブラリの魅力みりょくてき機能きのう疑似ぎじえさのようなもので、そのライブラリを使つかえばわなかることになるでしょう。なぜなら、そうしたプログラムは有用ゆうようなかたちで自由じゆうなオペレーティング・システムの一部いちぶとなることはできないからです。(厳密げんみつにいえば、そのプログラムをれることは出来できますが、ライブラリがないため、うごことはないのです。) さらにわるいことに、もしプロプライエタリなライブラリを使用しようするあるプログラムが人気にんきることになってしまえば、うたがわないプログラマもわなへとおびきせられるかもしれません。

このようなプログラムの最初さいしょれいがMotifツールキットで、はなしは80年代ねんだいまでさかのぼります。当時とうじはまだ自由じゆうなオペレーティング・システムは存在そんざいしなかったのですが、Motifが後々あとあとどんな問題もんだいこすことになるかはあきらかでした。GNUプロジェクトは、ふたつのやりかたおうじました。個々ここ自由じゆうソフトウェアのプロジェクトには、自由じゆうなXツールキット・ウィジェットをMotifとおなじように使つかってくれるようおねがいし、Motifをえる自由じゆう代替だいたいぶつだれつくってくれないかとおねがいしました。この作業さぎょうにはなんねんもかかり、Hungry Programmersの開発かいはつされたLessTifは1997ねんになってようやく大半たいはんのMotifアプリケーションをサポートするくらいにパワフルなものになったのです。

1996ねんと1998ねんあいだにはQtというべつ不自由ふじゆうGUIツールキット・ライブラリが重要じゅうよう自由じゆうソフトウェアのコレクションであるデスクトップ環境かんきょうKDE使つかわれたことがありました。

ライブラリが使用しよう出来できないため、自由じゆうなGNU/LinuxのシステムではKDEを使つかうことができませんでした。しかしながら、自由じゆうソフトウェアであることにあまり厳密げんみつ遵守じゅんしゅしないGNU/Linuxの商用しょうようディストリビュータは自分じぶんたちのシステムにKDEをくわえ、たか能力のうりょくつが自由じゆうそこなわれたシステム、をつくってしまったのです。KDEグループはもっとおおくのプログラマにQtを使つかうよう積極せっきょくてきはたらきかけ、なんひゃくまんものあたらしい「Linux利用りようしゃ」がそのなか問題もんだいふくまれていることをあきらかにされないままになってしまいました。事態じたいきびしくなりました。

自由じゆうソフトウェアのコミュニティはこの問題もんだいふたつのやりかたでもってこたえました。GNOMEとHarmonyです。

GNUネットワークオブジェクトモデル環境かんきょう、GNOMEはGNUのデスクトップ・プロジェクトです。1997ねんにミゲル・デ・イカザがはじめ、Red Hatソフトウェアの支援しえんけて開発かいはつされたGNOMEは、たようなデスクトップの機能きのう提供ていきょうするものですが、自由じゆうソフトウェアのみを使つかっています。また、C++だけでなく様々さまざまなプログラミング言語げんごをサポートするといった、技術ぎじゅつてき優位ゆういせいそなえています。しかし、そのおも目的もくてき自由じゆうであり、いかなる不自由ふじゆうなソフトウェアの使用しようをも必要ひつようとしないことなのです。

Harmonyは互換ごかんせいのある代替だいたいライブラリで、KDEのソフトウェアをQtを使つかわずにはしらせることを可能かのうにするよう設計せっけいされています。

1998ねんの11月にQtの開発かいはつしゃはライセンスを変更へんこうし、それが発効はっこうされればQtは自由じゆうソフトウェアになると発表はっぴょうしました。断言だんげんはできませんが、それは不自由ふじゆうだった時代じだいのQtには問題もんだいがあったとしてコミュニティが断固だんことして対処たいしょしてきた成果せいかでもあるとおもわれます。(このあたらしいライセンスは不便ふべんかつ公正こうせいなもので、Qtの使用しようけるのはのぞましいままです。 [9].)

つぎなる誘惑ゆうわくとなる不自由ふじゆうのライブラリにわたしたちはどう対処たいしょするでしょうか。わなにはまらないでいるようにしなければならないとコミュニティ全体ぜんたい理解りかいしていられるでしょうか。あるいは利便りべんせいけてわたしたちは自由じゆうをあきらめ、おおきな問題もんだいこすことになるのでしょうか。わたしたちの未来みらいは、わたしたちの理念りねんにかかっています。

ソフトウェア特許とっきょ

わたしたちが直面ちょくめんすることになった最悪さいあく脅威きょういは、ソフトウェア特許とっきょからしょうじたものでした。それにより自由じゆうソフトウェアはそのアルゴリズムと機能きのうから20ねんわたってされてしまうような事態じたいきかねないのです。LZW方式ほうしきによる圧縮あっしゅくのアルゴリズムの特許とっきょは1983ねん適用てきようされ、わたしたちはいまだにGIFファイル形式けいしき適切てきせつ圧縮あっしゅくする自由じゆうソフトウェアをリリースできないでいます [10]。1998ねんには、MP3形式けいしき圧縮あっしゅくされたオーディオ・ファイルを作成さくせいする自由じゆうのプログラムが特許とっきょ侵害しんがい[11]訴訟そしょうおそれてディストリビューションからはずされました。

特許とっきょ対抗たいこうする方法ほうほうはさまざまです。特許とっきょ無効むこうであるという証拠しょうこさがしたり、おなじことをべつ方法ほうほう実現じつげんするやりかたつけたりすることも可能かのうでしょう。しかし、どちらもたまにしかこうそうさないのです。もしどちらも失敗しっぱいわれば、特許とっきょによりすべての自由じゆうソフトウェアは利用りようしゃもとめる機能きのうのなにがしかをいたままであることをいられてしまうかもしれません。なが待機たいきのち特許とっきょ失効しっこうしますが、それまでどうしますか?

わたしたちのように自由じゆうソフトウェアを自由じゆうのために価値かちあるものだとするひとなら、いずれにせよそのまま自由じゆうソフトウェアを使つかつづけるでしょう。特許とっきょされた機能きのうなしになんとか作業さぎょうをやりげるでしょう。しかし技術ぎじゅつてき優位ゆういせいがあるだろうという理由りゆうから自由じゆうソフトウェアを価値かちあるものだとするひとたちは、特許とっきょさまたげられれば、それは失敗しっぱいだとしかねません。ゆえに、たしかに「バザール」という開発かいはつモデルの実践じっせんてき有効ゆうこうせいやある自由じゆうソフトウェアのたか信頼しんらいせい能力のうりょくについてかたるのは有用ゆうようなことではありますが、そこでとどまっていてはいけないのです。わたしたちは自由じゆう原則げんそくについてはなすべきなのです。

自由じゆうなドキュメンテーション

わたしたちの自由じゆうなオペレーティング・システムにもっと不足ふそくしているものは、ソフトウェアの分野ぶんやにはありません。システムにれられる自由じゆうすぐれたマニュアルがりないのです。ドキュメンテーションはどのソフトウェアのパッケージでも重要じゅうようなパートをになっているわけですから、重要じゅうよう自由じゆうソフトウェアのパッケージにすぐれたマニュアルが付属ふぞくしていなければ、それはおおきな欠陥けっかんとなってしまいます。今日きょう、この欠陥けっかんがたくさんあるのです。

自由じゆうなドキュメンテーションとは、自由じゆうソフトウェアとおなじく、自由じゆうかかわることであって、値段ねだんのことではありません。自由じゆうなマニュアルであることの基準きじゅんは、自由じゆうソフトウェアとほぼおなじで、すべての利用りようしゃたしかな自由じゆうあたえるかがわれることになります。マニュアルをプログラムのあらゆるコピーにどうこりできるように、オンラインでもかみ媒体ばいたいでもさい配布はいふ(商用しょうよう販売はんばいふくむ)が許可きょかされていなければなりません。

変更へんこうする自由じゆうがあることもおなじく重要じゅうようです。原則げんそくとして、わたしは、すべての種類しゅるい論説ろんせつほんについて変更へんこうゆるされるのが本質ほんしつてきだとはおもいません。たとえば、わたしたちの活動かつどう見解けんかいべたこの文書ぶんしょについて、わたしやあなたがこの文章ぶんしょう変更へんこうする許可きょかあたえる義務ぎむがあるとはおもいません。

しかし、変更へんこう自由じゆう自由じゆうソフトウェアようのドキュメンテーションにとって重要じゅうようであるのには特定とくてい理由りゆうがあります。ソフトウェアを変更へんこうしたり、機能きのう付加ふかしたりえたりする自由じゆう行使こうしする場合ばあい良心りょうしんてきひとならマニュアルも変更へんこうしようとするでしょう。そうすれば正確せいかく有用ゆうようなドキュメンテーションを変更へんこうしたプログラムと一緒いっしょ提供ていきょうできるようになるからです。プログラマに良心りょうしんてきになって作業さぎょう完成かんせいさせることをゆるさないような不自由ふじゆうなマニュアルは、わたしたちのコミュニティのニーズをたさないのです。

変更へんこう方法ほうほうのあるしゅ制限せいげんについてはべつ問題もんだいはありません。たとえば原作げんさくしゃ著作ちょさくけん表示ひょうじ配布はいふ条項じょうこう、または作者さくしゃめいリストを保全ほぜんするといった制限せいげんは、かまわないでしょう。変更へんこうされたはんにはそのことを明記めいきするようもとめること、そのセクション全体ぜんたい技術ぎじゅつてき事柄ことがらでない事項じこうあつかうものであるかぎりはしたり変更へんこうしてはならないともとめることも問題もんだいはありません。このたね制限せいげん問題もんだいとはなりません。良心りょうしんのあるプログラマに変更へんこうされたプログラムにったマニュアルを添付てんぷすることをめさせたりはしないからです。いいかえれば、そのような制限せいげん自由じゆうソフトウェアのコミュニティがマニュアルを完全かんぜん利用りようするのを邪魔じゃましたりはしないのです。

しかし、技術ぎじゅつてき部分ぶぶんについてはどこでも変更へんこうし、それを普通ふつうのあらゆる媒体ばいたいで、あらゆる普通ふつうのチャンネルで配布はいふすることが可能かのうでなければなりません。そうでなければ、制限せいげんがコミュニティの障害しょうがいとなり、マニュアルは自由じゆうではなくなり、またべつのマニュアルが必要ひつようとなってしまいます。

自由じゆうソフトウェアの開発かいはつしゃ一連いちれん自由じゆうのマニュアルをつく意識いしき決意けついつようになるでしょうか。もう一度いちどいいます。わたしたちの未来みらいはその理念りねんにかかっているのです。

いまこそ自由じゆうについてはなさなければなりません

最近さいきん推計すいけいではDebian GNU/LinuxやRed Hat “Linux”のようなGNU/Linuxシステムの利用りようしゃいちせんまんにんのぼります。自由じゆうソフトウェアは利用りようしゃ純粋じゅんすい実用じつようてき理由りゆうからあつまってくるような実際じっさいてき利点りてんのあるものを開発かいはつしてきたのです。

この影響えいきょう明白めいはくです。自由じゆうソフトウェアの開発かいはつにさらに関心かんしんあつまり、自由じゆうソフトウェアにはさらにおおくの顧客こきゃくせられ、会社かいしゃにはプロプライエタリなソフトウェア製品せいひんではなく商用しょうよう自由じゆうソフトウェアを開発かいはつすることを一層いっそうつようながしてくれます。

しかしソフトウェアへの関心かんしんはそれがもとづく理念りねんたいする意識いしきよりも急速きゅうそくたかまっており、これがトラブルをこしています。試練しれん上記じょうきしたような脅威きょういかうわたしたちのちからは、自由じゆうのために断固だんこかう意志いしいかんによるのです。わたしたちのコミュニティがこの意志いしつことを確実かくじつにするには、コミュニティにあたらしい利用りようしゃにこのかんがえをひろめる必要ひつようがあるのです。

わたしたちはそうすることに失敗しっぱいしています。あたらしい利用りようしゃをコミュニティにける努力どりょくほうが、コミュニティの一員いちいんとしてのありかたひろめることをはるかにえてひろまっています。わたしたちはその両方りょうほうをやらなければならず、双方そうほうのバランスをとっていく必要ひつようがあるのです。

「オープンソース」

1998ねんにはあたらしい利用りようしゃ自由じゆうについておしえることがよりむずかしくなりました。コミュニティの一部いちぶが「自由じゆうソフトウェア」という用語ようご使つかうのをやめて、そのわりに「オープンソース・ソフトウェア」としたのです。

自由じゆう」と「無料むりょう」の混同こんどうける目的もくてきでこの用語ようごこのんだひともいました—この目標もくひょうただしいものです。しかし、そのひとたちは自由じゆうソフトウェア運動うんどうとGNUプロジェクトの動機どうきとなった原則げんそく精神せいしんよこにおいて、わりに会社かいしゃ重役じゅうやくやビジネス利用りようしゃにアピールする目的もくてきでした。自由じゆうよりも、コミュニティよりも、原則げんそくよりも、利益りえき重視じゅうしする思想しそう人々ひとびとへアピールするのです。したがって、「オープンソース」のレトリックはこう品質ひんしつのパワフルなソフトウェアをむポテンシャルに注目ちゅうもくしますが、自由じゆう、コミュニティ、そして原則げんそくというかんがえを意図いとてきけるのです。

いわゆる“Linux”関連かんれん雑誌ざっしがこの明白めいはくれいです。そこはGNU/Linuxじょううごくプロプライエタリなソフトウェアの広告こうこくでいっぱいです。つぎのMotifやQtがあらわれたら、この雑誌ざっしはプログラマにそれらのものからはなれるよう警告けいこくしてくれるでしょうか、それともその製品せいひん広告こうこくつのでしょうか?

ビジネスによるサポートがコミュニティに貢献こうけんするやりかたはたくさんあり、どれも公平こうへい有用ゆうようなものばかりです。しかし自由じゆう原則げんそくについてなるべくはなそうとせずにサポートをようとするのはひどい事態じたいまねきかねません。さきべた外部がいぶへのはたらきかけとコミュニティの一員いちいんとしてのありかたつたえていくことのあいだのバランスがさらにわるくなってしまうのです。

自由じゆうソフトウェア」と「オープンソース」は、おおかれすくなかれ、おなじソフトウェアの分類ぶんるいあらわしますが、ソフトウェアと価値かちかんについてはちがったことをとなえています。GNUプロジェクトは「自由じゆうソフトウェア」という言葉ことば使つかつづけます。ただ技術ぎじゅつてきなことをあらわすのではなく、自由じゆうという理念りねん表現ひょうげんすることが重要じゅうようだからです。

やってみよう!

ヨーダの格言かくげん(「『ためし』などいらん」)はすばらしくこえますが、わたしには役立やくだちません。作業さぎょうのほとんどは本当ほんとうにこれが出来できるのか心配しんぱいなままやってきたもので、それにもしこれをしたとしても、それで目的もくてき達成たっせいには十分じゅうぶんなのか確信かくしんてないままでした。しかし、それでもやってみたのです。なぜならせるてきまちあいだにはわたししかいませんでしたから。自分じぶんでもおどろいたことに、ときには成功せいこうをおさめることだってありました。

ときには失敗しっぱいもしました。いくつかのまち陥落かんらくしてしまいました。そして危機ききにあるべつまちつけ、またべつ戦闘せんとうそなえました。ながいこと、わたしは脅威きょうい発見はっけんし、をその脅威きょうい自分じぶんまちとのあいだし、のハッカーたちにこっちに一緒いっしょにやろうとけてきたのです。

今日きょうでは、わたしはたいていいちにんきりではありません。大勢おおぜいのハッカーたちが戦線せんせんちこたえさせんとわが武者むしゃらになっているのをるのと安心あんしんしてよろこばしい気持きもちになり、そして確信かくしんするのです。このまち大丈夫だいじょうぶだと—いまのところは。しかし危険きけんとしごとおおきくなっており、いまやマイクロソフトはあきらかにわたしたちのコミュニティをターゲットにしています。将来しょうらい自由じゆう約束やくそくされているわけではないのです。当然とうぜんのことだとおもってはいけないのです!自分じぶん自由じゆうまもりたいのなら、それをまもそなえをしておかなければいけません。

脚注きゃくちゅう

  1. 「ハッカー」という用語ようごを「セキュリティやぶり」の意味いみ使つかうのは一部いちぶのマスメディアの混同こんどうです。わたしたちハッカーはこのような意味いみけっしてみとめません。そして、プログラムをすることが大好だいすきなひと、おちゃめな機巧きこうたのしむひと、もしくはそのふたつのわせ、という意味いみでこの言葉ことば使つかつづけます。わたしの論説ろんせつハッキングについてをごらんください。
  2. かみろんしゃとして、わたしはどの宗教しゅうきょう指導しどうしゃ信心しんじんしていませんが、ときおりかれらのだれかの言葉ことばなにかしら敬服けいふくするものがあることに気付きづきます。
  3. 1984ねんか1985ねんに、ドン・ホプキンス(かなりの想像そうぞうりょくぬしです)がわたしに手紙てがみおくってくれました。封筒ふうとうにいくつか愉快ゆかいなことがかれてあり、そのうちのひとつが“Copyleft—all rights reversed.”だったのです。当時とうじ配布はいふのコンセプトについてかんがえていたわたしは、この「コピーレフト」という言葉ことばをその名前なまえにすることにしたのです。
  4. わたしたちはいまGNU自由じゆう文書ぶんしょライセンス文書ぶんしょ使つかっています。
  5. “Bourne again Shell”はUnixで標準ひょうじゅんてき使つかわれる“Bourne Shell”の名前なまえにひっかけた言葉ことばあそびです。
  6. これは1998ねんかれました。2009ねん、わたしたちは、もはやながいタスクリストを保守ほしゅしていません。コミュニティは自由じゆうソフトウェアを迅速じんそく開発かいはつし、わたしたちはすべてを追跡ついせきすることはもはやできません。そのわりに、わたしたちは、優先ゆうせんたかいプロジェクトのリストをつようになりました。人々ひとびと本当ほんとう開発かいはつしてもらいたいプロジェクトのみじかいリストです。
  7. このライセンスは当初とうしょ、GNUライブラリ一般いっぱん公衆こうしゅうライセンスとばれました。すべてのライブラリがこれを使つかうべきというかんがえをさけるためにこの名前なまえ変更へんこうしました。つぎのライブラリに劣等れっとうGPLを使つかうべきでない理由りゆうによりくわしくべられています。
  8. 2008ねん追記ついき: この問題もんだいはBIOSにも同様どうよう拡張かくちょうされます。自由じゆうなBIOS、LibreBoot(corebootのひとつのディストリビューション)があります。LibreBootが不自由ふじゆうな「ブロブ」なしでサポートできるように、マシンの仕様しよう入手にゅうしゅできるかどうか、が問題もんだいです。
  9. 追記ついき: 2000ねんの9がつにQtはGNU GPLのしたでリリースされ、それによりこの問題もんだい本質ほんしつてき解決かいけつされました。
  10. 2009ねん時点じてんで、GIFの特許とっきょ失効しっこうしました。
  11. 2017ねん時点じてんで、MP3の特許とっきょ失効しっこうしました。みなさい、どれだけながたなければならなかったことか。