2012-09-07

RMSの自由ソフトウェアの目覚め

RMSの時代のMITでは、自由な文化があった。ソフトウェアは自由に使え、ソースコードも公開されているのが当然だった。そのため、ソフトウェアにバグを見つけた場合、自分で直すことが可能だったし、改造することもできた。

MITには古いプリンターがあった。印刷は遅いし、まっすぐ印刷できずに歪むし、印刷も不鮮明で、しかもよく用紙が詰まった。MITにいる人間は工学技師ではなく、プログラマーだったので、プリンターを修正することは出来なかった。しかし、ソフトウェアは修正できた。そのため紙詰まりを検出すると、今印刷を行なっている人間の画面上に警告を表示させることができた。警告を受けた人間は、すぐさまプリンターのところに行って紙詰まりを解消した。

ある日、ゼロックスの新しいレーザープリンターがやってきた。このプリンターは、印刷が早いし、まっすぐ印刷できるし、印刷も鮮明だった。しかし、やはりときどき、紙詰まりは発生した。MITの人間は、昔のプリンターと同じように、ソフトウェアを改良することで、紙詰まりを検出して警告するようにしようとした。しかし、プリンターのドライバーはバイナリで、ソースコードが提供されていなかったので出来なかった。

そのため、この新しいプリンターの利便性は最悪だった。人間がプリンターの前で、印刷されるところを見張っていないといけなかったのだ。

あるとき、カーネギーメロン大学が、このプリンターのソフトウェアのソースコードを入手したと聞いた。そこでRMSは出かけていき、ソースコードをくれるように頼んだ。しかし、返事は、「渡せない。ソースコードを他人に渡さないよう約束しているから」だった。

このとき、RMSは言い表しがたいほど激怒した。RMSはあまりに激怒したため、何も言わずに後ろを向くと、無言で立ち去った。これが、RMSがNDAと出くわした最初の瞬間だった。

ソフトウェアにおいて、NDAは邪悪である。なぜならば、NDAによって、そのソフトウェアで、他人を助けることができなくなるからだ。ソフトウェアのNDAは利用者を分断する非人道的なものである。

時代の流れには抗いがたく、MITにも不自由なソフトウェアが流れこんできた。コンピューターを更新することになったのだが、その当時のコンピューターのOSは、みなソースコードが提供されておらず、さらに利用にはNDAに同意しなければならないかった。

ここでRMSは戸惑った。もしNDAに同意しなければ、コンピューターを使うことができない。コンピューターを使えなければ、自分はこれ以上プログラミングができない。多くの同僚たちはNDAに同意した。NDAに同意しなければコンピューターが使えないのだから、同意するしかないのだ。RMSはこのことを考えた挙句、NDAへの同意を拒否した。NDAに同意して不自由なソフトウェアを開発すれば、まあそれなりに金を稼げるだろう。しかし、後の人性をふりかえった時、自分は利用者を分断する非人道的な仕事をしていたのだと、絶対に後悔する。そんなことを正当化できるはずがない。

「一体何を考えているんだ。飢え死にするぞ」と同僚たちは言った。たしかに、RMSはこれまで、プログラマーとして人生を歩んできたので、プログラミング以外の能力は全く持っていなかった。しかし、RMSはウェイターとして働けるだろうと考えていた。ウェイターは、少なくとも非人道的な仕事ではない。ただしマクドナルドを除く。

RMSは今後の身の置き方について考えた。このままでは、自分はプログラミングできない。問題は、NDAを結ばなくてもよい、ソースコードが提供されていて、自由に改変もできる、自由なOSがないのだ。ところで、彼の専門は、システムプログラミングである。ならば、自分で自由なOSを作ればいいのではないか。少なくとも、自分のこれまでの経験が無駄にならない生き方だ。

RMSは自由なOSをつくろうと決意した。どのようなOSにするのか。RMSと同僚たちが15年かけて築き上げたPDP-10上のソフトウェア環境は、PDP-10のアセンブリで書いてあるソフトウェアは、すべて時代遅れとなってしまった。これは、PDP-10が、もはや時代遅れになったからである。この悲劇を再び繰り返さぬために、OSは移植性に優れていなければならない。市場を観察すると、UNIXが移植性に優れている。RMSはこれまで、UNIXを触ったことはなかった。しかし、UNIXはまあまあのOSであるので、UNIX互換OSを作ることにした。

OSをつくろうと決意したRMSがまずはじめに行ったのは、MITの職を辞することであった。これは、MITの職員の作成したソフトウェアは、MITが権利を保有することになっていたためである。自由なOSとして、そのようなことは受け入れがたい。ただ、MITの上司は気のいい人間だったので、MITに辞表を出したRMSに対して言った。

「ふーん、辞めるんだ。ところで、鍵はどうする? まだほしいかい」

RMSはそういうことになるとは思わなかったので一瞬戸惑ったが、YESと答えた。こうして、RMSはMITを辞してもなお、MITのコンピューターを使えることになった。

UNIXは巨大なOSである。自由なUNIX互換OSを実現するには、上から下まで全部自前で実装しなければならない。RMSは完全なUNIX互換OSを開発して、そして人々に配ろうと考えていた。

ところで、RMSが二番目に開発したソフトウェアは、Emacsであった。これは、RMSはviが嫌いで、その操作方法を覚えたくなかったからである。RMSはviがあまりにも嫌いだったので、別のコンピューターで、別のエディタを使ってEmacsを開発し、そのコードをUNIXに写してコンパイルしたのだ。Emacsが動くようになり、UNIX上でコードが書けるようになったので、開発がだいぶはかどることになった。

Emacsは、RMSが自分で書いた、RMSが満足するテキストエディターである。人々は、Emacsの価値を認め、完全なGNUが完成しないうちから、Emacsを欲しがった。しかし、まだ当時は、インターネットを持っている人間は稀であったので、Emacsの配布は、磁気テープにコピーされて渡された。

配布が問題だった。RMSは磁気テープにコピーする作業ではなく、コードを書きたかった。そこでRMSは言った。「すでにEmacsを持っている人間からコピーをもらえ。また、150ドル払えば私が磁気テープにコピーして送ってやる」

150ドルはだいぶ高い価格であったが、結構な人間が、オリジナルのコピーをRMSの手から欲しがった。そのため、はからずも自由なソフトウェアで多少は稼ぐことができた。

金があるというのは問題だ。金があると、家とかヨットとか子供とかを欲しがる。しかし、そういうものを買うと、維持費にさらに金がかかるので、より一層金を稼ぐことに努めなければならない。これでは、金を使うのではなくて、金の奴だ。家やヨットならば売ることもできるが、子供は逆出産できない。こういう贅沢な習慣がなければ、金のない生活は苦ではない。

1 comment:

yx_wh said...

金の奴隷にならずにいきている人はすごいですね。
自分にはできるかどうかな。