【LinuxCon Japan 2010 3日目レポート】
仮想化など各分野で議論白熱、カーネルコミッターを目指す人へのアドバイスも


 Linuxの開発者が集まる技術カンファレンス「LinuxCon Japan Tokyo 2010」が9月27日から28日にかけて開催された。

 最終日にあたる29日も、stableカーネルのメンテナーの講演や、カーネルコミッターを目指す人に向けたパネルディスカッションなど、さまざまなセッションが開かれた。

 

stableカーネルのメンテナンスについて語り、その場でリリースを実演

“Greg K-H”ことGreg Kroah-Hartman氏

 最終日の基調講演には、Linuxのstableカーネルのメンテナーである、“Greg K-H”ことGreg Kroah-Hartman氏が登壇。stable(安定版)カーネルのリリースやメンテナンスの位置づけの変遷について語った。

 Hartman氏は最初に「Linuxは常に変化していて安定することはない」と前置きして、15年前のLinux 2.0のリリースから話を始めた。このとき、Linux 2.0を安定して(仕様変更なしに)使ってもらうため、2か月後にLinux 2.1を開発版としてリリース。偶数バージョンがstable版、奇数バージョンが開発版として並行して進むことになった、とHartman氏は説明した。

 この体制が変わったのが、2003年にリリースされたLinux 2.6から。Linux 2.6の中でインクリメンタルに改善して、開発サイクルを短くすることにした。背景としては、2.4の時代が長く続きバックポート(安定版へのパッチの適用)も多くなったことや、バージョン管理ツールBitKeeperによるソースコード管理が進んだことがあったという。

 この方針で2年ほどうまくいってきたが、やがて3か月ごとにバージョンが変わることに不満が出るようになった。このときLinusが「stableカーネルを並行してメンテナンスする方法が考えられるが、そんなことをやる人なんていないだろう」とLKMLに投稿したところ、なんと2時間で「自分がやる」と返事をした無謀な人がいた、とHartman氏はふり返る。…Hartman氏自身のことである。

 直後にChris Wright氏も協力を表明して、Linux 2.6.11からこの方法が採用された。Harman氏いわく「けっこう楽しいプロジェクトになった」。Linusが開発したバージョン管理ツールgitを使うと、容易に管理できるのだという。

 stableカーネルに変更を加える基準は明文化されていて、大きな変更はやらず、実際に困っているバグだけに対処し、Linusのgitツリーに入っているパッチだけを採用する、というルールになっている。

 ここでHartman氏は、2.6.11以降のバージョンについて、バージョンごとにリリース回数とパッチの数を集計した表を表示。2.6.16と2.6.22、2.6.27、2.6.32が突出してパッチの数が多いことを指して、Hartman氏は「エンタープライズ向けディストリビューションで採用され、2年などの長期にわたって使われたため」と説明した。

 最後に、デモと銘打って、壇上でstableカーネルであるLinux 2.6.35のツリーにパッチを取り込み、その場で本当に「Linux 2.6.35.7」としてリリースする様子をスクリーンで見せるパフォーマンスを披露。会場の喝采(かっさい)を浴びた。

 なお、このときHartman氏がMakefileにタイプしたコードネームは“Yokohama”。前日、日本のLinuxコミュニティの1つ“Yokohama Linux Users Group”(YLUG)がパーティを開いてカーネルコミッターたちを歓迎したことにちなむという。

Linux 2.6.0~2.6.10のリリース方針Linux 2.6.11以降のリリース方針
バージョンごとのリリース数とパッチの数壇上からLinux 2.6.35.7をリリース

 

日本からのトップメンテナーは増えるか? パネルディスカッション開催

 3日間の締めくくりとして、パネルディスカッション「Japanese Kernel Developer Panel」が開かれた。

 Linuxのストレージ分野で活躍する藤田智成氏(NTT)、メモリホットプラグ等の分野で活躍する亀澤寛之氏(富士通)、トレーサ分野で活躍する平松雅巳氏(日立)の3人が登壇。モデレータのJon Corbet氏や会場の質問に答えるかたちで、Linuxコミッターとしての経験などについて語った。

 Corbet氏はまず「これからカーネルコミッターを目指す人にアドバイスを」と質問。これに対し、「“カーネルハッカーになりたい”というのではなく、自分が本当にやりたい機能を実現するのが大事」という回答がなされたほか、「LKMLをすべて読む」という意見も出て、「それは難しい(笑)」と反論もなされた。また、「各自、カーネル開発をするモチベーションは?」という質問には、「カーネルコミュニティにいる才能のある人たちと作業できるのが喜び」「Linuxはどこでも使われていて、例えばNASAなどでも使われているのが誇り」という回答などがなされた。

 「いままで難しかったことは」という質問には「小さいサブコミュニティだったためか、親密に相談できて、難しいことはなかった」「自分のパッチの必要性を根拠づけるのに苦労した」「いきなり巨大なパッチを送ったため、メンテナーが見てくれなかった」という経験が語られた。また、「パッチがリジェクトされたときはどうする?」という質問には、「リジェクトの理由を見て次の手を考える」「パッチの設計を変えたり、説明を書き直したりするしかない」と回答。中でも平松氏は、トレーサのSystemTapがマージされなかった件を例に、その反省からやりかたを変えてKprobeに機能を入れた経緯を語った。

 Corbet氏と、会場のJames Bottomley氏からは、「Linusが直接pullするgitツリーは、日本では1つだけ。日本でもそうしたトップレベルのメンテナーが増えてもいいのでは?」「リリースごとにメンテナーが増えていて可能性がある」と挑発的な激励もなされた。それに対し、壇上のパネリストも、難しい部分を語りつつも肯定的なコメントを返した。

左から、藤田智成氏(NTT)、亀澤寛之氏(富士通)、平松雅巳氏(日立)モデレータのJon Corbet氏

 

Linux各分野の議論が白熱

 最終日も、ネットワークや組み込みLinux、スケーラビリティ、仮想化、SSDなど、20個の技術セッションが開催され、熱心な議論が交わされた。

上田理氏(ソニー/Consumer Electronics Linux Forum)。アジアの組み込みLinuxとLinuxコミュニティの関係について、「組み込みはコミュニティの辺境か?」「アジアはコミュニティの辺境か?」と設問を立ててそれを否定。また、両者をつなげることの重要性についても語った
宗像尚郎氏(ルネサス)。SuperHやARMでのCPUの非互換性や周辺デバイスの特殊性、既存のコードを壊してしまう可能性など、組み込みLinux開発でメインラインにマージしづらい状況を解説。対策として、古いコードを掃除する方法や、ユーザー空間でドライバを動かすアダプターの可能性、メンテナーとの協力などを提案し、参加者と白熱した議論が交わされた
海外浩平氏(NEC)。27日に発表したSE-PostgreSQLと同様に、SELinuxのアクセス制御をmemcached内部のデータに適用する実装について発表した。
吉藤英明氏(慶應大学)。仮想化技術と無線LAN接続を組み合わせ、そこでIPv6とIPv4を併用するときに、ブリッジやルーター(NAT)を使う方法とその問題点を指摘。ND proxy形式の実装などについて語った
山幡為佐久氏(VA Linux)。QEMUのPCI Expressエミュレータの開発について解説。PCIとの互換性と違いや、比較的新しいチップセットのエミュレーション、ホットプラグへの対応などについても説明した
関連情報
(高橋 正和)
2010/9/30 10:00