5月20日~22日の3日間、東京・椿山荘で開催中の「LinuxCon Japan 2014」2日目最後のキーノートはこの人、Linuxの生みの親でありカリスマ的存在と言えるLinus Torvaldsさんの登場です。昨年に続いてキーノートに来日したLinusさんの「お言葉」を聞こうと、今年も会場は満席となりました。
「人前で話すのは嫌いなんだ。でも人と対話するのは好き。みんなが一体何を考えているのか知りたい」というLinusさん。昨年と同じくIntelのLinux/オープンソースの責任者Dirk Hohndelさんを相方に、会場やDirkさんが事前に用意した質問に答えていく形式でキーノートは進みました。ここでは、その模様をかいつまんでお届けしたいと思います。
安定のコンビ、Linus TorvaldsさんとDirk Hohndelさん(右)
階層化する「信頼のネットワーク」
まずLinusさんの近況について、「 私といえばLinuxカーネル、と思われてるけど、ここ10年くらいはカーネルコードは書いてないんだよ」と少し寂しそうに言った後、「 マスコミなんかにカルト的存在のように扱われ、( 最前列で写真を撮りまくってるプレスを指さして)こんな風に写真を撮られたりする…。イヤだと思うときもあるよ。どんどん撮ってもらって良いんだけどね」と最初からぼやきモード。
とはいえLinuxカーネルがのバージョンアップが順調に進んでいることには非常に満足しているようです。「 ここ7年? いや9年くらいは3ヵ月ごとのリリースがきちんと守られていて、みんなハッピーだと思うよ」( Linus) 。3週間後にはバージョン3.15のリリースも決まっています。これも、Linusさんがカーネル開発のマネージャとしての立場とLinuxというブランドの一種のアイコン的な役割をわきまえて、守り続けているからに他なりません。
LinuxCon参加者特典の「ワタシハリナクスチョットデキルヨ」Tシャツが気に入ったよう
会場から、UNIX系OSに起こると言われている「2038年問題」についてどう対応するのか? と振られたLinusさん、「 そんな20年も先のことを心配するより今現在の問題を考えるべき」とバッサリ。「 64ビットシステム上でも32ビットのサブシステムを使って古いバイナリが動くことは確認されてる。まあそのときが近づくとパニックは起こるかもしれないけど…」 。たしかに、20年後には世の中がどうなってるかもわかりませんね…。
次にLinuxのテスティングプロジェクト、とくにLTP(Linux Test Project)についてどう思うかという質問がありました。現在の開発プロセスにおけるテストの重要性はますます上がってきています。ただしLinusさんに言わせると、Linuxカーネル開発においてはテストプロジェクトに対してコミットできる点は少ないと言います。「 バグを見つけるのにテスト環境は使えないし、テスト環境を複数のプラットフォーム、そして何千ものデバイスに対応させるのは大変。ハード依存の部分が多すぎるんだ」( Linus) 。テスト環境の適用が難しいのは、Linuxカーネルの開発体制とも無関係ではないようですね。
カーネル開発の話になったところで、このセッションの前に登壇したJames Bottomleyさんから質問が飛びます。Bottomleyさんの「カーネルレポート」のセッションでも少し触れていた、カーネル開発者の高齢化と世代交代の話題です。「 カーネルメンテナーなどLinuxコミュニティでも古参の人はだんだん自分ではパッチを書かなくなってきていますが、新しい人を入れる活動よりメンテナーにパッチを書くよう呼びかけた方が良いのでは?」( Bottomleyさん)
これに対してLinusさんは「メンテナーをパッチを書く立場に戻したくはないね。年に3,700人もの開発者からパッチが送られてくるんだ。パッチを書く人は十分いる。パッチにコメントを入れたり、まとめたりする人が重要。パッチの書き方を指導する人、ぼくに直接パッチを送らないで、パッチをまとめて調整されたプルリクエストを送って来る人が必要なんだ。そうすると僕は全部マージするだけでよくなる。」と、むしろメンテナーやコードを管理する役割の人が増えてほしいと要望しました。
良いメンテナーになってくれる人、 いないかなー?
「もっと言うと、うれしいのは、ぼくのコードをサブメンテナーからプルして、新しいレベルのメンテナー階層を作って間に入ってくれる人が出てきたとき。僕の代わりにコードを見守ってくれる人ができて、信頼のネットワークに入って階層を3つから4つというふうに増やしてくれる。こうやってメンテナーのツリーができていくのはすばらしいことだと思う」( Linus) 。
コミュニティは「優しい」か?
話はガラッと変わり、最近米国政府(NSA)がネットワーク機器のOSにプライバシー盗聴用のバックドアを仕込んでいるという疑惑が話題になりましたが、それに関する質問です。「 果たして国家が脆弱性をカーネルに仕込むというのはファンタジーでしょうか? 」
これにLinusさんは「もちろん国家がバックドアを入れるなんてことを受け入れてはいけない。でも完全に防ぐのは難しい。バグを完全になくすという考えで取り組むと失敗すると思う。オープンソースだとみんなが目を光らせて監視するチャンスがあるから、エコシステムとしてはセキュリティ的に健全。あとは自分がどこまでやるかを問いかける必要がある。」と答えました。「 どこまで」とはどういう意味なのでしょうか? その疑問は次のコメントで説明されました。
「Dirkさんは相当気になるようだけど、僕自身はメールを盗聴されたりすることに極端に神経質じゃない。NSAが僕のメールを読んでたとしてもかまわない。…つまらないと思うよ。そんなにおもしろい人間じゃないし(笑) 。それをどこまで許容できるか、だよ。」( Linus) 。例としてEFF(Electronic Frontier Foundation)の活動を挙げ、「 彼らはとてもよくやってると思う。法的にも頑張ってる」と評価しました。案外冷静というか、政府がどうのこうのよりも、カーネル開発者が取るべきセキュリティ課題のひとつとして捉えているのでしょうね。
さて、そんな寛容? なLinusさんを見て、Dirkさんがお約束のツッコミを入れはじめます。「 年をとって体も丸くなってきたし、もっと優しい指導者になろうとは思いません?」
するとLinusさんは「僕たちは十分優しいよー。僕個人は置いておいて(笑) 、みんな優しいじゃないか」と安定の受け。「 仲良くったって、みんな揃ってキャンプファイヤーで歌うたってもしょうがないでしょ? 人間みんな違うんだから、Greg(Kroah-Hartmanさん)みたいな思いやりのある人もいれば、僕みたいなひがみっぽい人もいて…。僕は議論好きだけど、議論が嫌いな人もいる。もちろん僕のことが嫌いな人だって。でもそれで良いと思う。コミュニティが同じタイプの人ばかりじゃないっていうのは健全なことだよ」( Linus) 。
Dirkさんはツッコミの手を緩めません。「 では、あなた自身はそんな中でどうなるべきだと思ってるんですか?」 Linusさんは「カリスマみたいに扱われてるのは承知してるし、いろいろとコメントが引き合いに出されるのもそれで良いと思ってるよ。避雷針として批判を受けるのも役割のひとつ。25年やってるんだから。『 くそ野郎』と思ってるならその通りだよ!」と半ば開き直り? このネタはいつも盛り上がりますね。
ジェームズ、受けて立つぜ
これを見てDirkさんも「もう疲れてきたんじゃ? 娘が成人したら引退ですか?」と振ると、「 いや、まだ開発を続けたい。実は先週インターネットに1週間さわらなかったんだ。すごくのんびりできた。でも1週間が限界だった。カーネルに関わってないと退屈でやってられないよ」と続投宣言。客席にいるJames Bottomleyさんに向かって「クーデター起こしてみる? やってみたらいいよ。俺まだやれる自信あるから」と挑発して場内を沸かせました。
そしてこの話題の締めとしてLinusさんは次のようにまとめました。「 僕がこんなに自由勝手に言えるのも、これまでの開発の連続性、継続性をわかってくれているから。変なことにはならないとみんな知っている。だから僕は『ノー』と乱暴に言えるんだ。もちろん一部の人には受け入れられないかもしれない。でも誰かがノーといえることは重要。必要なことだと思う。僕より良い仕事ができる人が出てきたら(ノーと言える人が出てきたら)いつでも代わってもらって構わない」 。
“good taste”から生まれたGit
次の話題は技術の好き嫌いについて。LinuxではLinusさんの好き嫌いで採用される技術が決まるのか? という質問に、Linusさんは「そんなことはない」と即答。「 C++だってファンではない。公で言ってるけど、その辺はわきまえている。好きではない技術でも必要なら使う。意外かもしれないけど、フリーじゃない技術だって使うこともある。現実は受け入れる。実践的であろうとしている」( Linus) 。こと技術に関しては、個人の好みはプロジェクトとは切り離してるんですね。さすがです。
そして「Linuxを開発してきた経験に基づいて、どうやってクオリティの高いソフトを作ることができるか教えてほしい」という質問には、Linusさんがよく口にする「良いテイスト(good taste) 」の話が出てきます。
「良いソフトウェアの開発には、“ アーキテクチャ” と“ ビュー” の2つの側面を見極められるハイレベルのビジョンが必要だ。そのソフトが何をするものなのか? 開発プロジェクトにとって何が重要なのかを把握すること。これができることを僕は『良いテイスト』と呼んでるけど、説明が難しい。これは教えられるものではないんだ。持ってる人は持っている。」
「僕が先頭を切って開発したのはLinuxとGitだけど、LinuxはすでにUNIXというビューがあったから、アーキテクチャを作っていけば良かった。Gitは僕が関与してビューを作った。Gitはすごく良い例だと思う。バージョンコントロールの概念を変えた。開発を任せた人がすごい“ good taste” を持っていたから。僕が何をしたいのかを完全に把握してくれた。Junio濱野(Gitのメンテナー 濱野純さん)のおかげだよ」( Linus) 。
達人のみがわかる境地ですね。すごい話です。
変わりゆく世界の中でLinuxも変わる
この他、最近の開発現場についての質問で、開発プロセスやエンジニアリングについて次々と出てくる、ある意味「流行り言葉」のような概念やツールについて問われると、「 新しい言葉はいくらでも出てくる。ブームもある。でもみんな“ スネーク オイル” (ガマの油=インチキ)だね」と一刀両断。カーネルというインフラ中のインフラ部分を長年手がけている人の言葉として聞くと、説得力ありますね。
こまけぇこたぁいいんだよ!!
「僕は関心のないことには関わりたくないし、それで良いと思ってる。たとえばJamesはサーバ方面に興味があるし、僕はどちらかというとハード寄り。どっちが良い悪いじゃなくて、大事なのは興味のある人がコミュニティでちゃんと議論することだ。本当に一部の人だけの話ならインクルーシブ(非公開)だって良いと思う。ときどきこじれて僕のところにくることもあるけど、正直どうでも良いじゃんと言ってしまうこともある」( Linus) 。ある程度はゆるいつながりであることも、コミュニティを長持ちさせる秘訣かもしれません。
いよいよセッションも終わりに近づき、ラスト2番目の質問は組込みLinuxについて。Raspberry Piがアタマひとつ抜けている感はありますが、Linusさんは当然ですが傍観者として楽しんでいるようです。「 ARMが圧倒的だよね。Intelも強引に入ってきてるけど。みんなにチャンスがあると思う。僕がいま子供だったらわくわくしているよ。安い組込みボードがいっぱいあって、自分の部屋でいろいろ試せるんだから。すごい時代になったと思う。」
そこから、ハードウェアのLinuxサポートに話が移ります。「 NVIDIAはグラフィック以外はこれまでもLinuxサポートがあったけど、最近はGPUでもサポートしだした。驚いてはいないが良いことだと思う。もうどのハードベンダも自社ハードのドライバでLinuxに協力するのが原則になってきてる。ARMなどはLinuxをメインのターゲットにして開発されてるからね。15年前には考えられなかった。すごくハッピーなことだよ。」
ハードウェアベンダも自社製品のパフォーマンスを最大限に引き出すために、使えるソフトウェアはLinux一択と認めざるを得ない状況になっていると言えます。この後、Linux以外のOSをさわるかどうかと聞かれて「役に立たないから触らない。他のやってることは気にしないんだ。技術についても、自分の作った前のバージョンとの比較にしか興味はない。」とLinusさんは断言。実績に基づいた自信が伺われます。
このセッションの前に行われたJames Bottomleyさんのセッションでも触れられていましたが、今話題のコンテナによる仮想化技術にしても、古くからある技術ですが非常に洗練した形で取り込まれ、技術的には最先端を切っていると言っても良いと胸を張っていました。Linuxは今や多くのレイヤでソフトウェア技術の先頭を走るようになったのではないでしょうか?
話題はそのまま最終局面に、Dirkさんから締めとして将来のLinuxの展望について教えてほしいと言われたLinusさん、「 そういうことは考えないことにしてる」と言いながら、「 自分たちでどうしようかというより、ハードがどう変わっていくのか、プラットフォームとして重要さを増していくLinuxをどうするか、つまり、周りの変化によって僕たちがどう変わっていくのかに興味があるんだ。」と結びました。人と対話しながら、時代ともコミュニケーションを取って進化を続けるLinux、そしてLinus Torvalds。何度話を聞いても芯の部分にぶれはありません。