Linux.conf.au:コンファレンス第3日の参加レポート――Tanenbaum氏とTorvalds氏の再会劇
Linux.conf.auの主催者から、Tanenbaum氏が本コンファレンスの基調講演を行う旨のアナウンスがされた時、多くの参加者が当惑したに違いない。Tanenbaum氏はMinixの創始者であるが、Linuxコミュニティの中ではTorvalds氏との間で繰り広げられた論争によって知られている存在だと言ってもよく、その際にTanenbaum氏はLinuxを“時代遅れ”呼ばわりしていたからである。
もっとも論争を繰り広げたとは言ってもTanenbaum氏とTorvalds氏は犬猿の仲という間柄でもなく、実際LCA 2007での基調講演をTanenbaum氏が行うことを紹介したのは、他ならぬTorvalds氏その人なのである。
Torvalds氏による紹介後に始められたTanenbaum氏による講演は、よりセキュアなオペレーティングシステムの構築法という内容であった。Tanenbaum氏の主張に従えば、OS開発者は“インテリジェントデザイン”の手法を採用し、デバイスドライバやファイルシステムなどのローダブルモジュールをカーネルから分離する必要があるということになる。
Tanenbaum氏は以前よりマイクロカーネルを用いたアプローチを支持し続けているが、その姿勢は自らが“時代遅れ”呼ばわりしたLinuxが急速な発展を遂げた現在も変わっていないようである。今回同氏が語ったのは、ドライバ類をカーネル内部からユーザ空間に移動させることおよび、すべてのデバイスドライバやモジュールで起こる障害の監視とリスタートを“リザレクションサーバ”を用いて行うことについてであった。
実際このモデルはMinix 3で採用されているものであって、ドライバモジュールのユーザ空間化に起因してパフォーマンスヒット(余分にかかる負荷)が生じることをTanenbaum氏自身も認めているが、それは見返りとして得られる安定性と安全性に対する許容範囲内のトレードオフだとしている。Tanenbaum氏の示した数字によると、パフォーマンス的な損失はシステムコールで平均12%、ディスクI/Oで平均18%で収まるとのことだ。
また同氏は、実際にリザレクションサーバによって定期的にドライバの停止とリスタートをさせたテスト結果を紹介した。こうしたテストを行った目的は、様々なバグを抱えたドライバであっても多少パフォーマンスが低下するだけで無修正のままシステムを正常に稼働し続けられることを実証するためだそうだ。今回紹介されたテストでは、Ethernetドライバの停止とリスタートを10秒間隔で繰り返したところ、結果としてパフォーマンスは9.5Mbpsまで落ちたとされている。
Tanenbaum氏による基調講演の終了後、私は同氏が関係するMinixその他のプロジェクトについての質問を試みた。そこで得られた回答によると、Tanenbaum氏はMinixの他に、アメリカの大統領選や議会選の結果を世論調査の結果から予想するelectoral-vote.comというサイトの構築に関わっているそうである。
このサイトは本来、有権者による海外投票の支援を目的として始まったとのことだ。実際にこのサイトにアクセスすると“vote from abroad”というバナーが掲げられており、これをクリックするとアメリカ国民が海外から選挙人登録をする際に必要な手続きを紹介したページに移動できるようになっている。Tanenbaum氏の説明するところでは、海外居住者を含めた多数の人々の関心を集められるサイトを構築してみたかったとのことだ。
そうした目的に関して、同氏の希望はかなえられたと言っていいであろう。2004年の大統領選挙および2006年の中間選挙で、このサイトは膨大な利用実績を上げたのであるから。実際Tanenbaum氏の示した数字によると、同サイトを介して登録した有権者数は2004年の場合30,000名を越えたとされている。
話題をLinuxおよびオペレーティングシステムに戻すべく、私はTanenbaum氏に対し、Linuxを長年見てきてMinixに取り込みたいと考えた機能は何かなかったかを質問してみた。Tanenbaum氏の答えはNoというものであり、Linuxの内部構造は“無統制”な状態にあると表現している。
同氏の語るところでは、できることならTorvalds氏が“強権を発動”してカーネルとインタフェースの整合性や安定性を保つ方がいいのではないかということであり、Linuxのカーネル設計は“好き勝手”に行われた結果“非常に無統制”なものとなっているとの見解を述べた。
なるほどLinuxは無統制な状態にあるかもしれないが、これまでに大きな成功を収めていることも確かである。そこでTanenbaum氏に、Minix 3を用いた商用アプリケーションは何かあるのかと尋ねたところ、現状でそうしたものの存在は知らないとの回答が得られた。その際に同氏は、Minixに適用されているのはBSDライセンスであるため、その使用の有無について外部に明言しない態度が取られている可能性も指摘している。
Tanenbaum氏によると、現在Minixの開発にはフルタイムのプログラマ2名が携わっており、その他に何名かの修士課程の学生がMinixをPowerPCに移植する作業を進めているとのことだ。
ところでTanenbaum氏は自身のPC上でMinixを使用しているのだろうか? その質問に対する回答は、テスト時には使用しているが、それ以外はWindowsを使っているとのことであった。同氏の説明するところでは、Minixにおけるユーザ空間用ソフトウェアは、GCC、Perl、Pythonなどの開発ツールなども含め、適度なものがそろっているとのことである。またMinixでウィンドウ環境を必要とする場合は、XおよびEquinox Desktop Environmentが使用できるとしている。ただしFirefoxについては、Minixが仮想メモリを実装するまでは使えないようである。
Tanenbaum氏は機能的な肥大の話題についても言及し、Firefoxなどのソフトウェアは「もっと軽量化できるはず」であり、テーマなど多くの機能は過剰な装備だとしている。「必要最小限という考え方は、どこへ行ってしまったんでしょうね?」
Linus Torvalds氏とのインタビュー
Linus Torvalds氏は、先のTanenbaum氏とは異なり今回のコンファレンスでの講演は行わなかったが、幸運にも私はカーネル開発などのトピックについて同氏に質問する機会を得ることができた。Torvalds氏は講演嫌いであることを自ら公言しているが、マンツーマン形式の対話は気にしないとのことであり、そうした席における同氏の語り口は歯切れも良く、語り手の人柄の良さがしのばれるものであった。
まずは次回にリリースされる2.6.20カーネルについてだが、Torvalds氏はそこで採用される最大の機能としてカーネルベース仮想マシン(KVM)を挙げている。ただしTorvalds氏自身の仮想化テクノロジに対する受け止め方は、噂だけが先行しすぎて辟易しているとのことだ。「この話題は、ここ何年かの宣伝が大げさすぎるんですよ。いっそきれいサッパリ消えてくれたら、私は歓喜の涙でむせび泣くことでしょうね」
かく言うTorvalds氏であるが、仮想化テクノロジが一部のユーザにとって有益な機能であることは認めており、同氏自身も何らかの作業で使用する可能性に触れてはいるが、カーネルのデバッグという作業で役立つ点は少ないはずだとしている。
ここ数年間、「Torvalds氏はLinuxカーネルの開発活動に関心を失い始めたのではないだろうか」との疑問は、誰もが一度は感じたのではないだろうか。だとしたら、それは杞憂である。Torvalds氏は、以前ほどのコード量は記述してはいないものの、今でもカーネル開発を楽しんでいると語っていたからだ。「自分が何をしたいのかを分かって生きられるのは、我ながら幸せなことだと思っています……。3年程度で勤務先を変える人もいますが、私にすればそれは不思議なことですね」
Torvalds氏は自身の仕事を称して、カーネル開発に関するテクニカル面でのマネージメント業であり、他の開発者による成果を統合することだとしている。「メンテナンス活動こそ私の得意とするところです。みんなも私(の行うカーネル管理の仕事)を信頼しており、……そうした状況を私は楽しんでいますよ」
誤解されるといけないが、Torvalds氏はコード開発から手を引いた訳ではない。実際同氏は最近、かねてより一部少数のユーザを悩ましていた仮想メモリ関連の大きなバグを1つ潰したところであるとのことだ。
Torvalds氏との会談は、新規カーネルのリリース間隔を2カ月程度にするという“改訂版”カーネル開発プロセスの話題にも及んだ。こうした開発プロセスのあり方について同氏は、Linuxディストリビューションを扱う企業にしろ開発者にしろ「関係者全員に歓迎されるものです」としている。それというのも、開発者による変更はより速やかにカーネルに反映されるようになり、企業の望む新機能も迅速にカスタマの手に届くことになるからだそうだ。
今回はTorvalds氏自らがTanenbaum氏を紹介したことでもあったので、私はマイクロカーネルという構想について何か考えを改めた点はないか、あるいはドライバをユーザ空間で動作させる方式に惹かれる点はないかを質問した。それに対するTorvalds氏からの回答は「マイクロカーネルに関心はありません」というものであったが、教育用のシステムとしてはサイズ的な観点からMinixの方がLinuxより優れているかもしれないとしている。
その一方でTorvalds氏は、デマンドページング(demand paging)機能の欠落など、MinixにはTanenbaum氏が「言及していない問題がいくつか」存在する点に触れている。デマンドページングとは、仮想メモリで使われる機能で、多数のシステムにおいて不可欠とされているものである。
これまで私は、色々と物議を醸しているNovellとMicrosoftの提携話に関するTorvalds氏のコメントを耳にしたことがなかった。その点を尋ねたところ、この話題に関して同氏が口を閉ざしていたのは「第一印象として大方は好意的に受け止めましたが、人に語るほど強固な意見を持っていなかったからです」というのが理由だそうである。
この件に関してTorvalds氏は楽観的な見方を取っているとのことであり、Microsoftについては好意的な解釈をするつもりで、対立するばかりが能ではない事をいい加減Microsoftが学んでいてもおかしくないでしょうとしている。「彼らも少なくとも今では(Linuxの存在を)ガン呼ばわりするのは止めていますし……、馬鹿げた発言を慎む程度の判断力が付いたことを伺わせる事例と見ていいでしょう。こちらとしても今回は皮肉屋に徹するよりも、無邪気な楽観論を選択したいところですね」
2.6.20リリースの次に予定されているカーネル機能の大きな変更としてTorvalds氏が挙げるのは、通常行われる新規ドライバの追加、バグの修正、セキュリティ用のパッチを除くと、いわゆる“ティックレスカーネル”(tickless kernel)になるとのことだ。ここで言う“ティックレス”とは、タイマーによる割り込みがない場合にシステムが完全にアイドル化できる機能を意味する。こうした機能は、電力消費の削減と冷却効率の改善に寄与するはずで、組み込みシステムにとって特に重要な意味を持っている。
Torvalds氏への最後の質問としては、間近に迫ったGNU General Public Licenseのバージョン3(GPLv3)に関して何か意見があるかを尋ねた。それに対するTorvalds氏の回答はNoであり、最終案を同氏が気に入るかは懐疑的であるとしながらも、最終草案を気に入る可能性は残されているとのことであった。同氏によると、最大の問題はFSFの掲げるライセンス変更の理由が以前と変わっていないことであり、「それこそが根本的な問題」だとしている。
スクリプト言語の適切でない使用法
昼食後は、Jonathan Oxer氏の講演「Finding Inappropriate Uses for Scripting Languages」(スクリプト言語の適切でない使用法)に顔を出してみた。そこで語られていたのは、Oxer氏がどのようにしてスクリプト言語を用いた自宅の自動制御化を進めているかの説明であった。
この講演、具体的にスクリプト言語をどう使えば家電製品を制御できるかというハウツー面での説明には不足を感じたものの、巧妙な手法で語られる説明に私は魅入られてしまった。Oxer氏が行ったのは、家電製品の制御システムに侵入するのが如何に簡単で、その気になればコンピュータを介した制御がいくらでもできることのデモンストレーションであり、同氏はこの講演において数名の聴衆を何度かアシスタントに招き出しつつ、それを実演したのである。
実例を挙げると、Oxer氏は自宅の郵便受けを写したスライドを上映したが、それはおそらく「地上唯一のインターネット接続された玄関」だとの説明であった。つまり同氏は、配達されてくる封筒の検出装置を郵便箱に組み込んだのであり、このスライドはその具体的な方法を説明するためのものだったのである。
そもそもOxer氏がこうした内容の講演を行った理由だが、それは一般的なハードウェアをハッキングするという行為に人々の関心を集めることが目的であり、スクリプト言語を介することで「ハードウェアの自由な制御」が可能であることを示したかったのだそうだ。
Nvidiaドライバのリバースエンジニアリング
本日最後に私が参加したのはDave Airlie氏による講演で、そこで語られていたのはNvidiaカード用にリバースエンジニアリングで作成されたドライバ群Nouveauについてであった。
Airlie氏の説明によると、Nouveau開発陣がこうしたドライバを作った動機は、付属のバイナリドライバが気に入らなかった、あるいはG5システム用のNvidiaドライバではデュアルヘッド化できなかったためなど、様々な“個人的な理由”に基づいているとのことだ。
なおAirlie氏の語るところでは、現状のNouveauの完成レベルは一般人が使用する段階からほど遠いとされている。「私たちでさえ実用に供していないのに、そんな代物を他人に使わせる訳にはいきません。」問題のドライバはまともに動作しない状況であるが、ビデオドライバの作成に協力するスキルのある人間以外は気にする必要もない話でしょう、ということらしいが、果たして同氏による勧誘文句がどれほどの効果を発揮したものだろうか。「自分の名前を売ることはできないでしょうが、訴訟される可能性ならありますよ」
その他にAirlie氏が説明していたのはドライバのリバースエンジニアリングの仕方であり、その具体的な手法についてはfreedesktop.orgのページにも記載されている。ところで、こうしたドライバを評価する際には、どのような物差しが使われているのだろうか? 今回の講演中も実際に実行されていたが、現行における常套手段はGLXgearsというプログラムを実行してみることなのだそうだ(動作が非常に遅い)。なおこのプロジェクトの最終的な目標は、Quake IIIをプレイすることだとされている……。もちろんCompizやBerylも視野に入っているはずだが、これらに関しての技術的障壁は低いとのことだ。
引き続いて行われたQ&Aセッションでは聴衆の1人から、Nvidiaから仕様を聞き出して開発を簡単化させることはできないのか、という質問が出された。それに対するAirlie氏の回答は、こうした仕様を聞き出す際にものを言うのは資金力であり、それもかなりの高額になるであろう、というものである。つまり仕様を入手しようとすれば、相手を言い含めるに足る「チップ何万個分もの売り上げの対価となりそうな大手企業を多数リストアップして、Nvidiaに見せつける必要がありますよ」ということになる。
このドライバの開発状況であるが、アルファないしベータ版と言える完成度のものがリリースできるのは、現状で2007年の第4四半期になるだろうとのことだ。
LCA 2007は、オーストラリアのシドニーにあるニューサウスウェールズ大学のケンジントンキャンパスにて、1月19日(金)まで開催されている。