Linux Kernel Watch

7月版 gitベースのカーネル2.6.12に問題発生!?

上川純一
日本ヒューレット・パッカード株式会社
コンサルティング・インテグレーション統括本部
2005/7/26

linux-kernelメーリングリストかいわいで起きるイベントを毎月お伝えする、Linux Kernel Watch。4月から始まったバージョン管理ツールの混乱もそろそろそれなりに収まったようです。そして、6月は初めてgitベースでの安定版カーネルがリリースされました。

では、6月のLinuxカーネル関連の状況について、見てみましょう。

gitベースでも(何とか)無事2.6.12リリース

 6月17日に、gitによる初の安定版カーネル2.6.12がリリースされました。新しい環境での新リリースなので、いくつか驚きがありました。

 まず、ChangeLogには2.6.12-rc2以降の変更点しか含まれていません。gitに移行したのが2.6.12-rc2だったので、それ以前についてはChangeLogをgitで自動生成できないためです。2.6.12-rc2以前の変更も知りたければ、「どこかで公開されている過去のChangeLogを自分で探して追加すればよい」というのがLinusの説明です。確かにそのとおりなのですが、ちょっと不親切です。

 また、パッチの適用の仕方についても多少の混乱がありました。今回リリースされたパッチは、2.6.11.12を2.6.12にするのではなく、2.6.11を2.6.12にするためのパッチになっています。一般的には「安定版の最新のリリース」は2.6.11.12であることを考えると、パッチを逆行していったん2.6.11に戻す必要が生じるため、不便です。

 また、Linusはgitのtarへのエクスポート機能を利用して今回のリリースを作成しました。gitはその機能の一部として、「tar pax extended headers」を利用しています。具体的には、gitのコミットID()をtarファイルのコメントとして記録しています。

注:commitオブジェクトのSHA-1ハッシュ値。gitはオブジェクトのハッシュの値でリビジョンを管理している。

 しかし、この機能を利用するには1.14以降のGNU tarが必要になります。それ以前のバージョンのtarを利用して展開してしまうと、下記のような中身を持つpax_global_headerというファイルができてしまいます。

52 comment=9ee1c939d1cb936b1f98e8-d81aeffab57bae46ab

 このようにいろいろありましたが、gitに移行してからも安定版カーネルのリリースができたということで、重要な一歩ですね。

参考リンク:
  2.6.12のChangeLog http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.12

2000以上のパッチを取り込んだカーネル2.6.13-rc1

 カーネル2.6.12がリリースされるまで、しばらくはリリース直前ということでLinusのツリーに対して大きな変更は適用されませんでした。そのため、-mmツリーにパッチが蓄積していました。Linusは2.6.12をリリースした後、-mmツリーでテストしていたパッチを取り込み、2週間程度で2.6.13-rc1を出しました。

 短い期間でしたが、2000以上のパッチが含まれており、ほとんどすべてのサブシステムに対して変更が加えられています。差分のサイズは圧縮しても3Mbytesになります。shortlog(gitの出力する変更履歴のサマリ)が100kbytesを超えているため、メールに添付することもできません。ChangeLogのサイズは2Mbytes以上です。

 「gitになったけど開発の速度は遅くなったわけじゃない、うまく回っているぞ」といったところでしょうか?

参考リンク:
  2.6.13-rc1の
ChangeLog
http://www.kernel.org/pub/linux/kernel/v2.6/testing/ChangeLog-2.6.13-rc1

-stableリリースはどうなったか

 -stableリリースは6月になっても継続しています。Chris WrightとGreg Kroah-Hartman(以下Greg K-H)が継続してリリース管理をしています。途中、Linusの2.6.12リリースを挟んだものの、順調に安定版カーネルをリリースしています。

  • 2.6.11.12(6月9日)
    BTTVドライバの修正、hfsplusファイルシステムのoopsの修正、ext3ファイルシステムのassertionの修正など。9個のパッチが入っています。

  • 2.6.12.1(6月22日)
    2つのセキュリティフィックスが適用されています。サブスレッドの実行についての問題(CAN-2005-1913) と、ia64 ptraceとsigrestore_contextの問題 (CAN-2005-1761) についてパッチが入っています。

  • 2.6.12.2(6月30日)
    2.6.12になってから初めての「-stable review」プロセスを経たリリースです。pci-driver.cにある明らかなタイプミスやe1000ドライバのロジックミスなどの修正、qla2xxxドライバのちょっと込み入った初期化部分の修正など、7個のパッチが含まれています。

参考リンク:
  2.6.12.yのGreg K-Hのgitツリーのサマリ http://www.kernel.org/git/?p=linux/kernel/git/gregkh/linux-2.6.12.y.git;a=summary
  2.6.12.yのChris Wrightのgitツリーのサマリ http://www.kernel.org/git/?p=linux/kernel/git/chrisw/linux-2.6.12.y.git;a=summary
  2.6.11.12のChangeLog http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.11.12
  2.6.12.1のChangeLog http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.12.1
  2.6.12.2のChangeLog http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.12.2

1/2

Index
Linux Kernel Watch 7月版
 gitベースのカーネル2.6.12に問題発生!?
Page 1
 gitベースでも(何とか)無事2.6.12リリース
 2000以上のパッチを取り込んだカーネル2.6.13-rc1
 -stableリリースはどうなったか
  Page 2
 Plan 9のネットワークファイルシステムが-mmツリーへ
 PREEMPT_RT vs. I_PIPE
 devfsよ、さようなら

連載 Linux Kernel Watch


 Linux Squareフォーラム Linuxカーネル関連記事
連載:Linux Kernel Watch(連載中)
Linuxカーネル開発の現場ではさまざまな提案や議論が交わされています。その中からいくつかのトピックをピックアップしてお伝えします
連載:Linuxファイルシステム技術解説
ファイルシステムにはそれぞれ特性がある。本連載では、基礎技術から各ファイルシステムの特徴、パフォーマンスを検証する
特集:全貌を現したLinuxカーネル2.6[第1章]
エンタープライズ向けに刷新されたカーネル・コア
ついに全貌が明らかになったカーネル2.6。6月に正式リリースされる予定の次期安定版カーネルの改良点や新機能を詳しく解説する
特集:/procによるLinuxチューニング[前編]
/procで理解するOSの状態

Linuxの状態確認や挙動の変更で重要なのが/procファイルシステムである。/procの概念や/procを利用したOSの状態確認方法を解説する
特集:仮想OS「User Mode Linux」活用法
Linux上で仮想的なLinuxを動かすUMLの仕組みからインストール/管理方法やIPv6などに対応させるカーネル構築までを徹底解説
Linuxのカーネルメンテナは柔軟なシステム
カーネルメンテナが語るコミュニティとIA-64 Linux
IA-64 LinuxのカーネルメンテナであるBjorn Helgaas氏。同氏にLinuxカーネルの開発体制などについて伺った

MONOist組み込み開発フォーラムの中から、Linux関連記事を紹介します


Linux & OSS フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Linux & OSS 記事ランキング

本日 月間