12月版 おちゃめなLinus、「今回も遅れちゃったよ」


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

linux-kernelメーリングリスト(以下LKML)かいわいで起きるイベントを毎月お伝えする、Linux Kernel Watch。2007年11月のLKMLでどんなことが起きたのか見てみましょう。

Linus、もう遅らせない宣言?

 11月は、2.6.24リリースに向けての活動が進みました。11月7日には2.6.24-rc2がリリースされましたが、それを知らせるLinusのメールは「いわなくてもいい、分かってるよ。今回も遅れちゃったよ」というような一文で始まっていました。

 ちなみに、-rc1が出たのは10月24日。それから-rc2まで2週間かかったことになりますが、これまで約2週間のペースでリリースされてきた実績からいうと、そんなに珍しいことではないはずです。

 けれど12月4日、-rc4のリリースをアナウンスするメールでLinusは再度この話題を取り上げました。「感謝祭の影響で1週間休みがあったので、リリースまでに2週間かかったけれど、本来は週に1回リリースされるべきもの。『2週間に1回』が例外ではなく常識になってしまっているが、今後は改善する」と意気込みを述べていました。

 また、いまに始まった話ではないのですが、アナウンスのメールにはgit shortlogの出力(バージョン管理システム「git」のコミットログをまとめて出力する命令)が添付されていません。これがあると、何が変わったのかを網羅的に説明できるのですが、メールに添付するにはサイズが大き過ぎるという理由で添付されていません。

 その代わり、-rc2のリリース時のメールには「今回もどきどきするようなエントリが盛りだくさんだよ、例えば:」という形で6個のエントリ内容が添付されていました。さぞかし重要な変更点を指摘しているのかと思いきや、「あぁ、そうさ、これらは僕が単にランダムに選んだだけだけどね」と、彼は相変わらずおちゃめです。

 こうしたLinusのリリースメールに対して、Rafael J. Wysockiが報告されたリグレッションを列挙し、バグトラッキングするメールを出していました。そのメールを契機としていくつか議論が起きているので、それなりの効果が期待できそうです。

x86マージの余波

 先月x86マージ関連についてお伝えしましたが、-rc3ではさらにいくつかのコードがマージされました。その1つが、設定言語であるKconfigです。しかし、慣れ親しんだ方法が変わってしまうと違和感があるようで、これについていくつか議論がありました。

 これまではアーキテクチャでモードの切り替えを指定していたのですが、今後はKconfig(.configファイル)の「CONFIG_64BIT」エントリで管理するようになります。これに対しJeff Garzikが、いままでは、

make ARCH=i386 allmodconfig && make ARCH=i386 -sj5

で32bit向けのビルドをテストできたのに対し、今後は32bitと64bit向けにそれぞれ.configファイルを編集しなければならないことに不快感を示しました。しかしAdrian Bunkは、「PowerPCなども同様に、32bitと64bitの切り替えをKconfigで実施している。x86だけ違う方法にするのはまずいだろう」と説明しました。

 一方、先月お伝えした「K64BIT」環境変数を利用する設定方法には不具合があったため、2.6.24-rc4にマージされたパッチで変更が加えられました。

# make {allno,allyes,allmod,rand}config [ARCH=...]

 この変更では、ARCH=i386を指定した場合にはCONFIG_64BIT=nが強制され、ARCH=x86_64を指定した場合はCONFIG_64BIT=yが強制されるようになりました。またARCH=x86を指定すると、32bitと64bitを自由に選択できます。何も指定しない場合は、コンパイルしているマシン(host arch)によってデフォルト値が決定されることになります。

option \ host arch 32bit 64bit
./. 32bit 64bit
ARCH=x86 32bit 32bit
ARCH=i386 32bit 32bit
ARCH=x86_64 64bit 64bit
出典:「x86: simplify "make ARCH=x86" and fix kconfig all.config」Sam Ravnborg

 これにより、i386/x86_64が従来どおりのニュアンスで使えるようになりました。この方法で無事にリリースに至るとよいですね。

関連記事:
参考 2007年11月版 x86系重複コードの悪夢は消えるのか?
http://www.atmarkit.co.jp/flinux/rensai/watch2007/watch11a.html

起動時コードを変更したら486でブートできなくなっちゃった

 従来、Linuxカーネルの起動時のコードは、ほとんどがアセンブラで記述されていました。それが2.6.23で大きく変更されました。C言語で実装できる部分は実装しようという考えにより、全体的に書き直されたのですが、そのついでに書き直されたアセンブラの部分に起因する問題が浮上しました。

 Mikael Petterssonが報告するには、486 CPUではLinuxカーネルが起動しないという問題があったそうです。486には、一部のレジスタへのアクセスのシリアライズ方法に、ほかのCPUと違う特徴があったのですが、2.6.23の変更に伴い、一部のジャンプ命令がいったん削除されていたのが原因です。この問題に対し、削除されていたジャンプ命令を復活させるパッチをH. Peter Anvinが作成し、2.6.24-rc2にマージされました。

参考:
参考 プロテクトモードへの切り替えルーチン
arch/x86/boot/pmjump.S

ウォッチ コードを鍛えるMMOTM

 Andrew Mortonがメンテナンスしている-mmツリーを見てみましょう。Linusによるマージを行う前の各種パッチのテスト段階として定着している-mmツリーですが、最近、リリース頻度が落ちているのが目立ってきました。それを解消するためか、2.6.24-rc2-mm1のアナウンスメールで「MMOTM」という仕組みを導入したと発表しました。

 MMOTMは「MM ofthe minute」(または「MM of the moment」)の略らしく、Andrew Mortonがいま現在作業中のものをアップロードするところだそうです。1日に数回のリリースを目標としているとのことです。なお、-mmツリーとしてリリースされたものについてはコンパイルまで確認しているけれど、MMOTMでは取りあえずパッチが当たるところまでしか確認していないということです。

 これを受けてLKMLでは、MMOTMに対してのパッチやバグ報告などがちらほらと見られるようになっています。

参考:
参考 MMOTM
http://userweb.kernel.org/~akpm/mmotm/

1/2

Index
Linux Kernel Watch 12月版
 おちゃめなLinus、「今回も遅れちゃったよ」
Page 1
 Linus、もう遅らせない宣言?
 x86マージの余波
 起動時コードを変更したら486でブートできなくなっちゃった
 コードを鍛えるMMOTM
  Page 2
 望ましい挙動とは? sched_yieldを巡る議論
 拡張されるCFS、グループ単位の設定も可能に
 -stableの進ちょく

連載 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 記事ランキング

本日 月間