ニュース
LinuxCon + CloudOpen 2015レポート、最新のOSS動向などを解説
Docker+LinuxがOSの未来?
(2015/6/10 06:00)
カーネル開発の最新動向を解説
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カーネルのプロセスがうまくいっていることも紹介された。
課題としてはまず、リアルタイム。Linuxは汎用OSでリアルタイム応答が可能だと証明したが、「ただし誰かがサポートすれば」とCorbet氏は注釈し、うまくいかないと機能を失うことになると語った。
続く課題はセキュリティ。2014年に115件のカーネルのCVEが出され、古くてメンテナンスされていないコードがあると語られた。
次に、タイムスタンプが32bitを超える「2038年問題」。コアのコードの対応は完了しているが、新しいシステムコールAPIは作業中、Cライブラリーへの波及は考えられているところだという。
その次はIoT。現在、カーネルのサイズはどんどん増大している。そこで、コンフィグで機能を削って小さくビルドする「Linux Kernel Tinification」の取り組みがなされているという。ただし、カーネルのコンフィグの大変さや、機能を削ったカーネルのアプリケーションサポートなどの問題があるという。
課題の次は、新しく興味深い機能の紹介。まず、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年やってきた。今後もうまくやれると思うし、楽しい」と語った。
カーネル開発者が会場からの質問に答える
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が入っていないとうまく動かないかもしれないという声や、遅いかもしれないが動くのではないかという声なども出た。