読書ノート |
![]() |
| ▲ [ 国内 | 国外 | 記事 | 漫画 ][ Home ] ▼ [ 読感|抄録 ] |
|
それがぼくには楽しかったから
|
|
|
リーナス・トーバルズ, デイビッド・ダイヤモンド/風見潤(訳)/中島洋(監修) |
|
Linux の開発者である Linus Torvalds の自伝。どこでも売り切れだとばかり聞いていたので増刷されるまで待つか...と半ばあきらめていたのだが、さすがはアキバの書泉というか(たまたま通りがかることができたのである)、何と手に入れることができた !! これくらい有名な本だと文庫になるのを待つというのが通常のパターンなのだけれども、その種の本を出たばかりの単行本で買うというのは我ながら非常に珍しい。
内容は全 3 部に分かれていて、生い立ちと Linux のできるまでと、オープンソースとしての広がりを見せてから、という時間に沿ったものになっている。個人的に最も印象に残ったのは、Linus の万事における気負いのなさで、これが Linux の成功の大きな理由のひとつなのだということへのつながりの部分だった。少し前に読んだ 『闘うプログラマー』 と比較してみても、その点が特に顕著といえる。私も仕事である以上は「おもしろくなければ意味がない」とは思っているが、その延長線上のものが実際に世界レベルでのムーブメントにまでなったことは本当にすごいことだ。
また、Linus が初めから OS を目指して開発していたわけではなく、あくまで MINIX に不足していたターミナルソフトに機能を追加していった結果として、OS と呼べるものができたという逸話は、真実味があってよかった。オライリーからも Linux カーネルを扱った本が出るようだし、私も知識としてだけでも、その深淵に触れてみたいものだと思う。
で、人生にとって意義のあることは三つある。三つの原動力だ。ひとの営みのすべてのこと…いや、人はもちろん、生きとし生けるものが行うすべてのことの原動力だ。
一つめは生き延びること。二つめは社会秩序を保つこと。三つめは楽しむこと。
人生はなんであっても、この順序で進んでいくんだ。何かをしようっていう原動力は、いつだって、初めは生存に関係していて、それから社会的なものへと移り、最後は純粋な楽しみになる。そして、楽しみのあとにはもう何もない。だから、人生の意味は、この第三のステージにたどり着くことだといえる。つまり、第三ステージにたどり着けば、あがりってこと。ただし、まず前の二つのステージを経験しないとだめだけどね。cf.14/17/361
嘘はやめよう。ぼくはオタクだった。コンピュータ・マニアだった。それも、かなり小さい時から。強力な布テープで眼鏡を修繕したりこそしないものの、オタクに近いものだった――それ以外の条件はぜんぶ揃っていたんだもの。数学が得意で物理も得意、けれども礼儀とかなんとかになると、ゼロ。そして当時は、オタクはいいものだなんて、認められていなかった。cf.356
Linus の初めて書いたプログラムは BASIC で HELLO を延々と表示するものだった。cf.43
10 PRINT "HELLO" 20 GOTO 10
Linus はスウェーデン系のフィンランド人。身内にはジャーナリストが多い。
優れた技術者のほとんどは――そして、さして評価もされていない技術者の大半さえも、自分がいかに才能に恵まれているかを世間に示したがる。世界平和なんかよりずっと重要な任務で特別大切な役割を果たしているのだと誇示したがる。
しかし、リーナスは違った。
最初の年にあれほどがんばった原因がどこにあるのか、ぼくにもわからない。だけど、安心していい。あんなことは二度と起こらなかった。ぼくの大学生活は、このあと急降下していった。
私と同じだ :-)
フィンランドでは二つの選択肢が与えられている。8か月兵役につくか、一年間、社会福祉で奉仕するか、である。きわめて強固な宗教的理由や、重大な理由がある場合は、このどちらも免れることができるけど、ぼくには、そんな逃げ道はなかった。そして、社会福祉事業など、ぼくには向いてないように思えた。
そんなわけで、もし兵役のほうを選んだとすると、また二つの選択肢が現れる。ヒラの兵士として八か月を過ごすか、士官訓練校に行って、士官として一一か月を過ごすか、だ。十二万九六〇〇分よけいに務めなければならないものの、士官になるほうがちょっとだけ面白そうに思えた。-/- cf.62
フィンランド人のサウナ好きや沈黙の習慣について。また新物好きである点と携帯電話の普及の高さについて。(フィンランドにはノキアがある。)更には学校での奨学金の伝統について。
彼が大人になるまでに触ったコンピュータは、コモドール VIC20 (祖父から譲り受けたもの、後の Amiga)、Sinclair QL、386 の IBM PC だった。Sinclair QL では自作の逆アセンブラを作り、更に必要なソフトやゲームのクローンを作っていた。また、IBM PC には MINIX を入れて使っていた。
タネンバウム氏の『オペレーティングシステム―設計と理論および MINIX による実装』との出会いが、彼に UNIX の世界を教えた。(この本は今でも OS を扱った著名な本のひとつ。Linus はこの本に接した後で IBM PC を買った。) Linus が UNIX の世界に惹かれていったのは UNIX の持つ設計のシンプルさだった。そして、UNIX が技術力のあるヒッピーたち(非主流派)によって育てられてきた側面について。
醜いシステムというのは、やりたいことにいちいち特別なインターフェイスが必要になってくるやつのことだ。ユニックスはその反対だった。ユニックスはビルディング・ブロックというものを与えてくれ、そこでなんでもできる。すっきりした設計とはいかなるものかを、ユニックスは教えてくれる。
こりゃあばかげてる(マイクロカーネルに対して:唯野注)、とぼくは思った。確かに、一つ一つの部分は単純だ。けど、それが相互に作用しあったとき、リナックスのように多くの機能がカーネルに収まっている場合より遥かに複雑な状況が生み出されることになる。脳のことを考えてみよう。脳を作る一つ一つの単位は単純なものだ。けれども、それらの間に起こる相互作用のせいで、全体としては非常に複雑なシステムになっている。全体は部分より大きい、ということだ。ある問題を取りあげて、それを半分にしたとしよう。半分になったから複雑さも半分になったというわけにはいかない。複雑さの中に、その二つの半分の間で取り交わされるコミュニケーションを加える必要があるってことを無視している。-/-
これがスティーブ・ジョブズとの議論でのすれ違いの原因にもなる。(当時の Mac は Mach というマイクロカーネルにこだわっていたため:唯野注)cf.229
MINIX では教材用であることに伴う重大な制限がいくつかあった。そのひとつにターミナル・エミュレーションの問題があり、そこで彼は MINIX には依存しない裸のハードウェアレベルで動く独自のターミナルソフトを書き始める。cf.119 そして、彼は自分にとっての必要なものを、そのターミナル・エミュレーションに付け加え始めた。ディスク・ドライバやファイルシステム・ドライバ、更には POSIX のシステムコール etc..
プログラミングをやっている者にとって、それはこの世で一番面白いことだ。それはチェスよりもずっと複雑なゲーム。自分でルールを作ることができ、最終的にはどんなものでも作り出せるゲームだ。
だけど、外から見るかぎりは、この世で一番退屈なものと映るだろう。
でも、本当のことだ。君は自分の世界を作ることができる。君にできることを制限するのは、マシンの性能だけだ――それから(最近ではこっちのほうが大きな理由になってきてるけど)君自身の能力だ。
とはいえ、プログラマーはほとんどの時間、そういうことをしているわけじゃない。なんらかのタスクをおこなうプログラムを書いているだけ。この場合、新しい世界を造っているわけじゃなくて、コンピュータの世界にある問題を解決しているわけだ。その問題はよく考えることで解決できる。ある種の人間だけが、じっと座って、画面をにらみつけ、とことん考え抜くことができる。ぼくみたいなネクラでオタクの人間だけが。
これはけっこう大変だった。プログラム――寝る――プログラム――寝る――プログラム――食べる(プレッツェル)――プログラム――寝る――プログラム――シャワー(短時間)――プログラム……という日々だった。そんなことをしているうちに、このプロジェクトが OS になりかけていることがはっきりしてきた。そこでぼくは頭を切り換え、ターミナル・エミュレーションではなく、OS として見るようにした。
開発の初めのうちは、そんな風に進んでいった。サンの OS のマニュアルや様々な本から仕様に関する部分を読み、システムコールを一つ一つ拾ってきては、ちゃんと動くものを作ろうとした。この作業には、まったくイライラさせられた。
その理由は、何も起こらないからだ。なんの進歩も目にすることができないからだ。いま付け加えた機能をテストする小さなテスト用プログラムを作ることはできるけど、そんなことをしても、何かを達成したことにはならない。
そして、ついに UNIX での非常に重要な部分といえるシェル(bash)が動き始めた。シェルが動くとプログラムのコンパイルができるようになりシステムの全体像がかたちになり始めた。
シェルが動きさえすれば、一瞬で〇(ゼロ)から一〇〇まで流れるような感じだ。すべてのピースが然るべき場所に収まっているからだ。ピースが過不足なく収まったとき、ぼくは「光あれ」という瞬間を体験した。その時まで、何一つまともに動かなかったからだ。
Linus 自身は当初、Linux よりもフリークス(freax)という名前を使っていた。そのバージョン 0.01 は 1991.9.17 に comp.os.minix で初めて告知され、このときのソースは 1 万行ほどだった。
そして、そのままだったら自己満足で終わっていたものが、Linus 自身の MINIX の環境が壊れてしまったこととユーザによるフィードバックによって開発が継続されるようになる。つまり、Linus は MNIX の環境を復元するか、それとも Linux を改良するかの選択で後者を選んだのだった。そしてユーザの希望を取り込んだページ・ツー・ディスク(メモリの限られた環境でディスク側を退避環境として使う機能)の実現されたことで、次第に(MINIX コミュニティ内を問わず)広がっていった。cf.176
そして、Linus は Linux を売り物にしたくなく制しきれなくなるのも嫌だったので、それを GPL に従って公開した。
GPL の規定によれば、お金は問題ではない、誰かが払うというなら、一〇〇万ドルで売ってもいい。でも、ソースコードは公開しておかなくてはならない。そして、買った人間ももらった人間も、作者と同じ権利を有さねばならない。素晴らしい条項だ。ただし、多くの筋金入り GPL ファンは別として、革新的な新しいソフトはどんなものでも、GPL にして、全世界にオープンにしなくちゃならない……なんて、いったいどこの誰が主張するんだ ? 自分が作りだしたものは、それを作った本人の裁量で決めるべきだと、ぼくは思う。cf.288/290-291
MINIX のアンドリュー・タネンバウム教授とのネット上での議論について。これは 1992 年の初頭から始まった。よくいわれているように、この議論における対立こそが Linux というものの方向性を決定し、Linux の広がる大きな理由にもなった。なぜなら、マイクロカーネルでないモノシリックカーネルは、Linus のいうシンプルさだけでなく既存資産の移行を行いやすくしていたためである。(唯野)
人前で話すのは、ずっと苦手だった。学校では、熱心に研究した内容(ネズミであれ、なんであれ)について発表しなくちゃならないことがある。ところが、ぼくは昔から、それができなかった。しゃべることもできず、ただ突っ立っていて……そのうちクスクスと笑いだしてしまう。信じて欲しいが、ぼくは笑い上戸じゃない。問題を解いて、それを黒板に書くのさえ苦痛だった。
X ウィンドウ・システムと(そのベースになる)ソケットの用意されるメドが立ったとき(1992 年の春)、Linus は OS としてもかなり機能が揃ってきただろうということで、0.13 から 0.95 までバージョンをすっ飛ばした。ところが、実際にはそれがちゃんとした機能として動くようになるまで 2 年近くかかってしまい、パッチレベルも含めると 0.99 15Z まで改良が続けられた。そしてパッチレベル 16 が晴れてバージョン 1.0 になった(1994 年 3 月)。バージョン 1.0 は彼自身にとってもひとつのマイルストーンであり、Linux で商売をしたい人たちにとってみても意義のあることだった。
ぼくはかなり早い時期に、人を導く最高・最善の方法は、人に仕事を任せることだと学んだ。ぼくが彼らに仕事をさせたいんじゃなく、彼ら自身がその仕事をしたがっているのだから。
さらにまた、優れたリーダーというものは、自分が間違っている時はそれにちゃんとそれに気づき(ママ)、自分の意見を引っ込めることができるものだ。そして、優れたリーダーは、みんなに、自分で決定を下せる権限を与えるものだ。
言い換えよう。リナックスの成功は、ぼく自身の欠点のおかげなのだ。cf.191/256/343
1993 年にヘルシンキ大学で教育助手をしていた彼は「コンピュータ・サイエンス入門」の生徒だったトーベと知り合う。「私にメールを出してください」という宿題に「デートしてください」と書いてきたのが、ふたりの知り合うきっかけだった。
ノベルの招待を受けて彼は生まれて初めてアメリカを訪れる。ノベルは結局 Linux のプロジェクトを破棄してしまうが、そこからスピンアウトしてできたのが Caldera。
1995 年頃(カーネル 1.2)になると商用 Linux がいくつも登場し、Linux は Alpha マシンだけでなく SPARC などにも移植され、Linux Journal は 1 万部を越えるなど、大きな進歩を見せるようになった。(移植はコードに抽象化されたレイヤを追加することで実現された。)そして、同じ頃に起こった Linux をめぐる商標問題は商標が Linus 個人に移ることで決着を見た。
Linux のマスコットになっているペンギンとしてラリィ・イーウィングというグラフィック・アートをやっている人間のものが選ばれた。
しかし、それはただのペンギンじゃなかった。リーナスはなにより、幸せそうに見えるペンギンを望んでいた。まるでジョッキ一杯のビールをぐいっとやって、素敵なセックスをしたあとのようなペンギンを。その条件に加えて、そよにはないペンギンを望んでいた。だから、普通のペンギンがみな、黒いクチバシと足を持っているのに、リナックスのマスコットのそれは、オレンジ色で、アヒルとの間に生まれた子供のように見える。-/-
1996 年は娘が生まれ、修士論文を書き上げ、トランスメタでの就職が決まった年となった。
こういうことは、まったくぼくにぴったりだった。何かをやっている非リナックス企業というのは、技術的にほんとに興味深い。(おっと、これは、今年の控えめ表現大賞だ。トランスメタがやっているようなことを真面目に検討した会社は他にないだろう。)そして、そういうことになったら、ぼくがよく承知している分野だ――深遠なる 80x86 系における低水準言語によるプログラミングである。きっと思いだしてくださるだろうが、そもそもリナックスが生まれたのは、ぼくの持っていたパソコンの CPU について詳しく知りたいというのが動機だったんだものね。
それからサンは、自分たちの使用許可条件について説明を始めた。ひどいものだった。ばかげていた。煎じ詰めていえば、もし誰かが JINI を半分でも営利目的に使ったら、もはやオープンソースでなくなる、というのだ。まったくばかばかしい限りだ。招待しといて、自分たちのオープンソースを大げさに自画自賛したことに、ぼくはカッとなった。ソースコードを読めるからこそオープンソースなのに、変更を加えたかったり、自分のシステムの基礎に使いたいと思ったりしたら、サンから使用許可を得ないといけないなんて。-/-
なんで弁護士のニュースグループの話をしたかというと、この手のニュースグループはそのばかばかしさにも関わらず、いま何が進行中か、その糸口をかいま見せてくれるからだ。いろんな企業が、リナックスというのはよくできた OS だと認め始めたとき、企業サポートの数がふえていることをまず話題にしたのは、新聞でも家電チェーンのフライズ・エレクトロニクスのレジでもなく、弁護士のニュースグループだったのだ。
ネットスケープによるブラウザのオープンソース化は(不完全な部分はあったものの)大きな影響を与えた。そして、それに続いて、サン、IBM、オラクルによる Linux へのサポートの表明があった。更にソースコードへのアクセスができる Linux は、企業における Linux の普及に拍車をかけた。そういった中でフリー(自由、無償)に代わるオープンソースという言葉も生まれた。
オープンソース関係者の中にも、理想からはずれていった者がいたというのは、ある程度は当たっているだろう。それを信条を失うことだと考える人もいるけれど、しかし、単に選択の幅が拡がっただけじゃないか、とぼくは思う。たとえば、子供を養っていけるだろうかと心配していた技術者にも、選択の道が拓けたのだ。いままで通り、理想を貫いていくこともできるし、新しく拓けたビジネスの道を進むこともできる。
マスコミに描かれたイメージはどこへやら、清貧を誓った無私無欲の庶民の英雄は、素直なところを言えば、(ストックオプションを得たことで:唯野注)有頂天になってしまった。
よーし、正直に言ったぞ。
さて、ここでぼくの黄金律を披露しよう。一つ目は「自分がして欲しいことを人にもしてあげよう」。このルールを遵守すれば、どんな状況にあっても自分がどんな行動をとるべきかちゃんとわかるというわけ。二つ目は「自分のすることに誇りを持て」三つは「そして、楽しめ」
ここ何年か、リナックスの広告塔をやってきて学んだことが一つある――それは、これよりもっとひどいことがあるってことだ。自分のことを大げさに捉えるだけじゃまだ足りないって連中が、世の中にはいるのだ。そういう人たちは、他人も同じ思い込みに陥らないと満足しない。これが、いまのぼくにとって最大の不満だ。
道徳観を押しつけるのが間違っているのと同様に、その次のステップ――つまり、道徳観を制度化するのは、二重に間違っている。ぼくは、個人には選択の自由があると固く信じている。だから、道徳の問題となると、自分で決めるべきだと思うのだ。
ところで、読者のみなさんが、著作権というのは本当に有害なものであるとぼくが考えていると思い始めているのなら、それは間違っている。ぼくは、著作権をとても大事に思っている。ただ、創作者の権利をあんまり重く見過ぎるのはよくないとも思っている。消費者を圧迫するところまで重視しちゃいけない。消費者としてだけでなく、著作物(この本やリナックス)の創作者として、そのことを言っておきたい。cf.304/308-309
まっとうな人間なら、秘密がひとたび外に洩れたら、もはや秘密でないことを知っている。ところが、知的財産法という奇妙で、ねじ曲がった世界では、話は別だ。そこでは、みんなが知ってしまったあとでも、秘密は秘密のままなのだ。-/- cf.312
他人の知的財産を違法に使うのをいまよりいっそう難しくしようという新しい努力の多くが、同時に、他人の作品を合法的に使うことをも難しくしている……ってのが問題なのだ。-/-
テクノロジーを使って人々を支配するのは、まったく無駄な試みだ。それは結果として企業を傷つけるだけでなく、テクノロジーの受容を妨げることにもなる。最近のいい例は、最初に持っていた魅力をすっかり失ってしまった Java である。Java 環境を支配しようとして、サンマイクロシステムズは基本的に支配力を失ってしまった。Java はいまだにいいものだけど、その潜在能力をうまく発揮できないでいる。
ビジネスの予測をするやつぐらい、不愉快なやからはいないんじゃなかろうか ? 狂ったテクノロジーというジェットコースターがぼくたちをどこに連れて行くか、知ってるふりをする尊大な連中のことだ。
これは繰り返し言わなくちゃならないことだけど、記憶しているかぎりでは、ぼくは自分の人生についてほとんど何も予測できなかった。自分のために書き始めた小さな OS が、いつの日か、世界中で使われるようになるなんて予測したろうか ?
テクノロジーの未来について語るとき、本当に大事なのは、人々が何を望んでいるか、だ。それがわかりさえすれば、残った問題は、いかに手早くそれを大量生産に移し、人々が他の欲しい物をあきらめたりすることなく入手できるよう、安価にするかということだけだ。他には重要なことなんて何もない。
これはちょっとどうかなと思う。現在では消費者のニーズそのものに、市場によって作られている部分のある以上...少し短絡的過ぎるように思う。
オープンソースというジグソーパズルの中で、一番理解されていないピースの一つは、どうしてこんなに大勢のプログラマーが、まったくの無報酬で働こうとするかってことだろう。
順序として、その原動力について述べておこう。多少なりとも生存が保証された社会では、お金は最大の原動力にならない。人は情熱に駆り立てられたとき、最高の仕事をするものだ。楽しんでいるときも同じだ。これは、ソフトウェア技術者だけじゃなく、劇作家、彫刻家、企業家にも当てはまる真実だ。オープンソース・モデルは、人々に情熱的な生活を送るチャンスを与える。楽しむチャンスも。さらに、たまたま同じ会社で机を並べている数人の仲間とではなく、世界で最も優秀なプログラマーたちと仕事をするチャンスも。オープンソースの開発者たちは、仲間からいい評価を得ようと懸命に努力する。こうしたことは大きな原動力になるに違いない。
人々は、言論の自由について、屁理屈をこねたりしない。自由こそ、人々が生命をかけて守ってきたものなのだから。自由はいつでも、生命をかけて守るべきものだ。しかし、はなっから自由を選択するのもまた簡単なことじゃない。オープンソースについても同じことがいえる。オープンにするかどうか、決定を下さなくてはならない。最初からオープンにするという立場に立ってみると危なっかしくてしようがないが、実際にやってみると、その立場はずっと安定したものになっている。
Linus が中立であることの重要性について。また、それゆえに全員の期待に答えられるわけでもないということについて。(これには Linux がオタクだけのものではなくなったことにも関係している。)
ぼくはテクノロジー屋として、テクノロジーが何も動かさないことを知っている。社会がテクノロジーを変化させるのであって、その反対じゃないんだ。テクノロジーは、ぼくたちにできることとできないことの境界線を引くだけだ。-/-
この双方の利害を融合させる仕組みが「オープンソース」である。まず、だれかが基本的な知識を公開して、これを利用する人は同時にその成果物である自分の知識も公開する、という仕組みだ。利用する者は、情報や知識をもらいっ放しではいけない。自分もそれに報いて何かを与えるようにするのが、この共同体のルールである。
工業化社会では、自分の持ち物を他人に譲渡すれば自分のモノではなくなるが、情報社会では手元からなくなるどころか、他人からその返礼としてもっと多くの情報や知識が集まる。「一マイナス一」は工業社会ではゼロになるが、除法社会では「一マイナス一」は「多数」になる。もはや工業社会時代の常識や算術は成り立たない。むしろ、その返礼の豊富さこそが、自分のもっていた情報や知識の価値の多寡を示すことにもなる。
▲ [ Top ]
|
Copyright (C) 2001-2006 唯野 Comment to Webmaster Last Modified 2003.11.19 Since 2001.6.29 Readed 2001.6.29 |