Linux Weather Forecast

Linux Weather Forecast (天気予報) へようこそ

(原文はこちら)

このページでは、Linux の開発コミュニティーで現在進行中の開発をトラッキングしています。これらの開発結果はメインラインカーネルに採用され、近い将来メジャーな Linux ディストリビューションに取り入れられていく可能性の高いものです。この天気予報は LWN.net のエグゼクティブ エディター Jonathan Corbet が担当します。もし何かこの天気予報をより正確なものにするための提案があれば、ディスカッション ページ (英語) にコメントを送ってください。例えば「このプロジェクトあるいはパッチセットはトラッキングするべきだ」とか。この天気予報の主な変更については、ブログでも報告しています。直接ブログを見ていただくこともできますし、フィード リーダーでブログ フィードを購読していただくこともできます。

天気予報の要約

現在の状況: カーネル 3.2 が、72 日間の開発期間を経て 2012 年 1 月 4 日にリリースされました。3.2 には、以下のような興味深い機能が追加されています。

  • proportional rate reduction アルゴリズム: パケット ロス後のネットワーク接続復帰を改善します。
     
  • extended verification module (EVM): ファイルシステム コンテンツによるオフライン攻撃からシステムを保護するセキュリティ技術です。
     
  • CPU scheduler bandwidth controller: 任意のプロセス グループに配分する CPU 時間をより柔軟に制御できます。
     
  • cross-memory attach: 高帯域幅プロセス間メッセージング処理を目的とする一対の新しいシステム コールです。
     
  • DSP (digital signal processor) ベースの ”Hexagon” アーキテクチャがサポートされました。
     
  • デバイス対応の新しい Dynamic Voltage and Frequency Scaling (DVFS) フレームワークが、あらゆるタイプのシステムの省電力化を実現します。
     
  • ボリューム マネージャー サブシステムが、新しい "シン プロビジョニング (thin provisioning)" と呼ばれるターゲット タイプをサポートしたので、ストレージ空間をより柔軟に利用でき、また、スナップショットをより機能的に実行できます。
     
  • btrfs ファイルシステムに、以前のツリーのルートの記録が追加されました。破損したファイルシステムを復元する際に有用です。
     
  • I/O-less dirty throttling パッチは、ダーティ メモリを増やしすぎるプロセスの動作を予測してスロットリングするという考え方で、仮想メモリ サブシステムに重要なコントロールシステム ロジックを追加しました。これにより、ここ数年の課題であったカーネルのライトバック パフォーマンスが大幅に向上します。

3.2 の開発サイクルでは、12,000 件近くの変更がマージされましたが、これは近年の最多マージ数の 1 つと言えます。3.2 カーネルには約 190 社が貢献しています。3.2 の変更内容の出自については、こちらの記事を参照してください。また例によって、カーネル新参者 3.2 のページには、このリリースに関する詳細情報が掲載されています。

短期予報: 3.3 カーネルのリリースは 3 月 中頃になると予想されます。このリリースのマージ ウィンドウは、1 月 19 日の 3.3-rc1 でクローズしました。3.3 でマージされる主な機能は以下のとおりです。

  • "team" ネットワーク ドライバーという新しい軽量ボンディング ドライバーが追加されます。
     
  • ネットワーク指向の新しい control group (cgroup) コントローラーが 2 つ存在します。1つは、ネットワーク プライオリティ コントローラーです。システム管理者はこれを使って、control group がネットワーク インタフェースにアクセスするプライオリティを補正できます。もう 1 つは、TCP バッファ サイズ コントローラーです。これを使うと、任意の control group の TCP バッファに割り当てるカーネル メモリの量を調整できます。
     
  • バイト キュー リミット インフラストラクチャは、任意のネットワーク インタフェースの伝送キューに入れるデータ量を調整します。複雑な「バッファの肥大化」を解決する方法の 1 つです。
     
  • Open vSwitch は、仮想化状態で複数のアプリケーションを持つ仮想ネットワーク スイッチです。
     
  • ARM アーキテクチャにラージ物理アドレス拡張 (LPAE: large physical address extension) のサポートが追加されました。つまり、カーネルが 32 ビット ARM システムで 4GB以上のメモリを処理できます。
     
  • Android メインライン化プロジェクトの一環で、複数の Android カーネル ドライバーがステージング ツリーに戻ってきています。
     
  • C6X アーキテクチャがサポートされます。
     
  • メモリ コントローラー ナチュラリゼーション パッチにより、メモリ使用コントローラーのオーバーヘッドが大幅に削減され、、メモリ管理サブシステム全体が簡略化されます。

3.3 のマージ期間中に、メインラインには 8,900 件を越える変更が反映されています。つまり、この開発サイクルもまた、非常にアクティブなサイクルになります。

長期予報

天気と同じで、これから Linux カーネルに何がマージされるかはわかりませんが、すべての変更は、メリットと長期メンテナンス コストの両面から評価されます。ただし、以下の項目には注目してもよいでしょう。

Android カーネル パッチ。Android 関連の変更は、広範囲にわたる議論の的となっていますが、いまだにメインライン カーネルには入れられていません。しかし 2011 Kernel Summit で、このコードを入れるべきだろうということが決定されました。長い伝統が示しているように、積極的に配布/サポート/使用されているコードは、たとえ問題があっても、いつかはマージされるべきです。実際にそうなるまでは何とも言えませんが、このあたりの変更については、3.3 リリースくらいに何らかの動きがあると思われます。

Btrfs ファイルシステムは、積極的に利用されつつあります。Oracle では、企業向けディストリビューションで Btrfs をデフォルト ファイルシステムとして使用する意向があるとしています。LinuxCon Europe でも議論されたように、残っている問題は、機能的なファイルシステム修復ツールと、RAID5/6 サポートのマージです。

リアルタイム プリエンプション (Linux カーネルにおける確定的なレスポンスの提供) は、2004 年からツリー外で開発されています。現在、コアのリアルタイム処理だけをメインラインの外に残して、今後の開発サイクル内にその大量のコードをマージしようとしています。詳細については、10 月 22 日のリアルタイム ミニサミットのレポートをご覧ください。

x32 は、64 ビット アーキテクチャ向けの新しいバイナリ インタフェース標準で、64 ビットのアドレス空間を必要としないアプリケーションにより良いパフォーマンスを提供しようとするものです。実際、ほとんどのアプリケーションは 64 ビットのアドレス空間を必要としていないため、大きなメリットがあるでしょう。取り組むべき問題はまだいくつかありますが、大部分は完了しているので、2012 年中には x32 サポートをマージできるはずです。その他の詳細情報は、こちらの記事をご覧ください。

control group というのは、カーネルがプロセスを階層グループに分類できるようするためのメカニズムで、それらのグループにポリシーやリソースの使用制限を適用することができます。この機能は、カーネル コミュニティでは議論の的となっていましたが、利用が高まっており、これからも高まり続けることは明らかです。この分野では来年以降も、次の 2 つの方向で開発が継続するでしょう。(1) 新しいコントローラーを追加してポリシーをグループに適用する、(2) control group とそのコントローラーの実装を改善してカーネル開発者を安心させる。詳細については、2011 Kernel Summit の control groups の議論を参照してください。

特定エリアごとの話題

この Forecast はサブジェクトごとに分割されています。
(注: 下記のリンク先は日本語化されています。)

過去の Linux Weather Forecast

2012 年 1 月 10 日
2011 年 11 月 30 日
2011 年 8 月 10 日
2011 年 6 月 10 日
2011 年 5 月 24 日
2011 年 5 月 17 日
2011 年 3 月 25 日
2011 年 1 月 25 日
2011 年 1 月 10 日
2010 年 11 月
2010 年 10 月
2010 年  9 月
2010 年  6 月