Gnu の誕生まで (Bit誌 「Emacs 解剖学」草稿 96.10)

Copyright (C) 1996-98 by 井田昌之. All rights reserved.

以下のテキストは、Bit誌(共立出版)への書き下ろし草稿である。 Vol.28, No.12, pp92-99 (1996) (無断転用厳禁)
今回はITS Emacsの開発から、 Gnu General Public License(GPL)の成立に至るまでの間に、Richard Stallmanの考え方はどんな経緯をたどったのか、その環境はそれぞれの 時代にはどんなものだったのかについて、お話をしてみます。

◎ Richardの実像

多少彼の考え方といったことに踏み込んでみます。したがって、必ずしも ここに書いた内容は客観的な事実という言うわけではなく、何年かの付き 合いを通して、筆者の体験を通した受け取り方という面があることをはじ めにお断りしておきます。

現在のGPLは第2版ですが、FSF (Free Software Fundation)では、GPLの 改訂をし、第3版を作ることをプランしています。作られた文書という ものは改訂されて行くことが自然であるわけですが、同時に、彼自身も 少しずつ考え方を変えている、あるいは成長させている、ということにも 気を留める必要があります。また、第1版を作った頃とは社会環境、技術 レベルが変わってきているという要因も忘れてはいけません。だから、彼 が10年前に何を言ったか、何をしたかで、現在の彼を決めつけてしまう のはやめたいと思います。

また、日本に彼が最初に紹介されて以来、彼のキャラクターは戦う戦士で ある、というイメージが強調されているように感じています。実際はもっ と、繊細でお茶目な、そしてプログラムと自分の理想のことをいつも考え ている「永遠の少年」のような人だと思います。気分がいいと、地下鉄の 中でも、歩いていても、コンピュータの前であってもフォークダンスのス テップをふむ、そんな姿が彼の本質だという気がしています。

そして、恥じらいながら、「ねぇ、こんな話があるんだけれど、ぼくはお もしろいと思うんだ。どう?よかったら遊びにこない?」あるいは「ねぇ、 中華食べに行くっていう考えもあるんだけれど、どう思う?」とか、 「もし興味があるんなら今とってもおもしろいグループの演奏してるカセ ットを持っているんだけど、聞いてみない?よかったら一週間貸すよ」 などと言う言い方をする彼の姿を思い出します。

あるいは、インド料理の店で、ぜんぜん関係のない隣にすわって食べている カップルに対して、ごく、率直・素朴な気持ちから「その料理はどう?ど んな味?そっちよりぼくの頼んだ方がおいしいと思うけれど、比べてみ ない?」などと言うのも彼の本質だと思っています。もっともこの率直・ 素朴型のスタイルでは、よくトラブルを起こすのですが。

彼がすごした環境、あるいは彼が今も守ろうとしている文化というのは何 なのか?

それはGNUあるいはGNU Emacsに具体的にあらわれています。そこで、彼の 軌跡とその時代をたどってみましょう。

◎ MITのAI研

Richard Stallmanは、おおざっぱに言って、ニューヨークの高校生からハ ーバード大の物理の学生、そしてMIT AI研のプログラマという履歴を持ちます。

AI研、そしてそこにあるITSシステムが彼の最初の居心地がいいと感じた環境 でした。そこには、それぞれ独立した芸術家がたくさん居て、それぞれの わざを完成させる上で、互いに利用し合い、育てあう、というような暮ら しがありました。良き意味でのハッカー文化がそこにあったといえましょう。 (当然、彼らハッカーは、現在のマスコミが定着させようとしているような 侵入者・破壊者のようなものではありません。むしろ人間の作ったシステム というものは欠陥だらけだということを熟知した繊細な芸術家であります。) 彼らは美ということをいつも気にしていたように思います。

「美しいか、そうでないか」あるいは、「さえてるか、さえてないか」 で判断をする傾向があったようです。

◎ 最初の環境:ITS

彼にとって最初の「すみか」であるITSとは何だったのでしょうか?

ITSの名はIncompatible Time Sharing Systemの頭文字から来ています。今も AI研にいるTom Knightがつけた名前のようです。ITSは当時のPDP-6のOSでし た。RichardはこのITSの上でEmacsを作っていきます。

なぜIncompatible Time Sharing Systemという名前がついたのでしょう? それは、当時、IBMマシンの上に作られたCTSS (Compatible Time Sharing System) に対する「あてこすり」でした。コンパティブルタイムシェアリングシステム より、我々のインコンパティブルタイムシェアリングシステムの方がコン パティブルだという主張です。CTSSはMulticsに発展し、ITSはその後の Digital Equipmentのコンピュータに大きな影響を与えます。彼らにとって、 CTSSは最悪のかっこうわるいシステムで、それとは全く異なった設計原理に 基づくコンピュータシステムとしてITSを始めるのです。

ITSは、開放的なシステムで、ハッカーにとって居心地のよいシステムでした。 たえず少しずつユーザによって手が入れられ、直して行けるのです。向上の 可能性がいつもあって、改良して行けるというのはすばらしいことです。

このITSもTennexやその後のOSとの競争の中で敗れて行きます。それは、 ちょうど、工業製品としてのコンピュータシステムの進歩ということ、 つまり、多数のさまざまな人が利用する、さらにいいかえれば、道具と してときどきコンピュータを使う人たちが増えてくることの中で、自分の 個人的な趣味・理想を実現する生活の場としてコンピュータシステムを考え る人たちの理想に燃えた共同社会のアイデアとのギャップがでてきたという ことです。

◎ 原始的理想主義的共同社会

ITSとCTSSの決定的な違いは、CTSSにはあったけれど、ITSではパスワードが そもそもなかったことです。ITSでは、ファイルのアクセスも相互に簡単に できました。そして、これは、   「自分でもプログラムを作るが、人のプログラムも利用し、    全体として使いやすいシステムに皆で育てていく」 という文化に合ったものでした。いわば、原始的な共同社会を志向していたと いうことが出来るでしょう。

70年代に入り、いろいろな技術要素がコンピュータシステムにはいって来ますが、 その中で彼がまず最も気にしたのは、この「パスワード」の問題だったようです。

彼は実質的にパスワードを機能させないように呼びかけ、自分もそうします。 まずリターンキーだけのパスワードにしようと呼びかけ、それに成功します。 次にそれがまずいようになると、その内容を具体的にここで述べる訳にはいき ませんが、模範を示すつもりで、彼は、自分のパスワードを単純な誰でも分か るようなものにします。

セキュリティと官僚主義は彼にとって同じものだったのです。 そしてそれは攻撃の対象でした。

今でも思い出しますが、初期のインターネットは皆オープンでした。アメリカ の中ではどこへ行っても「使いたいんだけれど」というと貸してくれて、それ で、自分の東京のホームにアクセスしたりできたのです。便利も便利、大感激 でした。電話でのアクセスも、それぞれの大学や研究機関のターミナルサーバ に入ってそこから直接にaoyama.ac.jpに入ることができました。87、88、89年 頃のことです。それがだんだんできなくなってきて、ごく限られた知り合い・ 友人のところだけになりました。私もだんだんと住みにくくなったなぁと思っ たものです。

パスワードの話に戻しますが、最初に彼に東京で私のところのシステムを作業 場所として提供した91年には、まだ、パスワードをなくそうといっていまし た。けれども翌年は彼はもう言わなくなりました。

◎ 時代の嵐

68年あるいは69年といった時代は反戦の嵐がふきあれた年でもあります。そし て、コンピュータというのは、特にアメリカのありふれた若者たちの間では 「体制の手先」のようなイメージがあったんだと、ちょうど同じ世代を過ご したGuy Steeleが語ってくれました。普通の人にとっては、IBMマシンのCTSS もハッカー文化のITSも、どっちもなにもかわりのないテクノロジー至上主義 と見えたようです。AI研のあったテックスクェアにも抗議のデモが来ました。

テックスクェアの九階には今でも鍵がかかっています。ハッカーたちにとって は鍵というのは秘密主義の象徴で、そんなものはなくせというのが主張でした。 パスワードも同じことです。しかし、皮肉なことに外からの抗議デモに対抗す るのに彼らはバリケードと鍵に頼りました。

それ以後、「錠のあるところでは働かない」といったハッカーも錠を一部認め るようになるのです。(ただし、このことがRichardのパスワードに関して起 こるのは筆者の知る限りでは92年頃だと思います。それはインターネットの 普及の中でネットワーククラッカーの横行から身を守るためでした。)

◎ Emacs Commune

「競争するより一緒にやろう」(work with each other rather than against.) このシンプルな彼の言葉に彼の考え方のすべてがあるような気がします。 「アメリカは利己的な競争社会になっている。それを建設的な共同社会に 変えたい。」これも当時の彼の言葉です。思想的な深さというよりも理想 主義的な素朴さを持った表現だと私は思います。

彼は、Emacsをこの原理を具体的に実践する場として選びました。事実 Emacsはそれにふさわしい設計と役割を持っていました。そして、その結果、 Emacsは世界中のどこでも使っている標準的なテキストエディタに育って行きます。

「Emacsの改良・機能向上に役立てるには、拡張した部分はすべて私の所へ 送ること。私が配っているようにしてほしい、そして皆でわかちあおう。」 これを彼はEmacs Communeと呼びました。

◎ 生活の変化

技術の進歩と普及は状況をどんどん変えて行きます。同時に、ハッキングの ことばかり考えていた連中も、結婚し子供が出来、生活が変わって来ます。 また、組織やグループの中での責任を背負うようになって来ます。ビジネスを しだすのです。

「独身状態」のものは今まで通りの生活を続けることができるけれども、 しだいにそういう仲間が減って来ます。

入って来るのは、新しい若い人たちばかりになります。そうすると、例えば、 水鉄砲を片手に、廊下をキャッキャとかけめぐる若者がFSFのプログラマに なってきます。Richardと一緒に気楽に「中華料理食べにいこうか?」という 連中がtech squareからだんだんと消えていきます。だんだん、Richardに とって寂しい時代になってきます。9月に行ったときには、彼のお母さんが 作った生魚の酢漬けとでもいうべきおかずを、結構日本人の舌にあう味で、 おいしいので一緒につまんでいましたが、まわりの人たちは変なものをたべ ていると逃げ出してしまうのです。

そして、若い人たちのあいだでは昔の人たちとは違って、すべてを共有するという 方式を扱いかねているものがでて来ます。潜水艦の乗組員でもプライバシー を守れる空間をそれぞれにと要求する、という時代です。そして自分の ホームを他人が書けるようにしておくとメチャメチャに壊されてしまうのでは ないかという懸念が、共通にしておく便利さより勝つような時代になります。

しばらくは彼のディレクトリは777でしたが、彼自身も740とか755に設定する ようになって来ます。

事実、パソコン世代の人たちにはUnixなどのファイルシステムの中で、自分の ディレクトリの中のアクセス権をどういう考え方で設定しておけばよいのか 知らない人たちが多くなっているといえると思っています。

◎管理者の苦渋

また、こんなことがありました。パトリックウィンストンは言います。 「AI Labの資金は現在では多数の比較的少額の導入によってなりたっているが、 以前はARPAなどのお金でほとんどまかなえた。昔は楽だったよ。」 そしてAI研のハッカーたちの生命線はそれに依存していました。

鋭い感受性を持ったある意味で理想主義者の集まりであった彼らは、互いに 尊敬し合っていたし、自分達が、エリート、特別な存在であることを心得て いたと思います。同時に実態としては極めて現実的に世の中に対応していった 側面もあるのです。

結局このハッカーたちがやってきたことは、いきさつや、余計な理屈付けを 全部とってしまえるとすれば何だったんだろうか?そんなことを最近考える ことがあります。私の結論は、    「道具を作るためのよい道具を作ること」 こんなことだったんじゃないかと思っています。

もっとも、そこに問題点の始まりがあったということもできます。そのうち、 その道具を改良するということが目的になってきていつでも道具いじりばかり しているという、研究者の本務という問題点が起こるのです。所長がパトリッ クウィンストンになり、彼の方針でのハッカー追放はここのところから来ています。

彼の管理者としての苦渋を語ってくれたときの顔は今でも覚えています。 彼は以下の3点を問題にしました。

1. ハッカーはドキュメントを残さない。
  --> したがって、他の人がそれを受け継いで仕事を進められない。
2. ハッカーは自分の芸術作品としてプログラムを作っている。
  --> 論文を書かないので研究所としてはたいへんこまる。  --> いい趣味の部分はいいが、そうでない部分もある。 しかし、他の人が手を入れられない。
3. ハッカーはスケジュール管理をしない。
  --> したがって、プロジェクトの一員としてみなすのは骨だ。
「ハッカーの連中はシステムいじり以外のことには興味を持たなくなって  しまったんだ。」とパトリックは言います。

◎ OS lockから逃れるたくましさ

GNU Emacsの前身となっているEmacsはITSシステム上のEmacsでした。しかし、 ITSが使われなくなってもEmacsは生き延びて行きます。彼は、たくましく、 力強く、Emacsを中心に置く彼の理想が、今日、OS lockといわれる現象 (アプリケーションプログラムが、ベースにするOSの寿命と運命を共に してしまうこと)に陥らないように、ITSの寿命から切り放そうとします。 それで彼は、時代の流れを感じとりながら、Lispマシン、次にUnixに、 Emacsのベースをシフトさせていきます。

そして、Emacsの製作者がRichard Stallmanであることに疑いの余地はない ですが、同時に、多数の人の知恵と具体的なソースコードが組み込まれてい ることも事実です。純粋に彼が一人で誰の手も借りずにすべてを書き上げた のではないわけです。ユーザの声や貢献をとりいれながらEmacsを成長させて いったのです。

いいかえれば、Emacsは機能拡張が容易にできるように設計されています。 これは、Teco以来の性質を受け継いできたものです。

この性質を利用して、Emacsの上での蓄積を貯め、それをOSからはできる だけ独立させようとしていきます。

◎Lispマシンへの逃避

だんだん大きなタイムシェアリング方式のコンピュータがハッカーの理想に 合わなくなってくると、それを実現できそうな別の環境へと興味が移ってくる というのは、誰が考えてもありそうなことです。それは、その頃Greenblattら が設計を開始していた、AI用のシングルユーザシステム、Lispマシンでした。 Lisp言語が彼の理想にあう道具だということもありました。

30万ドル程の資金をArpaから得て、AI研では6台のConsマシンを作ります。 LispマシンではLispプログラムの実行環境とその開発環境が連続していて、 Emacsがその中心となる位置にいました。さらに数十台が作られ、その 結果ビジネスにしよう、Lispマシンを売ろう、という動きが当然でてきます。

Greenblattは、大学の研究所であるAI研のスタイルのままやっていけるよう な会社を作ろうとしました。知らないものはその中に入れないし、外部から の投資も受けない、自分達でできる範囲で自由にやる。という感じです。

多くの周辺の人たちはそれではうまくいかなくなるだろうくらいのことは 理解していました。お金儲けを専門とする人たちが入って、それでやって いかなければ会社としてはなりたたないだろうということは理解はしていた のです。

Richardはそもそもこれらの動きそのものに疑問を感じていました。 「どっちにしても結局同じことさ。」

彼らはなんとか一つのグループとしてやっていこうとしたが、うまくいき ませんでした。80年代はじめのこの辺のことは、Steven LevyのHackersと いう本(Dell Book, 1985)にくわしく書かれています。

Greenblattは会社を起こそうとします。しかし、AI研では彼のLisp Machine Inc. (LMI)についていこうという人は少なかったのです。彼はプロの経営者 を入れるという考え方には賛成しませんでした。当時としては高性能の端末 を作りLispマシンキーボードのもとを作り、今もAI研にいるTom Knightは この時、LMIには懐疑的で、Greenblattとは対立していました。そっちには つくのは疑問だがビジネス化には興味を持つという人たちは、当時AI研の 所長をやめて実業をはじめていたNoftskerを中心とする動きに従うものが増えました。

GreenblattはAI研と約束した期限になり、彼のそもそもの考え方に 沿った会社の設立を決めます。それを受けて、Noftskerは外部資本の投資を 受けたSymbolics社をはじめます。AI研の中で、まわりで、この二社が きそうようになります。

そのうち、あきらかにLMI社のほうがいき詰まりだします。それでLMIは Texas Instruments社からの資本導入などを決め、なんとか動き出します。 LMIのほうがハードウェア技術に強くSymbolicsはソフトウェアに強いという 力関係になって来ます。Symbolics社は、多数の研究員をAI研から雇入れると 同時に、ソフトェアノウハウがLMIに流れるのを防ぐために、LMI社員が AI研で兼職するのを問題にし、出て行かせてしまいます。80年代前半のことです。

そして、ソフトウェアの問題なので、RichardとしてはSymbolicsと ぶつかるようになります。彼にとっては悪人はSymbolicsでした。

そして、今までの文化を知っている人たちはいなくなり、全く新しいタイプ の文化がAI研にもちこまれて来ます。彼の目にはそれはとてもたえられない ものでした。彼は、「Oh! my poor AI lab! You are dying and I can't save you」 (「かわいそうなAI研!死にかけているお前を私は救えないよ。」Essayより) となげきます。

Richard Stallmanは「Symbolicsは使わないし、そこで働く奴とも話をしない。そこと 関係を持つ奴ともはなしをしたくない。」と決めます。

RichardはLMIに協力的になります。そして、Symbolicsで優秀なソフトウェア開発者 たちが作成するコードをreverse engineeringして、コピーはしないで、 機能的に等しいプログラムを作って、LMIに提供し出します。

そう、数年前に通産省のある人たちとRichardをあわせたときに、彼は目を かがやかせて、「暗号技術をアメリカが提供することをこばむなら、 その技術を良く知って、それと同等あるいはそれ以上のものを日本で作って それを対抗馬としてはやらせればいい。」と言っていたのを思い出します。

Richardはしきりに「AI研は死んだ」ということだけを言っていました。 93年に住んでみるまでそれがどんな意味があるのか本質がわかりませんでした。 この二社の確執の中で、AI研のハッカー文化はずたずたにされたという わけですが、彼の嘆きの正しさと、それに加えて、彼の嘆きは一面だけを とらえているにすぎないということ、多くの人が彼を偉いとは思うが必ず しも同調する人ばかりでないこと、そういったことの理由がかなりわかった ような気がします。それを直接言葉で説明するのは大変なことで、今回の 文章全体から感じてもらえればと思っています。

◎ GNUの誕生: GNU is Not Unix

Richardが、かって泣かんばかりになげいたことがあります。 「私の人生ってなんだったんだろう。」

私が感じるのは、技術の進歩はそれだけで独立しているものではないという ことです。それなのに彼は、あまりに自分の仕事に熱中していてまわりの ことを気にしていませんでした。それにときどき自分で気がついてなげく ことがあるのです。同時に私生活についても同じことが言えます。 ある時、いつものように満員の小田急線の中で、若いアメリカ人女性3人が そばにいて、一生懸命彼が話しかけていたことがあります。あきらかに話が かみ合わないのですが、それでもめげずに必死に話しかけます。3人は先に 降ります。すると、彼は「チェッ、また逃しちゃった。いつもそうなんだ。」

同時に彼は彼のビジネスにはたくましさを持っていました。そして成功して いました。

GNUソフトは基本はUnix用のツールだと思っている人が多いですが、そうでは ありません。GNUはGNUなのです。 Emacsが色々なシステムの上で動作しているように、GNUはUnixと軌を一にする ものではありません。

ITSそしてLispマシンの次に、彼はあたためていた理想を実現するプラット フォームとして、Unixに目をつけます。UnixはちょうどTCP/IPそして インターネットの普及と共に彼の理想を実現する場として格好のものとなります。

Unixの上に彼の理想を実現して、それを世界中の人たちに利用してもらい、 またフィードバックを受けよう。けれどもUnixそのものじゃない。 それで、GNU is Not Unixにしよう!

◎Gnu General Public License Version 2より

そこでいよいよGNUの話になります。最初に述べたように、いわゆるGPL (GNU General Public License)は、現在第2版です。第一版は90年頃に 大きく紹介されました。そして、今FSFではその改訂をし、第3版の作成に かかっています。

第一版の紹介に際しては、「すべてのソフトウェアはフリーでなければ ならない」ということの過激な側面が実態以上に強調されて受け取られた ように思います。

たとえば、第一版の日本語版は以下のような文で始まるのです。 「ソフトウェア会社の使用許諾契約書は、多くの場合、その企業の 意のままにユーザを縛ろうとしています。 それに対してわれわれの一般公有使用許諾は、...」。

ある種の、対立的というか古い時代の階級闘争的な概念を感じる人も でてくるでしょう。「意のままにユーザを縛ろうとしている」あるいは 「われわれの一般公有使用許諾は」といった表現は気になります。 この部分の第2版の井田私訳は次のようになります。

「多くのソフトウェアライセンスは、そのソフトウェアを共有したり 変更したりする利用者の自由度を排除するように意図されています。 一方、GNU GPLは、...」

上の二つを比べてみて下さい。

第2版では、基本的な性質は変わっていないものの、現実的なビジネス環境を 理解した細かな取り決めが規定されています。さらにGNU Library General Public Licenseが別に用意されていてライブラリ機能の組み込みに関する 規定があったりします。

これは、第一版の規定文書だけでは不明確な点が多く、憶測により、 「ソフトウェアは無料でなければならない」とか 「GNUで提供されるソフトを使って作成したソフトは販売できない」 といったニュアンスの誤解を生んでいたので、徐々に本当に言いたいことを まとめていった、あるいは彼自身世の中の流れを感じて変わっていったこと を反映していると言えます。

そう、彼は世の中の動きには結構敏感です。そしてそれを可能な限りとらえ ようとします。自分のロジックをそこに持ち込んでみようとします。それで よく問題をおこすのですが、彼の方がすごすごと引き下がるケースもあったり します。少なくともチャレンジ精神はまったく衰えていないのは感心します。 そして、「君子豹変す」ということわざを彼に見ることもあります。Unix があまりおもわしくなさそうだという話が出たときに、彼の方から、 「じゃぁ、誰かマイクロソフトに連絡してくれないか、今後NTをベースに するのはどう?NTの上でもかなりGNU ソフトは載っているんだ。」などと 真顔でいう一面も持っています。文字どおりGNU is Not Unixなのです。

GPLは、(よくあるライセンスは自由度をとりあげるためのものだが、それと 違って)フリーソフトウェアを共有し変更する自由を保証するための ライセンスです。そして、「みんなで自分のフリーソフトをGPLで供給 しよう。」と呼びかけるのです。 フリーと言うのは自由ということであって、無料という意味ではありません。 (正確なGPLの解釈については正しく全原文を読んで下さい。)

最後に、ちょっとGPLについてフォローをしておきます。GPLに従う ソフトウェアは、「1)自由に再配布してよいし、 2)もし必要と感じたらそのソースを入手できるし、 3)そのソフトを改変したり、一部を利用したりして、そこから自分の フリーソフトを作っていい」、と定められています。

「you receive source code or can get it if you want it」が原文です。 「バイナリを渡すと同時に、ソースコードも渡さなければならない」 とは書いてありません。あくまで利用者の請求権の形になっています。 この辺を拡大解釈しているケースも見られたように思います。 GPLの第3版ではこの辺の合理的な解決を試みます。 まだ答がでていないので、それについてはいずれお話しましょう。