ニュース

LinuxCon + CloudOpen 2015レポート、最新のOSS動向などを解説

Docker+LinuxがOSの未来?

カーネル開発の最新動向を解説

Jon Corbet氏(LWN)

 2日目のキーノートセッションでは、Linuxカーネル開発の最新動向を解説するJon Corbet氏による名物セッション「The Kernel Report」が行われた。

 まずこの1年のLinuxカーネルのリリースについて。バージョンは3.15から4.0になった。傾向として、リリース間隔が少し短縮されているという。次のバージョンは4.1で、6月14日リリース予定だが、Linus氏の家族バケーションの都合で延期される可能性もあるそうだ。

 ここ1年のハイライトとしては、まず7つの新しいシステムコールをリストアップ。追加された機能としては、スケジューラのDeadline scheduling、ストレージI/Oを並列化するMultique block layer、ネットワークの改善、ライブパッチ、不揮発メモリーのサポートを挙げた。また、数百の新しいドライバーの追加や、stableカーネルのプロセスがうまくいっていることも紹介された。

この1年のリリースと、次のLinux 4.1
リリース間隔が短縮されている

 課題としてはまず、リアルタイム。Linuxは汎用OSでリアルタイム応答が可能だと証明したが、「ただし誰かがサポートすれば」とCorbet氏は注釈し、うまくいかないと機能を失うことになると語った。

 続く課題はセキュリティ。2014年に115件のカーネルのCVEが出され、古くてメンテナンスされていないコードがあると語られた。

 次に、タイムスタンプが32bitを超える「2038年問題」。コアのコードの対応は完了しているが、新しいシステムコールAPIは作業中、Cライブラリーへの波及は考えられているところだという。

 その次はIoT。現在、カーネルのサイズはどんどん増大している。そこで、コンフィグで機能を削って小さくビルドする「Linux Kernel Tinification」の取り組みがなされているという。ただし、カーネルのコンフィグの大変さや、機能を削ったカーネルのアプリケーションサポートなどの問題があるという。

セキュリティの問題
2038年問題への対応状況
カーネルのサイズの推移

 課題の次は、新しく興味深い機能の紹介。まず、D-BusライクなカーネルのIPC(プロセス間通信)機能の「kdbus」は、4.1ではマージが見送られた。Corbet氏は2015年にはマージが可能ではないかと言いつつ、kdbusには反対意見などもあり、まだ議論が必要だろうとした。

 続いて、ライブパッチ。再起動するわけにいかないときに、動作中のカーネルにパッチを当てるものだ。現在、Red HatのkPatchとSUSEのkGraftの2種類の実装が有力で、最終的にマージするには1つに決める必要があるため、4.0ではベース機能だけマージされたという。

 その次が、不揮発メモリー。不揮発メモリーは、ディスクのように大容量で、メモリーのようにバイト単位で高速アクセスできるものだ。現在はディスクとして扱い、pmemドライバーが4.1でマージされる。この不揮発メモリーについて、ディスクとして扱うことによる制限もあり、どのように扱うかの議論があるという。

 さらに、ホットなのがコンテナーだ。長年の作業により、コンテナーを実現する機能はほとんど揃ったという。ただし、「Linuxコンテナー」と言われるが、相当する単一の機能は作らず、ビルディングブロックとなる機能を整備した。その結果、さまざまな実装が登場したが、どれかに決まらないというリスクもあり、標準化される可能性もあると語られた。

 最後に紹介されたのが、カーネルの仮想マシンだ。といっても、仮想化技術のことではなく、ACPIやNetfilter、トレーサーなどのカーネル内の処理系のことだ。その例として、BPF(Berkeley Packer Filter)を取り上げ、これを拡張したeBPF(Extended BPF)がこれから注目だと語った。

 まとめとしてCorbet氏は、「クレイジーな新しい機能をみんなで使っていて、APIをきちんとしなくてはいけない。これはいつも難しい問題だ」としつつ、「新しい道を切り開いていき、うまくやるということを25年やってきた。今後もうまくやれると思うし、楽しい」と語った。

カーネルのライブパッチ機能のkPatchとkGraft
不揮発メモリーの本当の課題
コンテナーのための構成技術
eBPF(Extended BPF)

カーネル開発者が会場からの質問に答える

 2日目のJon Corbet氏のセッションの直後には、カーネル開発者によるパネルディスカッション「Kernel Developer Panel」が開かれた。Jon Corbet氏をモデレーターに、Chris Mason氏(Facebook)、Tim Bird氏(Sony Mobile)、Greg Kroah-Hartman氏(The Linux Foundation)、Masami Hiramatsu(平松雅巳)氏(日立)の4人が登壇。今回はすべて、会場からの質問に、壇上から答える形式となった。

 カーネルのコードレビューについての質問には、Hartman氏が「私は誰よりもレビューしているが、開発者と違ったスキルが必要で、大変」と、Mason氏が「レビュアーに感謝することが大切」と回答した。また、平松氏が「人間によるレビューだけでなく、自動テストも必要」とすると、バグの混入を防ぐためのテストツールについてパネリストが話しあった。

 また、カーネルのAPI/ABIの非互換性によってユーザースペースが壊れる(プログラムの動作に影響が起きる)ことについては、壊れたら大変なので壊さないことが大切という声に対して、Androidでもそうかというツッコミがあり、さらにAndroidはハードウェアにOSがだいたい関連づいているという指摘もあった。また、「過去には壊したことがある」という経験も語られた。

 それに関連して、古いカーネルで今のアプリケーションが動くかという質問も出され、udevが入っていないとうまく動かないかもしれないという声や、遅いかもしれないが動くのではないかという声なども出た。

左から、モデレーターのJon Corbet氏(LWN)、Chris Mason氏(Facebook)、Tim Bird氏(Sony Mobile)、Greg Kroah-Hartman氏(The Linux Foundation)、Masami Hiramatsu(平松雅巳)氏(日立)

(高橋 正和)