今日は、アンドリュー・タネンバウム教授(1944)と、リチャード・ストールマン(1953)の誕生日。
この二人が同じ誕生日、というのはすごい偶然だと思います。
タネンバウム教授は、MINIX の設計者。
MIT の卒業生で、カリフォルニア大学バークレー校で博士号を得ています。
その後、オランダのアムステルダム自由大学で計算機科学の教授を行っています。
この過程で、学生にコンピューターOSの仕組みを教える教材として、MINIX を設計。1987年に完成させます。
UNIX は、そもそもミニコンピューター(と書くと小さそうですが、パソコン=マイクロコンピューターより巨大なもの)で動くOSでした。
MINIX は、その機能を厳選し、IBM-PC で動くようにしたOSです。
MIT のハッカー風土を知り、バークレー校のBSDを知っている教授が作った、誰でも使える UNIX でした。
と言っても、MINIX は機能を限定した UNIX です。
MINIX でOSの仕組みを学んだリーヌス・トーバルズが、後に「ハイエンドな」IBM-PC で動く、フルセットの UNIX を作ります。
これが現在の Linux 。
ただし、Linux はOSの一番重要な部分、「カーネル」だけです。
周辺ソフトなどを整え、OSとして使えるようにするには、別のソフト群が必要でした。
話は変わって、リチャード・ストールマン。RMS とも呼ばれます。(ミドルネームは「マシュー」)
ストールマンも MIT の学生でした。ただし、卒業はせず、中退。
MIT のハッカー文化が消えつつあるときの学生で、書籍「ハッカーズ」の中では、最後の章でやっと登場します。
ハッカー最後の生き残りとして。
ハッカーの倫理は、当時のブームであった「ヒッピー文化」に深く根差しています。
誰かが作ったものは、皆で共有されるべき。すべてを公開し、秘密を無くすべき。
金もうけのために働き、稼ぎを自分一人の財産にする、なんていうのは、最も忌むべきことでした。
しかし、学生の時はそのような理想を口にしても、社会人になれば金もうけのために働く必要があります。
ハッカーたちの多くは、MIT 内の「AI研究所」に所属し、政府の助成金で研究をするモラトリアムを送っていましたが、その助成金すらも制限があります。
そして、みな自分たちの技術や知恵を「商品」として、商売をし始めるのです。
特に決定的だったのが、先日も書いた「Lispマシン」でした。
AI研究所では Lisp マシンを開発しましたが、この商品化のために Symbolics 社が作られます。
そして、「金儲けは許さない」とした一派と分裂。
許さないとした一派もLMI (Lisp Machine Inc) という会社を作り、結局は Lisp マシンで商売を始めるのです。
これが、ハッカー文化の終焉でした。
ストールマンはハッカー文化の中心となった人達よりも若く、このどちらの行動も許せませんでした。
…まだ若かったのですね。
そこで MIT を飛び出し、「すべてのコンピューターソフトをフリー(自由、無料)にする」という活動を始めます。
これが GNU 活動。
UNIX の複製品を作り、無料で配布することが当初の目的でした。
OS自体を作るのはなかなか難しいことです。
そこで、GNU は「周辺ソフト」から活動を開始します。
UNIX の標準コマンドは、すべて GNU 製品として用意しました。
一般的な標準コマンドよりも性能が良く、機能が多く、ソースコードも配布され、改造も自由で、無料です。
ソースコードは「Cコンパイラ」で処理すると、コマンドとして使える「実行ファイル」が出来上がります。
このCコンパイラも、GNU 製品で用意しました。
ソースコードの作成には、テキストエディタが必要です。
実は、ストールマンは GNU 活動を始める前から、Emacs というエディタを作っていました。
これも GNU 製品として使えるようにします。
UNIX 上では、OSは「カーネル」の部分と、ユーザーが操作を行う「シェル」の部分に分かれます。
このシェルも、従来より高性能なものを作成しました。
とにかく、UNIX のありとあらゆるソフトを無料で使えるように。
ただ、周辺ソフトは全部そろえられても、カーネルだけは作れません。
カーネルというのは、ハードウェアに密着し、その違いを隠す部分です。
上に書いたようなソフトは、そうした「違いが隠された」上で動作するものなので、OSが整っていれば、ある意味どこででも動作します。
しかし、OSのカーネルは、マシンごとに作成しなくてはならず、手間もかかるし泥沼の作業になりやすいのです。
さて、ここで先ほどタネンバウム教授のところで出てきた話に繋がります。
タネンバウム教授の MINIX で勉強したリーヌスが、Linux という新しい UNIX 準拠のOSを作りました。
ただし、カーネルだけで、周辺部分が一切ありません。
ストールマンは、UNIX 準拠のOSを用意しようとして、周辺一式を揃えました。
しかし、カーネルの部分がありません。
この二つを組み合わせれば、UNIX として使えるようになるわけです。
実際、現在の Linux は組み合わせた状態で「配布」されています。
ストールマンとしては、リーヌスの名前を付けた「Linux」という名前でこのセットが呼ばれることを、快く思っていないようです。
GNU/Linux と呼んでほしい、と呼び掛けていますが、あまりこの呼び方をする人はいません。
リーヌスとしては、Linux を GNU のライセンスに従って配布することにしています。
だから、ここでも GNU 製品と呼んでも差し支えないことになる。
もっとも、GNU の考え方も一枚岩ではなくて、GPL の解釈だって、リーヌスとストールマンで違います。
ここら辺、GNU に関してはいろいろな話があるのですが、長くなるのでまたの機会に。
同じテーマの日記(最近の一覧)
別年同日の日記
申し訳ありませんが、現在意見投稿をできない状態にしています。 |