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)によってデフォルト値が決定されることになります。
|
これにより、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 |
|
||||
|
連載 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カーネルの開発体制などについて伺った |
|
|
- 【 pidof 】コマンド――コマンド名からプロセスIDを探す (2017/7/27)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、コマンド名からプロセスIDを探す「pidof」コマンドです。 - Linuxの「ジョブコントロール」をマスターしよう (2017/7/21)
今回は、コマンドライン環境でのジョブコントロールを試してみましょう。X環境を持たないサーバ管理やリモート接続時に役立つ操作です - 【 pidstat 】コマンド――プロセスのリソース使用量を表示する (2017/7/21)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、プロセスごとのCPUの使用率やI/Oデバイスの使用状況を表示する「pidstat」コマンドです。 - 【 iostat 】コマンド――I/Oデバイスの使用状況を表示する (2017/7/20)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、I/Oデバイスの使用状況を表示する「iostat」コマンドです。
|
|