Linuxの普及促進や標準化などを行う非営利団体「The Linux Foundation Japan」は2008年11月19日,技術者向けイベント「The Linux Foundation Japan Symposium」を開催した。9回めとなる今回のシンポジウムでは,「ファイル・システム」を中心テーマに,Linuxカーネルの最新動向や,資源管理,次世代ファイル・システムなどについての講演があった。
カーネルのセキュリティ問題が多すぎる
最初の講演は,技術ニュース・サイト「LWN.net」を主宰するJonathan Corbet氏(写真1)によるLinuxカーネルの開発動向紹介である。
まず同氏は,2008年1月24日リリースの「カーネル2.6.24」から10月9日リリースの「カーネル2.6.27」までにどのような新機能や改良が加えられたかを紹介した。カーネル2.6.24で実施されたx86とx86_64とのコード統合を「ずっと昔のことのようだ」と述懐するほど開発は活発で,実に多数の新機能が盛り込まれている。
例えば,カーネル2.6.24には上記のコード統合以外にも,「ネットワーク名前空間」,「Cgroup(Control group)」という資源管理や仮想化向けの機能が追加された。カーネル2.6.25には,新セキュリティ機構「SMACK」やリアルタイム処理用のスケジューリング機構が導入,カーネル2.6.26では,x86環境でページごとにメモリー属性を変更できるようにしたほか,デバッガ嫌いのLinus Torvalds氏が抵抗し続けてきたカーネル・デバッガ「KGDB」が導入された。カーネル2.6.27には,ブロック入出力層でのデータ完全性チェック機構やマルチキュー・ネットワークなどが導入されている。
このように活発な開発が進んでいることから,Corbet氏は,カーネルの開発体制は概ね良好だとする。その一方,課題として「品質の維持」を挙げた。コード変更に伴って他の部分に不具合が出ることは良くある。安定版のリリース前にこれらの不具合はゼロにすることが望ましいが,現状は必ずしもそうはなっていないという。kerneloops.orgに集められたクラッシュ報告の分析により,大部分のユーザーが直面する不具合は少数のバグが原因であると分かった。不具合をゼロにするのは無理でも,優先順位を付けて処理することで相当効果が上がるだろうと語った。
また同氏は,「カーネルのセキュリティ問題が多すぎる」点にも懸念を示した。先週だけでもセキュリティ関連のカーネル修正は60はあったという。通常アプリケーションでは単なるバグで済むレベルの問題でも,カーネルの場合はシステム全体を脅かすセキュリティ問題になりかねない。「あまり深刻に受け取られていないが,これは大きな問題だ」(Corbet氏)。
カーネルの資源を管理するCgroup
続いて,富士通プラットフォーム技術開発本部 Linux技術開発統括部の亀澤 寛之氏(写真2)が,同氏も開発に参加しているカーネルの資源管理機構「Cgroup(Control group)」の仕組みや使い方,現在の開発状況について語った。
Cgroupを利用すると,プロセッサやメモリー,各種デバイスなどの資源をスレッドに割り振れる。スレッドに独自の名前空間を持たせることもできるので,「コンテナ」と呼ばれるOSレベルの仮想化機能の実現に利用できる。Cgroupは元々,複数あったLinux向けのOSレベル仮想化実装を共通化する目的で開発された仕組み。そのため,亀澤氏によれば「ソース中にcontainerという文字列が多数残っている」そうである。ただしCgroupは,コンテナ作成専用の機能ではなく,もっと柔軟な資源管理に対応する。例えばx86_64環境では,Cgroupを使ってSMPマシンを疑似的にNUMA(Non-Uniform Memory Access)マシンとして使うことができるという。
今後の開発課題として亀澤氏は,階層化のサポートやユーザー向けの使いやすい管理ツールの作成などを挙げた。