リチャード・ストールマン講演会@立教大学

内容をメモしてみたけど、間違っているところが多いと思う。

概要

  • 2003年4月26日 17:30-
  • 立教大学8号館 8101

プリンタの紙詰まり

MITには「ソースコードの公開されていないソフトウェアをシステムにインストールしてはいけない」という素晴らしいルールが存在した。私はそれに感銘を受けた。

大学で使っていたプリンタ(ゼロックス)は何度も紙詰まりを起こしていた。それはハードウェアの欠陥だったため、どうすることもできなかった。しかし、プリンタのソフトウェアのソースコードが開示されていたので、それを自分たちの手で修正し、紙詰まりが起こればアラートが出るようなものに作り変えた。それ以降、紙詰まりを起こしていればアラートに気づいた誰かが直すようになった。

もしソースコードが開示されていなければ、何もすることができずに、一日中、プリンタのトラブルに泣くことになっていただろう。

(あら?もともとソースコードは開示されてなかったのかな?もし開示されていればアラート出せるように出来たのに……という話だったのか?それにしては長かったような。)

その後、そのソフトウェアのソースコードは開示されなくなった。カーネギーメロン大の技術者がそのソフトウェアを作っているという。私は彼にソースコードを公開してくれと頼んだが、彼はダメだと言った。「非公開契約を結んでいるからだ」と。

それが私にとって初めての「犠牲者」としての体験であった。多くのプログラマはこのようにNDA(Non-Disclosure Agreement)を結ぶのだろう。しかしNDAは、犠牲者が特定されていない。誰が被害を被るのかが明記されていない。今回の被害者が私であったことは、彼は知らなかったはずだ。自分の味わったことを他人に味あわせてはいけない。そう心に決めた。それが始まりであった。

公開すべきもの

なんでもかんでも公開しろとは言わない。個人的な問題を公開する必要は無い。私がセックスの新しい技術を編み出したとしたならば、それは公開するべきだろう:-) なぜならそれは「人類の知」だからである。だからといって、私の性生活を公開するつもりはないし、する必要も無い(興味がないだろう?)。

人類の知となるものはすべて公開されるべきなのだ。インフォメーションテクノロジーの情報は、すべて人類の知となり得る。

挫折(PDP-10)

インコンパティブルタイムシェアリングOSが15年かけて頓挫した。すべての時間が無駄になった。気づけば、近代のOSはすべて(Binary配布にも関わらず)契約制になっている。私のやり方(?)では、OSの開発は続けられないのだと思った。世界は変わってしまっていた。

決意

私のやり方を変えて、「お金が儲かり、プログラムもでき、飢えることがない」ソフトウェア開発を行うことも出来たが、他の選択肢を考えることにした。一時期、ウェイターにでもなろうと思った。でも、やはりコンピュータ以外は考えられなかった。

ウェイターのお話

ウェイターは2つの点で魅力的だった。

  1. 非倫理的なことをしなくてよい(もちろんマクドナルドは別だ)
  2. 飢えることがない(もちろんマクドナルドは別だ)

世界はマクドナルドが「ファーストフード」で成功したと思っているが、「ファースト」の意味を間違えている。「ファースト」には2つの意味があるのだ。

  1. はやい
  2. 食べない(do not eat)、断食

マクドナルドの「ファースト」は2番目の意味である。これは多くのアメリカ人が誤解していることだ。もしお腹がすいてしかたがないたときにマクドナルドのことしか思い出せなかったなら、食欲も減退することだろう。

ウェイターという職業はそんなに楽しくないだろうけれど、OS開発のスキルを誤用(FREEじゃないものを作ること)するよりも、無駄にするだけよいと思ったわけだ。

倫理的ジレンマからの開放

FREEなOSをいちから作ることは、私の使命だと思った。こんなこと誰もやらないだろうから、たっぷりと時間はある。

中断(6時の音楽が流れる)

  • 誰か電話に出ないと!
  • 誰かワルツの踊り方しってる?これはワルツにぴったりの音楽だね。

お話再開

ポータブルなOSであるUNIXのデザインを真似しようと思った。それはUNIXユーザーのスイッチコストを下げるためである。「FREEなのに、スイッチコストが高かったせいで普及しなかった」そういう言い訳をしたくなかった。そもそも、FREEを伝えるためのコミュニティを作ることが目的だったのだ。ソフトウェアを作ることが目的ではない。そのためにはUNIXを勉強してきたひとにも、すぐに使えるようなものを作る必要があった。

FREEなOSを作ろう

UNIXコンパチにするには、部品をコンパチにしていけばよい。既存のものにちょっとした改良を加え、互換性のある部品を次々に作っていった。

そのためには名前が必要だった。先に出たものに関連があるけれど、先にでたものとは違う。つまり、「○○じゃない××(○○ is not ××)」というふうにするのがよいと思ったのだ。

例えば…(ここでいろいろな例。emacsの頭文字だとか、変換ツールだとか)。

そこで出てきたのがGNUである。「○○ is not UNIX」というのは決まっていた。そこで、アルファベット順に「ANU」「BNU」「CNU」「DNU」「ENU」「FNU」とやり「GNU。これでいこう」となった。GNU is no UNIX.である。

ちなみにGNUはFUNNYな言葉だ。お菓子なんかにも使われている(?)。

Emacsでお金をもらう

‘8x年にMITをやめてから、それ以来、一度も職についていない。

‘85年、GNU/Emacs を作ったら、コピーしてUNIX上でも動かしたいという申し出があった。今ならFTPにアップすればよいのであろうが、当時はインターネットはなかった。そのため、磁気テープに焼く必要があったんだが、そんな手間をかけたくもなかった。

そこで、150ドル送ってくれたら、磁気テープを送るよ。というふうにした。月に8件から10件くらいの申し込みがあった。私はそれで十分暮らしていけるだけのお金をもらった。

「freeなのに150ドルはないだろ?」と言う人もいた。「ジユウナ」を「タダノ」と間違えているのだ。「言論のFREE」と「ビールがfree」は違うのだ。その点、日本語は素晴らしい。みなさんは、ちゃんと「ジユウナ」を使ってください。

GNU/Emacsを(磁気テープを買うことで)有償で手に入れたひともいれば、その人から無償でもらった人もいるだろう。でも、どちらもFREEなことには変わりが無い。

FREEDOM LEVEL

FREEにはレベルがある(?)。

  • FREEDOM 0 : 自由にプログラムを走らせることができる
  • FREEDOM 1 : それを使ってプログラムの勉強(修正)してもよい。
  • FREEDOM 2 : 改良してもよい。それを配布してよい。
  • FREEDOM 3 : コミュニティの中で、自分の作品として発表してよい。

知は共有すべきものであり、それが友情の素となる。何も共有してはいけないということは、他の人を助けてはいけないということである。それは、大切な思いを損なうことになる。

スパイウエア

MSのOSにはユーザーの情報を通知する機能があった。それは非難を浴び、取り除かれた。しかし、Windows XP では、またその機能が蘇った。ユーザー(とくに企業)はマイクロソフトだから仕方ない、と思って諦めているのだ。

メディアプレーヤーにもあるし、他にも(いろいろ例がでてきた)音楽ソフトのカザー(?)は、ユーザーが起動している時間を売っていた(?)。

ソースコードが公開されていないということは、このような「隠された意味」があるか、バグが存在するかである。もちろん完全なバグ0は難しいだろうが。

プログラミングできるひとばかりじゃないけれど

プログラミングができない人は市販ソフトをあまんじて使うか、まったく使わないかのどちらしか選択肢がない。「やりたいこと」があっても出来ないのだ。もしそのソフトのソースが公開されていれば、「このように修正して欲しいんだけど」とプログラマに頼んで、自分用のものを作ってもらうことができる。公開されていなければ、提供される機能に妥協するしかない。

Emacsの場合

私もそのような「頼まれ仕事」をしていたときがある。機能追加の要望があれば、お金を頂いて、スタンダードバージョンに組み入れていた。「お金を払ってでもリチャードに頼みたい」という人が居たから成り立っていた。1年にわずか7週間だけ働けば、あとは何もしなくてよくなった。稼いだお金の1/3は○(?)に、1/3は○(?)に、1/3は税金に使った。

全部自分で開発しなくてもよい

FREEなOSを完成させるには時間をスキップする必要があった。全部自分たちで開発する必要はないのだ。X-WindowはMITからもらった。当時、X-Windowのようなものは何ももっていなかったから、大変ありがたかった。

しかし、X-Windowには問題があった。それはコピーレフトじゃなかった(?)。フリーだけれど、ユーザーを限定していた。UNIXにX-Windowが入った時点で、Binaryのみの配布となったのである(?)。

コピーレフトとは

どんな改変もすべて同じライセンス下で配布しなくてはならない。私があなたにあたえた自由を、あなたは彼らに与えなければならない。

フリーなソフトウェアの中には、コピーレフトなものとそうじゃないものがあるが、コピーレフトなものは、ユーザーをプロテクト(保護?)する。

カーネル

いろんな部品を作っていったが(いろんなシェルの話。bourne-again-shの話?)、カーネルだけ出来ていなかった。’90年から作り始めてはいたが、時間がかかりすぎていた。そんな中、’9x年にフィンランドでカーネルが誕生したと聞いた。それはLinuxと呼ばれているそうだ。最初それは公開されていなかったが、後にGPLでリリースされた。Linuxにはその上で動くそのためのソフトウェアがなかったが、丁度、我々GNUのツールはLinux上でも動いた。逆に我々はカーネルが欠けていた。両者がうまく出会ったのだ。

GNU/Linux

GNU+Linuxで、GNU/Linuxと言って欲しい。しかし多くはLinux Systemに付随する小さなツール群だけをGNUが作ったと思われがちである。もともとは、GNUがFREEなOSを作ろうとしていたのに。

Linuxを作ったリーナス自身は、私たちが求める「倫理的なこと」が好きじゃなかった。政治的な声明もしたがらなかった。ただ、技術を披露したがっていただけだった。彼は隣人と共有などできないと考えていた。その意味で、マイクロソフトと変わりは無かった。

だからこそ、Linuxではなく、GNU/Linuxと呼んで欲しいのである。

「認知されなくてもいいじゃないか。たとえLinuxと呼ばれても(実はほとんどは自分たちが作ったのだ)と思えばいいじゃないか」

そうアドバイスしてくれるひともいた。たしかに。それはそれで的確なコメントなんだが、GNU/Linuxにすることが目的ではないのだ。ソフトウェアを作り上げたことが目的ではないのだ。全ては終わってないのだ。本当の目的は、フリーダムを広げることにあるのだ。FREEなデスクトップ環境も整備していく必要があるし、FREEなアプリも充実させる必要がある。Linuxの登場だけでは、まだ足りないのだ。だからこそ、フリーダムの思想を内包する「GNU/Linux」を使って欲しいのだ。

2つの敵

フリーソフトウエアを阻む敵がいる。

法律のお話

まずはアメリカの2つの法律。

  1. デジタルメディア著作権法(?ひょっとしてデジタルミレニアム?):DVDや電子ブックを再生するFREEソフトウェアを作ってはいけない。
  2. ソフトウェア特許法:ソフトウエアのアイデア(ソフトウエアではなく)に対する特許。

前者は政治的なものも関係している(ハリウッドなど)。

後者は、ソフトウエア開発の道を阻む危険性がある。アプリケーションには通常、さまざまな機能がついている。いろんな機能がまとまって、ひとつのアプリケーションとなっているのだ。その機能のひとつでも特許を取られていたならば、アプリケーションを製作すること自体、不可能となる。

とある経済レポートでは、特許が技術の前進・革新を阻害していると言及した。もし日本にソフトウエア特許法がないのであれば、それはラッキーなことだ。アメリカのようになってはいけない。もし特許を出すならば、アメリカだけ出して、日本では出さないようにしたほうがいい。特許をとらないほうが、革新が起こりやすくなり、結果、いいことづくしなのだ。

マイクロソフト

マイクロソフトはデータを囲い込もうとしている。.NETをWeb Service のスタンダードにしようとしているが、そこで使われるXMLファイルには独自に拡張したものを使おうとしている。Officeも独自のXMLを使うようになるだろう。いずれ、FREEソフトでWORDのファイルを読み込むことができないようになっていくだろう。そのファイル形式は、バージョンが上がるごとにパテントが更新され、恒久的に独占的になるに違いない。

MSが現在推し進めているDRM(Digital Rights Management)がWORDファイルに適用されれば、他のいかなるソフトウェアでWORDファイルを読むことがそれは技術的に不可能となる。trasted computingを目指しているものが、信用できないコンピュータを作ろうとしている。自分の意志ではなく、コンピュータによって制限される世界だ。

みんながこのことを知らないまま、ことは進められていく。

オープンソース

リーナスは自由を尊重していなかった。有用性のみ伝えていた。オープンソース運動はソースを公開するという点においてフリーソフト運動の思想に近いものがあるが、完全ではない。フリーを徹底していないのだ。オープンソース運動の貢献は認めるが、さらにフリーを徹底する必要がある。もし今からLinuxを使おうとしているひとたちが周りにいれば、オープンソースではなく、フリーソフトだと教えてあげるようにしてほしい。

教育

学校教育におけるソフトウエアはFREEであるべきだ。まず予算が削減できるという点、そして学習のしやすさが理由である。ソースの公開されていない市販ソフトウエアから何かを学ぶことはできない。プログラミングの上達は、「読んで」「書く」ことにあるからだ。

そのソフトウエアが気に入らないなら、自分でChangeしろと学生に言っておくと良い。そして、もしそれでよりよくなれば、この学生が大学のシステムを改善しました!と発表するようにすればよい。

学校でマイクロソフトの技術を教えることは、タバコを吸わせるようにするのと同じことだ。

  1. お金がかかる
  2. 中毒性がある

雇用の話

これだけは言える。他人と共有するのならば、100万長者になる夢は諦めたほうがいい。

質問

Q.GNU/GPLドキュメントはどのライセンスで公開されているのか?

特に無い。文言をコピーして利用することはできるが、ライセンス自体を変更することはできない。GNU/GPLは人権宣言のようなものだ。それを容易に改変できるようにすると、FREEでないものを生み出してしまう危険性がある。

Q.自由の先にあるものは何?

その先に何があるかは分からない。ただソフトウエアに関して言えば、自由を獲得することそれ自体が重要である。自由は放っておくと侵害されてしまう。例えば、ブッシュが選挙でズルして当選した上に戦争まで始めちゃっている状況は、まさに自由が侵害されていると言える。

Q.自由と平和に関して何か

私は別に平和主義じゃないけれど、イラクのひとが本気で開放してもらいたいと思っていたのならば、私はブッシュを支持する。自由のために戦う必要はあると思う。

Q.有名な写真(Web上にある)の意味は?尺八にHPのサーバー、そして蝶?なにそれ。

単なるジョーク。笑わすため。これがハッカースピリットっつーやつだ。

コンピュータにはバグ(蛾)がつきもので、音楽をかけていたらやってきたって感じ。虫は、エアコンの効いた場所は苦手だろうけれど。

Q.GNU/EmacsやRMSは日本ですんごい有名なんですが、LinuxをGNU/Linuxと呼ぶ必要はあるんでしょうか?

そんなに有名じゃないよ。つーか、GNU/Linuxって、呼んで欲しいというのはもう言ったたじゃん。また最初から講演しろとでも?

Q.FSFの専任スタッフは何人?

7人の専任がいる。彼らにはFSFが給料を支払っている。それと、1人か2人のパートタイムジョブがいる。ただし、FREEソフトで生計を立てているひとは、1000人規模でいる。

ブラジル大学の話(だっけか?聞いてなかった)

Q.ジャーナリストの写真にコピーレフトを適用したいのだが?

何の役にも立たないのでは?

著作権の話をここでするつもりはないが、非商用ならば利用しても良いというように法律を変えていくことは可能なのではないか。

Q.リーナスがフリーを重要視していないことに不満なら、カーネルもGNUで作ればいいのに

GNUのカーネルもある。GNU/Hurd と呼ばれるものである(羊の群の意)。しかしこれはいくつかの機能を欠いている。ユーザーがそれを求めなければ、すぐにでも使える状況である。しかし、LinuxはすでにFREEであり、完成されている。新たに作る意味は無い。

Q.暗号の取り組みは?

  • GNU Privacy Guard for e-mail
  • SSL

Q.高度な暗号技術がブラックマーケットに流れるのでは?

は?ブラックマーケット?麻薬とかってこと? 私は別に麻薬はいいと思っているが、何か?政府が禁止するほうがおかしいのだ。政府の力は制限すべき。

Q.特許の進歩性(?)ってのがありますが

重要だな

Q.今後、C# みたいなgccはでるの?

は?gccはコンパイラだが?

言語としては、PerlやPythonがあるから、FSFで言語作る必要はないと思っている。

今後、新しいことをやるときに使えばよい言語は?

Lisp。

  • read
  • eval
  • print
  • loop

上記を3ファンクションでパワフルに実行するのはLispしかない(?)。スピードを考慮しないならば(するならCを)、Lispを使うのがよい。

Q.アートもフリーにすべき?

本には種類がある(?)。いずれにせよ、最低限、非商用であればコピーOKにするべき。

Q.フリーソフトのムーブメントを利用して利益を得ようとするひとがいるが?

別にいいけど?利益を得ることは規制していない(車がどーとか、馬がどーとか言っていたような?)

Q.FREEを広めるにはFREEじゃないものを取り締まる必要があると思うが、たとえばCLOSEDなソフトウエアをデコンパイルするとかして……

http://sgtpepper.net/hyspro/diary/?date=20030425#p01

まず、OPEN と CLOSED という言葉は、オープンソース界隈で使われている言葉なので、私は使いません。検知が難しいと思う。

Q.コピーライトとコピーレフトの中間って?

想像できない

たとえばFreeBSDとかあるじゃないですか

FREEだけど著作権持ってる(?)

Q.FREEソフトはサポートが十分じゃない。充実させていくつもりはあるのか?

マイクロソフトと同レベルのものは用意できていると思うが。つーか、サポートできてないっていう実証でもあるの?ないでしょう?もちろん、一般ユーザーが使うには難しいかもしれない。ちょっと前までGUIがなかったくらいだし。

改良を可能にすると、改良を不可にするよりもコストがかかると思ったんです

なるほど。それなら、スタンダードバージョンをお勧めします。スタンダードバージョンは多くのひとが使っていますし、サポートも充実しています。ただ、重要なのは、それ以外の選択肢も与えているという点です。それは制限するつもりはありません。

Q.FSFをうまく組織化する方法は?ヨーロッパのはうまくいってないようだが?

FSFは、アメリカ、フランス、インドにある。ヨーロッパの現在の体制はうまくいかないように思うが、こうしようと思っていることは今はない。