オープンソース開発者 奥地秀則氏のパーソナルヒストリー(前編)GRUB開発者、Nexedi CTO

» 2008年09月24日 00時00分 公開
[垣内郁栄@IT]

 すでにITシステムの中で欠かせない存在となっているオープンソースソフトウェアを開発するのは世界中の開発者だ。高機能ブートローダー「GRUB」の開発者として著名な奥地秀則氏は、オープンソースのERP「ERP5」を開発、提供するフランスの企業、NexediのCTOとしての顔も持つ。6月にはNexediの日本法人を設立、経営者としても活躍する。奥地氏がこれまで経験したこと、考えてきたことを聞いた。

――お生まれは。

 1975年、和歌山県で生まれました。大学は京都大学です。理学部で北部キャンパスでした。自転車でぐるぐる回るのが大好きで、京都市内をよく自転車で回っていました。

 もともと自分は物理学者になりたかったのですが、物理学は諦め、数学をやりたいと思い大学に入りました。京大の理学部はすごく緩くて、学科がないのです。学科を書かないといけないときに推奨されていたのは、理学科と書きなさいということでした。しかし、3回生になるときに自分の将来的な卒業研究の対象になるような専攻を取らないといけない。自分の進路を決定する必要があります。それまでは何をやってもいい。自分は数学が面白かったので、数学をやっていました。でも3回になる前に、自分が本当にやりたいことはこれではないかと思い、急に生物学に転向してしまいました。

 数学はすごく好きで、いまでも好きな領域です。しかし、私にとっては数学は現実逃避でした。すごくきれいで美しい世界なんだけど、現実ではない。現実に応用できる数学もあるけど、世界そのものではない。本当にやりたいのは生物学だと思い、転向し、細胞生物学、発生生物学を研究していました。卒業研究も生物学で、いわゆるウェットな生物学でした。実際に自分の手を動かして実験するタイプで、コンピュータとは実はまるっきり関係がないのです。

――コンピュータという言葉が出てこないんですが……。

 まるっきり関係ないですよね。で、大学院に進むときにバイオインフォマティクスの世界に入りました。それまで実験を行う普通の生物学をやってきたのですが、情報学と生物学の融合分野としてゲノムプロジェクトを中心にバイオインフォマティクスが1990年代くらいに活性化してきました。その領域に入って研究をしていました。

――しかし、研究をやめられてしまった。

奥地秀則氏

 やめた理由は、一言で言うとそれが本当に面白いのかどうか疑問に感じてしまったことです。その背景にはいろいろなことがありまして、話すのが難しいこともあります。

 興味深く思ってもらえるかもしれないのは、フランスに行ったことです。大学院の時、ISMB(Intelligent Systems for Molecular Biology)という国際会議がデンマークのコペンハーゲンで2001年にありまして、行くことになりました。大学の研究室でお世話になった人がフランスの研究所にいたので、どうせヨーロッパに行くならとその方を訪ねてフランスに寄りました。滞在期間はとても短かったのですが、汚い国だなあというのが正直な気持ちでした。

 デンマークは美しい国で街は綺麗で整備されているし、人は穏やか。フランスは犬の糞はたくさん転がっているし、必ずしも豊かではないのでスリもいる。しかし、逆に面白かったのはフランスでした。日本人との生き方の違いが興味深かったですね。日本人的な考え方、特に研究者としては自分のやりたいことを追求し続けるのが研究者だと思っていました。そういう大きな目標に向かってそこに進むのが生きることだと。

 フランス人、特に自分が行ったのはフランス第2の都市のマルセーユだったのですが、そこで感じたのは日本人と比べると少し貧しく感じるのですが、人がすごく生き生きした目をしていることでした。実はバカンスシーズンだったので、みんな楽しい季節だったというのもあるかもしれないけれど、仕事に対する考えがドライなのです。日本だと午後7時に閉店でも、もしお客様が7時にやってきたら店員さんは絶対にダメとはいえないですよね。フランス人は逆です。5時に閉まる店で、4時45分に店員さんが外に出る。そこへやってきたお客さんに「もう閉めますから」というんですよ。それは日本人的な考えだと不思議。この人たちは何が面白いと感じて生きているのか、と思いました。

――カルチャーショックですね。

 そうですね。それでフランスに行ったわけではないのですが、後日フランスに行く際に面白いかもと思うきっかけにはなりました。

――ソフトウェア開発のきっかけは。

 それはもっと前まで戻ってしまいます。最初にコンピュータに触ったのは当時としては遅い高校3年の時でした。秋頃、9月から10月だったと思いますが、高校のあるクラブでコンピュータに触れる機会がありました。コンピュータは当時、とても高価で、普通の人が家で触れる機会はあまりなかったと思います。

 しかし、高校のあるクラブではコンピュータを使うことができて、自分は所属してなかったけど友達がいて触らせてもらいました。当時はBASIC。N88-BASICという環境で遊んだのが最初でしたね。

――どうでした。

 すごく夢中になってしまいました。これは面白い! となってしまったのです。こんなに面白いものがあるのに勉強なんてやってられないと思っているうちに、12月になり高校が冬休みに入ってしまいました。普通の人は冬休みにセンター試験の勉強をすると思うのですが、私たちは悪い子供だったので、冬休みになれば授業がないのでコンピュータに1日中触っていても大丈夫と思ってしまいました。そのクラブの担当の先生は非常に甘い先生だったのですが、厳しい生徒指導の先生が見回りにきて追い出されてしまいました。追い出されても仕方なかったのですが……。

――コンピュータは続けたわけですね。

 ただ、家にはなかったので、追い出されてしまうと高校でコンピュータに触ることができなかったのですね。で、仮想的になりました。和歌山から京都まで4〜5時間くらいかかります。当然その間、ひまですよね。少しはまじめなので受験の勉強をしていたのですが、全然集中できないことに気づきました。で、諦めてK&R(カーニハンとリッチー)の「プログラミング言語C」を読んでいました。Cのバイブルです。

 当時、近くの書店で購入したのですが、環境がなかったので読んでも試せないと思って読んでいませんでした。でもどういうわけかカバンに入れていたんです。で、読んだらすごく面白かった。

――大学に入ってからは?

 自分は理学部なので、普通はコンピュータに触らないのですよ。最近では数学にもよく使いますが、当時はまだまだ紙と鉛筆。でも、友人にCGが好きな人がいて、京大の「京大マイコンクラブ」(KMC)という変なクラブの人がコンテストによく入選している、と聞いていました。うまく京都大学に合格したら見に行ってみてよ、と言われていたのです。

 で、そのKMCに入ってみると怪しい人たちがいるんですよ。当時は私は空手同好会にも入っていて、最初は空手の方がよっぽど重要でKMCにはあまり行ってませんでした。しかし途中で、すねを故障して蹴るのが難しくなりました。だったら手で打つだけのほうが楽だろうとKMCに専念することにしました。KMCは有名人が多くてグーグルの鵜飼文敏さんや、Anthyの田畑悠介さんもOBですね。

――当時の活動は。

 もうひたすらプログラミングです。ほかには絵を描く人、音楽を作曲する人もいましたが、自分はプログラミングに夢中になりました。ついに環境を得て水に解き放たれた魚状態でした。特に理学部は緩いので、好きなだけ入り浸っていましたね。1回生は特にどっぷりで、語学の単位が厳しくなりました。2回生の時に語学の授業に必死に出ましたね。

――印象に残るソフトウェア開発はありますか。

 うーん、やっぱり1番最初に作ったものは印象に残りますね。高校の時に最初に作ったBASICのプログラムは印象に残っていますね。「ZIGOKU」というアクションゲームです。これが始めて作ったゲームで、いま考えてもなかなかよくできたと思っています。たぶんソースコードは残っていないですね。

――プログラミングのおもしろみとは。

 もともと飽きっぽくて多趣味ですが、プログラムを書くことだけが一番長続きしている趣味なのです。それがなぜなのか自分でも考えてみたことがあるのですが、小さな時にブロックや、粘土遊びが好きだったのですね。親に汚れると言われて粘土遊びはあまりやらせてもらえなかったのですが、とにかく好きだった。その粘土遊びとプログラミングは同じなのではないかな思います。創造する喜びです。プログラミングは粘土遊びと比べると遙かに高度ですが、おもしろさは共通しています。プログラミングは現実に使えるものが作れるというのが非常に面白い。粘土は現実には使うことができないので。

 作る喜びでは数学が最高だと思うのですが、数学は実用性には直結しない。長いスパンでは実用に結びつくと思いますが、少なくとも自分の実感としては結びつかないのです。

――オープンソースと出会ったのは? フリーソフトウェアと呼んでいたかもしれませんが。

 当時はフリーソフトウェアですね。KMCは学生のクラブなのでお金がありません。活動のための機材は高いけれど、これはそろえないといけない。ワークステーションとか何百万円です。ただ、KMCにはすごい人がいて、なぜかいろいろなところからその機材を借りてきてくれました。

 しかし市販のソフトを買うお金がない。それでフリーのものを何とかして使いたいと考えました。自分が入った頃はSunOSを使う機会が多かったのですが、実際の開発ツールはgccやEmacs、Nemacs (Nihongo Emacs)、GNU make、あるいはtcshなど、基本的にフリーなソフトウェアで構成されていました。当時の私はそれが自由であるとか分からず使っていたのですが、あるとき「使っているものはみんなが作ったもので、ただで使わせていて、中も自由にいじれるんだよ」とKMCの人に聞いて、興味深く思いました。

 いまはディストリビューションが整備されていますが、当時はUNIXの世界がぐちゃぐちゃでソースコードから自分でコンパイルすることがほとんどでした。当然、自分でソースコードを展開してコンパイルする機会もあったのですが、ソースコードがあるために、当時黎明期のLinuxのうえでも動かせるものが作れるのだなと思いました。

――自身でもオープンソースソフトウェアの開発を始めたのですか。

 学部の3、4回ころには開発をしていたと思います。特に4回の時には当時公開されたばかりのベル研究所の「Plan 9」に興味を持ちました。それで使ってみたのですが、バグばかりでコンパイルするのも難しかった。少し手直ししてはパッチを送るということをやっていたのですが、(当時の)ライセンスでは再配布できませんでした。本当の意味ではフリーではなかった。当時のベル研究所の担当の人はとても高名な人で、「何とかならないのか」と伝えたのですが、「会社の方針で難しい」と説明されました。それで待っていても仕方ないと思い、興味が「GNU Hurd」に移りました。

 それからは主にGNUに関わり始めましたね。逆にPlan 9が当時から完全にフリーな世界だったら、GNUには注目しなかったかもしれません。

現在のPlan 9

――当時のGNUの状況は?

 当時GNUはOSとしてはほぼ完成の域に到達しているにもかかわらず、カーネルだけがないと言われていました。それでLinuxが代替として使われていましたが、それはGNUがやりたいことではないとの指摘もあり、GNU Hurdをもう少し使えるようにしようとしていた時期でした。

 しかし、私自身はGNUの欠けているところを満たしてあげたいからやっていたわけではなく、あくまでも技術的に面白いからやっただけです。もう1つはベル研究所に対しても言えますが、開発者のレベルの高さですね。最初、KMCに入ったときは、ど素人で偉大な先輩の下で面白く活動したのですが、何年もしていると追いつきます。それでもっとすごい人と開発できたらと思っていたのです。GNUにはすごい人がたくさんして、そういう人と開発ができるのは楽しかったですね。

――GNUでの活動は。

 GNU Hurdは巨大なソフトなので最初はよく分かりませんでした。それで周辺から少しずつ見ていこうと思いまして、周辺の未発達の領域で自分がほしいアプリを移植する活動を最初の数カ月はやっていました。そのうち、本体の中でこれができていない、これがよくないということが分かるようになってきまして、そこから中の仕事もするようになりました。

 本当に長く開発していたのは「GNU Mach」。マイクロカーネル本体ですね。いろいろな環境で動かすにはデバイスドライバが必要で、大部分はLinuxのデバイスドライバを移植していたのですが、当然、それはすぐに古くなってしまいます。しかし、そのアップデートはすごい大変な作業なのですね。

 当時、私がたまたま購入したネットワークカードがGNU Machに対応していませんでした。これを動かすようにしたいんだけど、全部のデバイスドライバをアップデートする仕組みができれば、みんなが幸せになるのではと思いました。それでデバイスドライバの仕組みを書き換えに近いくらい変えてしまいました。そのようなことをやっていました。

――その後、開発をしながら大学院に進まれて。

 そうですね。長い間、趣味と本業は分かれているべきと思っていました。あまりいうと怒られるのですが、やっぱり波がありますね。常に同じペースでの開発は難しい。集中すると、とことんで、面白いことがあれば寝るのも忘れてやっていました。いまはもう徹夜はできないですが、当時はバイタリティがありました。短時間にすごいペースで生産できていました。大人になったいまの方が効率は上がっていると思います。うまいやり方を覚えるたということですが、逆に思わぬ発見は少なくなりました。

後編に続きます)

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ