Ottawa Linux Symposium 初日レポート

オタワ――毎年恒例のOttawa Linux Symposiumが始まった。7回目となる今回は、まずLWN.netのエネルギッシュなJonathan Corbet氏の話で幕を開けた。Linuxカーネルのロードマップに対する彼なりの解釈についての話である。Corbet氏の次はBert Hubert氏が登場し、ブート時間やアプリケーションのロード時間の短縮について話した。

Corbet氏のセッションの正式なタイトルは、「カーネル2.6のロードマップ(盲目な人間によるまとめ)」というものだった。Corbet氏はまず、MicrosoftのCEOであるSteve Ballmer氏の「Linuxにはロードマップがない」という言葉と、William Gibson氏の「未来はここにある。まだ広まっていないだけだ」という言葉を引用した。

Corbet氏は、実はLinuxにはロードマップがちゃんとあり、奥までじっくり探してみれば見つけられると述べた。そして、我々が探さなくて済むように、Corbet氏自身が探しておいてくれたと語った。

次に、Linuxカーネル開発の歴史を振り返るという話に進んだ。

Corbet氏が言う「古き良き時代」には、奇数のバージョン番号のカーネル・リリースは開発版リリースで、偶数のバージョン番号のカーネル・リリースは安定版リリースだった。安定版リリースは、実際の稼動環境での使用が意図され、きちんと動作するものと想定できたのに対し、開発版リリースは、使用者自身のリスクが大なり小なり伴うものだった。

このしくみでは、カーネルを安定させることを目的として機能をフリーズする結果、カーネルの新機能が実際に実装されるまでに、数年という期間を要することもあった。その間に、カーネルのパッチを提供した本人によってパッチが取り下げられることもあった。その結果、開発の効率に必要以上の無駄が生じていた。また、カーネルの開発サイクルが長いせいで、カーネルの機能フリーズがゴチャゴチャになってしまっていた。つまり、まず小さな機能を実装し、その後でもっと小さな機能を実装する、ということを続けているうちに、機能確定を再度発表し、再度実装しなくてはならないというような状況である。

この開発サイクルの長さや、新機能の組み込みの遅れに対処するために、Linuxのディストリビュータたちは、バックポートした機能を組み込んだ修正版のLinuxカーネルを採用するようになった。その結果、こうしたカーネルは、kernel.orgの公式なカーネルとの互換性を必ずしも持たないものとなった。

カーネル2.6.0は2003年12月にリリースされ、バグフィックスのリリースが月1回ほどのペースで行われた。2004年のOttawa Linux Symposiumの時点では、カーネルのバージョンは2.6.7まで上がっており、それからの1年でさらに2.6.12まで上がった。安定版のカーネル・リリースであるはずのカーネル2.6の開発では、最初の半年間で600,000行のコードが削除され、900,000行の新しいコードが追加された。これはカーネルの4分の1の置き換えに相当するとCorbet氏は言う。

Linus氏は昨年、安定版カーネル・ツリーの仮想メモリ・サブシステムを置き換え、これを「実装の詳細」と称したとCorbet氏は指摘した。また、Corbet氏によると、カーネル2.7は、すぐには予定されていないとのことだ。2.6の開発プロセスでは、新しい開発体系への進展があった。この開発体系では、現在のカーネルは-mmツリーとリリース候補ツリーで開発され、その結果が、「suckerカーネル」と呼ばれる、2.6.x.yプレリリース・カーネル・ツリーとなる。要するに、カーネルの各メジャー・バージョンが1つの大きな開発サイクルを持つのではなく、各カーネル・リビジョンがそれぞれ開発サイクルを持つ。

この新たなプロセスでは、Andrew Morton氏が安定版リリースのメンテナンスを担当し、Linus氏が開発版リリースを担当する予定だったが、実際にはその逆となった。つまり、Linus氏が安定版カーネルのリリースとメンテナンスを担当し、Morton氏が開発版を担当している。Corbet氏によると、Morton氏はパッチを無視したり、放っておいたりはせず、「このパッチは優れていて必要なものであり、コメントを追加していただきたい」という意見を述べることでLinuxカーネルの開発プロセスにプロフェッショナリズムを持ち込んでいる。

Corbet氏の話によると、時間を費してカーネルのパッチを作成してくれた人に対して反応を返すことは最低限の責務だとMorton氏は信じている。その基本哲学をたとえて言えば、ごちそうを作りたいと思っている人を台所から追い出してはならない、ということだ。

開発体系がこのように変更された結果、有用なパッチが主流のカーネル・リリースに取り込まれるスピードが速まり、またディストリビュータがリリースするカーネルは、カーネルの開発チームがリリースするカーネルに次第に近いものになってきた。

Linuxカーネルの開発プロセスが進化した大きな理由の1つがBitKeeperの登場だとCorbet氏は言う。BitKeeperは、Linuxカーネルの開発プロセスにおいてソースコード管理システムが利用された初めてのケースで、このおかげでパッチの紛失が解消された。すべてがしかるべき場所に収まり、完全なパッチ履歴が導入された。

2005年4月5日、BitKeeperの提供元が、フリー・バージョンのBitKeeperクライアントの提供を中止した。その結果、Linuxは、新しい管理システムを見つけざるを得なくなった。その2日後、Linus氏がgitをリリースした。BitKeeperと同様の機能を実現する目的で手早く作成されたプログラムである。その2週間後には、カーネル2.6.12-rc3がリリースされた。これには、新たに作成されたgitの開発システムが全面的に利用された。

Corbet氏のプレゼンテーションの途中で一時中断があった。gitの話の最中に、一匹のシマリスが乱入してきたのだ。全員の注目がそちらに集中した。シマリスはステージの前を走り回り、その写真を撮ろうとする人たちは立ち上がってその様子をうかがっていた。

git以外の選択肢としては、mercurialもある。

Linuxの将来はどうなるのだろうか。その答えはLinus氏でもわからないとCorbet氏は言う。Corbet氏の予測によると、次のカーネルは8月に登場し、Inotifyとkexecが含まれることになるという。前者は、ユーザ空間のアプリケーションに対してファイルシステムの変更を通知するためのシステムで、後者は、緊急の状況においてカーネルの中からカーネルをロードするためのシステムである。後者については、独立した別個のプレゼンテーションとして木曜日に取り上げられることになっている。

Corbet氏は、プリエンプティブ・カーネルの説明や、近い将来のカーネルで対処すべきスケジューリング関連のさまざまな問題の説明に、かなりの時間を費した。

今後のカーネルでは、クラスタ・ファイル・システム、FUSE(ユーザ空間のファイル・システム)、ソフトウェア・サスペンド、デスクトップ・サポート、ビデオ・デバイス・サポートなどへの対処が行われるというのがCorbet氏の予測だ。

ビデオ・デバイス・サポートの面では、はたしてこれはXとカーネルのどちらの仕事なのかという問題について議論が続けられており、答を出す必要がある。Linuxシステムのグラフィックス・カードの制御や設定はカーネルが行うべきだろうか。それとも、他のすべてのハードウェアと同様に、カーネルはドライバを処理すべきだろうか。

セキュリティの面では、カーネルがセキュリティ問題に対して独自の関わりあいを持つことになる。信頼できるコンピューティング、すなわちデジタル著作権管理のサポートが、善かれ悪しかれLinuxカーネルに実装されつつある。

この他、Corbet氏は、対処が進められている問題の1つとして、メモリの断片化の問題についても指摘した。Corbet氏のスライド・ショーはLWN.netで見ることができる。

午後に入ると、Bert Hubert氏のプレゼンテーションが開催された。テーマは、アプリケーションの起動時間やシステムのブート時間の改善だ。

Hubert氏は、GNUplotの一連のグラフを用いて、ディスク要求と応答の間の遅延や、ハード・ドライブのヘッドがどの時点でハード・ドライブのどこを読んでいるかについて示した。Hubert氏のノートパソコンでは、Mozillaのロードに約20秒かかるという。わずか20MBのデータの読み込みで、1秒もあれば実行できるはずのディスク処理である。グラフからわかったのは、ハード・ドライブのあちこちにデータが分散していて、プログラムが効率のよい順序で読み込みを行っていないため、ハード・ドライブのヘッドは読み込みではなくシークに大半の時間を費しているということだ。

ハード・ドライブがプラッタ上のある場所から別の場所にヘッドを移動するのに要するのと同じ時間をもっとうまく使えば、数メガのデータを読み込むことができるとHubert氏は指摘した。ハード・ドライブ上でのデータの編成をもっと合理化すれば、待機時間を短縮でき、システムのパフォーマンスを向上できる。

Hubert氏は、同様の例をいくつか用いて、ハード・ドライブの処理が合理的に行われていないためにアプリケーションで(時にはカーネルで)時間が浪費されているということを示した。場合によっては、ハード・ドライブを逆向きに読み込むことすらあるという。これは非常に低速で効率の悪い処理である。Hubert氏は、大まかなカーネル・パッチをリリースしている。この問題について調査して、ディスクの読み込みと書き込みの待機時間という面についてカーネルやプログラムのパフォーマンスの向上に寄与するためだ。

Hubert氏は、自分のコンピュータでは、atimeと呼ばれる処理を無効化するだけで、Linuxのブート・サイクルを10秒は短縮できると指摘した。この処理では、ブート時にディスクへデータを書き込むため、シーク時間の浪費が大きくなる。

Hubert氏は、ディスクの待機時間の長さの問題に対していくつかの解決策を提示した。その1つが、ハード・ドライブのデータをメモリにダンプして、そこから直接読み込むという方法だ。ただしこの方法は、ハード・ドライブとメモリのバージョンが一致しなくなった場合に信頼性に影響する可能性がある。もう1つが、ハード・ドライブの使用パターンを記録し、ハード・ドライブに先読みさせることによって、データが必要になる前にあらかじめメモリに配置するというものだ。この方法は、先読みしたデータが実際に使用される場合には待機時間の短縮につながる。また、物理ストレージ・メディア上でバイナリを再編成し、読み込みの合理性を高めるという方法もある。

この日の最後には、20時からの予定で、Intelの協賛によるレセプションが行われた。Doug Fisher氏によるプレゼンテーションが始まったのは20時30分前後である。その頃には、数百人の参加者たちは、トレーに乗せた軽食とアルコールを口にしながら雑然と歩き回っていた。参加者たちがきちんと腰を据えてFisher氏の話に耳を傾けることはなかった。

Fisher氏は、Intelのコア・ソフトウェア部門のゼネラル・マネージャであると自己紹介し、Open Source Technology Centreの名で知られる開発グループに特に関与していると語った(このグループは、私が属するOpen Source Technology Groupとは無関係である)。Fisher氏の話では、IntelはLinuxを業務で使用し、Linuxコミュニティへ貢献を返しているとのことだ。

Fisher氏の話の中で、賞品付きのクイズが出された。Intelで使用しているLinuxサーバの数を最初に当てた人に、100GBのハードディスクと17インチのディスプレイを搭載したノートパソコンをプレゼントするというものだ。当て推量による答えがたくさん続いた後で、誰かが50,000という答えを出した。Fisher氏は、この答えは正解に十分近いと判断し、ノートパソコンはこの人にプレゼントされた。Fisher氏によると、Intelで使用しているLinuxサーバの数は52,000とのことだ。

Intelでは、新しいプロセッサの開発に関連する作業に対しては、Linuxが100%使用されているとFisher氏は述べた。

Intelが集積マイクロチップを最初に作ったのは1971年のことだ。これには、2,600のトランジスタが使用されていた。また、キャッシュ・メモリとI/Oがプロセッサに直接搭載されているのは初めてだった。

Fisher氏によると、Intelの最新のプロセッサでは、17億2,000万ものトランジスタが使用されているという。

Fisher氏のプレゼンテーションの趣旨は、Intelは業務全体を通してLinuxとオープンソースをサポートしており、そうしたコミュニティに対して貢献を返しているということだ。このプレゼンテーションの中では、参加者に対してトリビア的なクイズがいくつか出題され、正解者にはノートパソコンやPalm Pilotが合計それぞれ2台ずつプレゼントされた。

プレゼントのノートパソコンにはLinuxが乗っているのかと質問されたFisher氏は、「いえ、でも24時間以内には間違いなくそうなります」と答えていた。プレゼンテーションの最後には、いつもどおりの暖かい拍手を受けながら、Fisher氏がスライドショーを終了させた。すると、「Windows XPによりデスクトップがロックされました」とのメッセージが示された。これを目にした参加者ほぼすべてから、大きなブーイングが起きた。初めて聞くほどの盛大なブーイングが、いつになく長く続いた。その後で、参加者の1人が、LinuxのインストールCDを振りかざしながら、ステージの方へ大慌てで駆けていった。これには、参加者たちから大きな喝采が上がった。

この日最後のプレゼンテーションに登場したのは、IBMのArt Cannon氏だ。Fisher氏とは違って、Cannon氏のノートパソコンはLinuxで動作していた。だが、Fisherのものがそうでなかった理由をある意味で示す結果となった。オーバーヘッド・プロジェクタに合わせた適切な解像度になるように、Cannon氏はかなり長い時間、Xを相手に四苦八苦する羽目になったのだ。その後でようやく始まったプレゼンテーションのタイトルは、「業務向けにオープンソースの価値をうまく伝える方法」である。それを見て、私の近くに座っていた参加者の1人が、「このザマでは無理だ」とこぼしていた。

問題を解決したCannon氏はまず、自分はIBMの販売および流通部門の人間であり、技術系の人間ではないとの説明を始めた。そして、Linuxコミュニティには2種類の信頼があると語った。1つは与えられた信頼、もう1つは獲得した信頼である。そして、自分には与えられた信頼しかないが、自分の話でLinuxコミュニティからの信頼が獲得できたらいいと思っている、と話した。

IBMがLinuxへの興味を初めて公に示したのは、ISPCon 1998でのことだった。ブースの屋根にペンギンを掲げたのだ。そのブースに、Jon ‘maddog’ Hall氏がやって来て、屋根のぬいぐるみについて、素知らぬ顔でIBMに質問していたという。Linux Internationalの代表という自らの身分を明らかにする前に、IBMの知識と関心を試そうとしていたのだ。

Cannon氏は、Miguel de Icaza氏の次のような言葉を引用した。「オペレーティング・システムの代金を払うために、我が国は何バレルの石油を輸出しなくてはならないのだろうか」

Linuxおよびオープンソースに対する外国からの資金投入は、この根本的な前提に関連する部分が大きい。たとえばベネズエラには、この観点がそのまま文字どおり当てはまる。Microsoft Windowsのライセンス代を払うために、何バレルの石油を輸出しなくてはならないのだろうか。

Cannon氏は、中国についての話もした。中国は、世界貿易機関(WTO)への加盟を目指している。その過程として、知的所有権に関する法律を他国並みにし、財産権も同調させなくてはならない。それを達成する一環として、Microsoft製ソフトウェアを正規のものにする必要があり、そのために、Microsoftに直接支払うライセンス料として、推定320億ドルのコストがかかる。そのような出費を避けるべく、中国が代わりに選んだのが、Linuxへの資金投入だった。

ブラジルも、同じような考えのもとに、政府のシステムの80%をLinuxに移行するという3年計画を発表し、その達成のために、プロジェクトに対してしかるべき資金提供を行った。

Cannon氏は最後に、IBMが持つ特許の多くをオープンソース・コミュニティ向けに開放することを約束すると再度強調した。

原文