第29回 リーナス・トーバルズを助けた男
脇英世
2009/6/30
本連載を初めて読む人へ:先行き不透明な時代をITエンジニアとして生き抜くためには、何が必要なのでしょうか。それを学ぶ1つの手段として、わたしたちはIT業界で活躍してきた人々の偉業を知ることが有効だと考えます。本連載では、IT業界を切り開いた117人の先駆者たちの姿を紹介します。普段は触れる機会の少ないIT業界の歴史を知り、より誇りを持って仕事に取り組む一助としていただければ幸いです。(編集部) |
本連載は、2002年 ソフトバンク パブリッシング(現ソフトバンク クリエイティブ)刊行の書籍『IT業界の冒険者たち』を、著者である脇英世氏の許可を得て転載しており、内容は当時のものです。 |
アラン・コックス(Alan Cox) ――
Linuxデベロッパ
もし読者の手元にパソコンがあって、インターネットに接続できる環境であれば、アラン・コックスのホームページを探してほしい。URLはしばしば変更されるためここには記さないが、おそらくホームページには彼の写真がある。その風貌は衝撃的だ。Linux文明圏というのは、どうしてこうも面白い人間ばかり抱えているのだろうと不思議に思ってしまう。それでいて当人は、「ちゃんとした社会生活を送っていますよ」というのだから、人によっては相当な誤解をするらしい。しかし誰あろう、彼こそが、リーナス・トーバルズに次ぐLinuxのナンバーツーなのである。
アラン・コックスは英国人である。ウェールズの田舎に生まれて、地元の大学に行き、いまもそこで暮らしている。現在では、インターネットが爆発的に普及した恩恵により、特に米国のシリコンバレーや、ワシントン州シアトルに行かなくとも、田園風景に囲まれたウェールズでの暮らしを続けながら、全世界を揺るがすほどのLinux革命に参加することができるようになった。
アラン・コックスとコンピュータとのかかわりは、割と早い時期から始まる。子どものころに病気をわずらい、しばらく学校を休んでいたアラン・コックスは、そこでTRS-80やコモドールのPETでBASICを勉強した。1968年に生まれて、10歳そこそこの年齢でBASICを操っていたことになる。なかなか早熟な子どもである。BASICをマスターした後は、シンクレアZX81やZXスペクトラムを手に入れ、Z80のアセンブリ言語を勉強した。C言語を学ぶよりも先に、アセンブリ言語を学習したという。
高校を卒業したアラン・コックスは、スワンシーにあるウェールズ・ユニバーシティ・カレッジのコンピュータ科学科に入学した。そこでは、ずっとUNIXシステムが欲しいと思っていた。しかし、安価といわれるMINIXですら彼の手には届かなかった。その渇きを癒やすためだろうか、手持ちのパソコンのアミーガに、UNIX風のプログラムを詰め込んだこともあった。ただ、アミーガ用のUNIXを自分で作るほどの勇気はなかったようだ。
Linuxとのかかわりは、学生時代にエセックスMUDのファンになったことから始まる。ここでのMUDは、マルチ・ユーザー・ダンジョンもしくはマルチ・ユーザー・ディメンジョンのことである。アラン・コックスは友人たちと一緒にアーバーMUDを書いたのだが、アーバーMUDを走らせるためには、これを走らせるプラットフォームとしてのUNIXが必要であった。このころ、フリー・ソフトウェアとしてのUNIXには、Linux0.11と386BSDがあった。だが、386BSDは浮動小数点演算プロセッサのインテル387を必要としたためにあきらめた。当時、アラン・コックスにはインテル386搭載のパソコンを買うだけの予算しかなかったのである。さらにインテル387を買う余裕などなかった。
そこでアラン・コックスはLinuxに取り組むこととなり、Linux0.95をインストールした。当時のLinuxは、フロッピー・ディスク2枚程度のつつましいものであった。ちなみにLinux0.11が出たのは1991年12月であり、Linux0.95が出たのは1992年3月である。多分、386パソコンを買うのに数カ月ほどかかったのだろう。面白いのは、MUDを書くためにLinuxを必要としたことである。MUDで遊ぶためにLinuxを必要としたわけではないのだ。
大学でコンピュータに興味を抱いていた人たちもLinuxのマシンを買ったが、大学のキャンパスにイーサネットが採用されたために、LinuxマシンにもTCP/IPのネットワーク機能が必要になった。しかし、当時のLinuxにおけるネットワーク機能はうまく動作せず、アラン・コックスが挑戦することになった。当時、Linuxにおけるネットワーク機能の開発はボランティアのロス・ビロが担当していたが、随分とひどいものであったようだ。しかも、大学院の論文を仕上げる作業にも追われていた。そこで、フレッド・フォン・ケンペンがLinuxのネットワーク機能の開発を引き継いだのだが、彼はバグをフィックスせずに、新しいプログラム・コードを書き始めた。これは最悪のパターンである。結局Linuxのネットワークは相変わらず動かない状態にあったため、アラン・コックスが既存のLinuxのTCP/IPコードのバグフィックスと保守に取り組むこととなった。そうこうするうちに、Linuxのネットワーク機能の開発といえばアラン・コックスということになっていった。フレッド・フォン・ケンペンの新しいプログラムは遂に完成しなかったらしい。
アラン・コックスはネットワークだけでなく、Linuxカーネルのハッキングにおいても活躍している。彼の業績として最も有名なのはLinux0.99.13においてLinuxのメモリ・リークの問題を解決したことである。この問題にはリナックス・ソサエティーの人々が数カ月悩まされていたので、アラン・コックスは大いに名を上げることとなった。
1994年3月のLinux1.0以降、アラン・コックスはせっせとバグを取り、プログラム・コードに磨きをかけていった。そして、Linuxカーネルのプログラム・コードは、リーナス・トーバルズとアラン・コックスの管理下にあるといわれるまでになるのである。Linux1.2は、彼の意見によると、なかなか改善されたという。Linux1.3以降では、多くの人たちがLinuxにおけるネットワーク機能の開発に参加するようになったため、開発の重複を避けるために、リーナス・トーバルズが人材の配置を最適化した。エリック・シュネックがLinuxのTCP/IPプロトコル・スタックをすべて正式仕様に従うようにした。アラン・コックスの書いたものを読んでいると、アマチュア的な色彩が時々見え隠れする。
本連載は、2002年 ソフトバンク パブリッシング(現ソフトバンク クリエイティブ)刊行の書籍『IT業界の冒険者たち』を、著者である脇英世氏の許可を得て転載しており、内容は当時のものです。 |
» @IT自分戦略研究所 トップページへ |
@IT自分戦略研究所は2014年2月、@ITのフォーラムになりました。
現在ご覧いただいている記事は、既掲載記事をアーカイブ化したものです。新着記事は、 新しくなったトップページよりご覧ください。
これからも、@IT自分戦略研究所をよろしくお願いいたします。