【LinuxConレポート】主要カーネル開発者Greg K-H氏が語る、メンテナーの苦労秘話


 Linuxの開発者が集まる世界的な技術カンファレンス「LinuxCon Japan 2012」が6月6日に開幕。パシフィコ横浜で8日まで開催されている。主催はThe Linux Foundation(LF)。公式言語は英語となる。参加登録者数は約650人という。

 カンファレンスでは、ファイルシステムやメモリ、ネットワーク機能、組み込み機器対応、仮想化技術などのLinuxカーネル技術を中心に、開発のありかたやカーネルコミュニティへの参加促進などもまじえて約60のセッションが開かれる。仮想化やTizenなどのミニサミットに、oVirtやGlusterFSのワークショップなども開催。Linuxディストリビューションのパネルディスカッションや、アジアのカーネル開発者によるパネルディスカッションなどもあり、コアな技術者が緊密な議論を交わす。

LinuxCon Japan 2012基調講演の会場風景
The Linux Foundation エグゼクティブディレクター Jim Zemlin氏

パッチをメンテナーに採用してもらう心得

Greg Kroah-Hartman氏

 初日である6日の基調講演の1つでは、stableカーネルのメンテナーを務める主要カーネル開発者のGreg Kroah-Hartman氏(通称Greg K-H氏、The Linux Foundation)が登壇。「Linux Kernel Maintainers: What They Do and How You Can Help Them」と題して、カーネルへのパッチをメンテナーに採用してもらうための心得を解説した。

 冒頭で「彼らはなぜ気難しいのか」とジョーク混じりに話したHartman氏は、1時間あたり平均5.79個のパッチが取り込まれていること、最新であるLinux 3.4.0のリリースでは、1時間あたり平均7.21個のパッチが取り込まれたという数字を紹介。氏自身も、最近の2週間は忙しい時期でないのにかかわらず、487個のパッチを受け取ったという大変な状況を語った。

 そうした数にも増して“不機嫌になる理由”として、受け取る側で困ったり手間がかかったりするパッチも多いとして、笑いをまじえて例を紹介した。いわく、「[48/48] とだけSubjectにあるメール」「一連のパッチの順番がぐちゃぐちゃ」「なぜか“confidential”と書かれたパッチ」「タブがスペースに変換されている」「unified diff形式じゃない」「Linuxカーネル標準とコーディングスタイルが異なる」「自分の担当じゃない部分のパッチ」「ビルドが通らない」「3番目のパッチで壊れて6番目で直したというパッチ」「あとで直すというコメントのついたパッチ」「450KBある巨大パッチ」などだ。

 こうした悪い例を参考にHartman氏は、「メンテナーはパッチを採用しないほうが楽。パッチを不採用にする言い訳を与えない工夫をしよう」と語り、パッチを送る心得を紹介した。コーディングスタイルや送り先については、標準ツールでチェックする。メールのSubjectや、パッチの意義などを、意味のわかるように書く。小さい単位でパッチにする。ビルドできて機能することをちゃんとテストする、といったことだ。さらに、レビューのコメントを無視したり、理由も書かずに同じパッチを再送したりするようなことをせず、パッチの進捗についてメンテナーと連絡をとって進めることなどが重要だと説明した。

 Hartman氏は同日の個別セッションでも「How The Linux Kernel is Developed」と題し、カーネルのリリースやパッチ採用のしくみを解説。これからパッチをコミットするための参考文献も紹介し、Q&Aでは主にまだパッチのコミット経験の少ない開発者からの質問に答えた。

Hartman氏は最近2週間で487のパッチを受け取った1時間に平均5.79個のパッチが採用される
パッチの例パッチの採用プロセス

 基調講演ではほかに、Red Hat社CTOのBrian Stevens氏が「Linux: At the Forefront」として、Linuxとそれをビジネスとして成功させた同社の過去・現在・未来について語った。

 Red Hatは会計年度2012年度に10億超の売上を達成した。現在、世界の金融取引の50%がRed Hat Enterprise Linux(RHEL)上で動き、Fortune 500の80%の企業がRHELを採用しているという。LinuxとRed Hatがビジネスとして成功した理由として、Stevens氏は、商用Unixのように特定のベンダーのハードウェアに縛られていなかったことや、Red Hatが長期サポートを提供したことを挙げた。

 さらに、クラウドのAmazon、検索のGoogle、SNSのFacebookやTwitter、モバイルのAndroidなど、新しいものを作るプラットフォームにLinuxが選ばれていることを紹介。特に「Linuxなくしてはクラウドはできない」と語った。さらにRed Hatの今後の取り組みとしても、IaaS・PaaS・SaaSの接近を挙げ、エンタープライズアプリケーションとクラウドのブリッジとしてのLinuxの役割を強調した。そのうえで、Red HatによるPaaS基盤のOpenShiftや、同社も参加するIaaS基盤ソフトウェアOpenStack、2011年に買収した分散スケールアウトストレージのGlusterFSなどを紹介した。

Brian Stevens氏(Red Hat社CTO)Red Hatの成功要因
「Linuxなくしてクラウドはできない」エンタープライズアプリケーションとクラウドのブリッジとしてのLinux

 また、NTTドコモのKiyohito Nagata氏は、「Expectations for Tizen」と題して講演。ドコモの事業戦略として、「しゃべってコンシェル」などのサービス開発とそのための“ネットワーククラウド”を紹介。要素技術としてHTML5の重要性を強調した。そして、HTML5などの標準技術によるモバイルのプラットフォームとしてTizen Projectへの期待を語り、Tizen Projectへ企業が働きかけるための業界団体のTizen Association(NTTドコモも理事会に参画)を紹介した。

Kiyohito Nagata氏(NTTドコモ)Tizen ProjectとTizen Association

開発活動に関するパネルディスカッション

 午後の個別セッションの中では、Linuxコミュニティに関するトラックも設けられた。その中で、「Being a Japanese Linux Developer, and Working on Linux for a Japanese Company」と題するパネルディスカッションが開かれた。

 パネリストはHiroyuki Kamezawa氏(富士通)、Masami Hiramatsu氏(日立製作所)、Satoru Takeuchi氏(富士通)、Hideaki Yoshifuji氏(慶應大学)、Damian Hobson-Garcia氏(イーゲル)で、いずれも日本の企業等でLinuxカーネル開発者として働くメンバーだ。司会はHiroshi Miura氏(NTTデータ)。

 まず、なぜ企業が直接お金を生まないオープンソースソフトウェアにコントリビュートするかというテーマについては、ユーザーのニーズにLinuxが適しておりそこによりよい機能を入れていく必要性や、大きなシステムを構成する要素を改善していく必要性、小さな企業としては大きな企業と手を組むチャンスであること、大学にとっては論文を発表して世の中をよくしていくのと同じであることなどが語られた。

 また、コミュニティでの開発活動の難しさについては、パッチをコミットするときの説明の大変さや、メンテナーとしてリクエストに答える苦労、同じ目的のパッチが複数あるときの調整、オンラインで議論するときの時差などが語られた。また、その一方の喜びについては、世界のトップクラスであり自分のヒーローである開発者と共同作業できることや、自分の書いたコードがPCはもちろんTVや携帯などさまざまな機器で動いていることなどが語られた。また、Linuxカーネル開発は変化が早いことについては、難しさと喜びの両面で言及された。

 オープンソース開発者として活動するために重要なスキルは、というテーマについては、活動し続けるモチベーションや、現在の課題を追い続ける情熱、チャレンジ精神、自分の環境以外で動作がどうなるか想像する力、自分のパッチの目的やメリットなどを説明する能力などの答えが並んだ。

 パネリストには会場からも質問が飛んだ。オープンソースコミュニティの心得について学校教育ができることはあるか、との問いについては、大学のクラスで共同開発をさせた例や、参加を強制するのではなくサポートする必要性、ボスに聞かずに自力で解決する心がけなどの回答がなされた。

Hiroyuki Kamezawa氏(富士通)Masami Hiramatsu氏(日立製作所)
Satoru Takeuchi氏(富士通)Hideaki Yoshifuji氏(慶應大学)
Damian Hobson-Garcia氏(イーゲル)司会のHiroshi Miura氏(NTTデータ)

学生たちによるハイレベルな発表、14才の中学生も

 Linuxコミュニティに関するトラックでは、学生が研究成果を15分で発表する「Student Presentations」の枠も設けられ、集まった学生たちによりいずれもハイレベルな発表が繰り広げられた。

 Soramichi Akiyama氏は、KVM/QEMUによる仮想マシンのライブマイグレーションでメモリ内容の転送時間を短縮する技術について発表した。一度移動してまた元の物理サーバーに戻ったときに、元の内容をできるだけ再利用し変更のあるメモリーページのみを転送するという。

Soramichi Akiyama氏。ライブマイグレーションでメモリーページをできるだけ再利用する技術を発表

 Lu Yikei氏は14才の中学生。QtによるGUIアプリケーションの開発について、ユーモアをまじえながら、Visual StudioやGTK+とポイントごとに比較して解説し、会場の喝采を浴びた。

Lu Yikei氏。QtによるGUIアプリケーションの開発について、ほかのライブラリや開発ツールと比較

 Hiromasa Shimada氏、Tsung-Han Lin氏、Ning Li氏のグループは、rootkitによるカーネルの改変を検出するインテグリティチェックのツールについて発表した。SH4Aアーキテクチャを対象に、カーネルソースからデータ構造を解析し、ハイパーバイザーによりOSの外からインテグリティチェックを実行するという。

Hiromasa Shimada氏らのグループ。OSの外部からカーネルのインテグリティチェックを実行する発表

 Takeshi Yoshimur氏、Hiroshi Yamada氏、Kenji Kono氏のグループは、Linuxカーネルが1箇所の異常によりほかの異常を誘発してクラッシュするエラー伝搬の可能性について、フォールトインジェクションにより異常を起こして挙動を検証した結果を発表した。多くの場合で異常プロセスを終了させることで影響を抑えられたという。

Takeshi Yoshimur氏らのグループ。

 Hiroaki Kobayashi氏は、CPUの電力消費への対策について発表。MIPS R3000アーキテクチャのGeyserプロセッサのパワーゲーティング機能をLinuxから利用できるようにした研究と、さらに実行ファイル形式を拡張して複数の温度状態ごとに最適化したコードを同居させ動的に切り替えられるようにした研究について報告した。

Hiroaki Kobayashi氏。CPUのパワーゲーティング機能をLinuxから利用する発表

 Midori Kato氏は、ビデオチャットなどのインタラクティブな動画転送を想定し、TFWC(TCP-Friendy Window-based Congestion Control)の制御をより密にするTunable TFWC(TTFWC)について発表した。

Midori Kato氏。TFWCの制御をより密にするTunable TFWC(TTFWC)の発表

 Takuya Asada氏は、モジュラー型データセンターなどに向けた新しいサーバーセントリックのL2ネットワーク技術BCubeと、そのLinuxカーネルと設定ツールでの実装について発表した。

Takuya Asada氏。新しいL2ネットワーク技術BCubeをLinuxで実装した発表
Student Presentationsの最後には、聴衆の挙手による投票も行なわれた
関連情報
(高橋 正和)
2012/6/7 09:08