11月版 「ext4」が見えてきた! ついに利用方法公開
上川純一
日本ヒューレット・パッカード株式会社
コンサルティング・インテグレーション統括本部
2006/12/1
linux-kernelメーリングリスト(以下LKML)かいわいで起きるイベントを毎月お伝えする、Linux Kernel Watch。2006年10月はどのようなことが起きたのか、見てみましょう。
大混乱? 2.6.19-rcリリース
10月5日、Linus Torvaldsは「2.6.19のマージウィンドウを閉じた」という宣言とともに新しい機能の追加をいったんやめ、2.6.19-rc1を発表しました。そして、これを受けてAdrian Bunkはその時点で残っていた問題点の一覧を投稿しました。その後-rc2、-rc3、-rc4と、10月中に計4回もリリースされました。
最初にリリースされた-rc1の変更点の中で、ユーザーに一番影響を与える内容はおそらくシリアルATA(SATA)ディスクのドライバが「drivers/scsi」から「drivers/ata」に変更となったことでしょう。その影響で、設定言語であるKconfig上のSATAディスクのドライバ名称が変更になり、新しいバージョンにアップデートしてmake oldconfigして設定を標準に戻してもSATAディスクのドライバが選択されません。そのため、カーネルをコンパイルして新カーネルでリブートしたら、「SATAのディスクが見えない」というカーネルパニックメッセージが表示された方も多いのではないでしょうか?
また、-rc2でも大きな変更がありました。これまで割り込み要求(IRQ)ハンドラで関数呼び出しのパラメータとして使われていた「regs」をCPUごとのグローバルな変数として定義するように変更したのです。これは、David Howellsからの提案でマージされたパッチで、IRQ割り込みにかかわるドライバ、つまり実質的にほぼすべてのドライバに変更が入る大規模な修正となりました。「IRQ:Maintain regs pointer globally rather than passing to IRQ handlers」のコミットで変更されたファイル数は1079もありました。一見すると、grepなどを活用すれば機械的に作業できそうな変更に思えます。しかし、実際にやってみるとLinusの管理しているカーネルソースツリー以外にも、外部でメンテナンスされているドライバが含まれるため影響範囲が広い変更となっています。
generic_handle_irq(cascade_irq,regs); |
regsを関数呼び出しのパラメータとして使っていた |
generic_handle_irq(cascade_irq); |
regsを関数呼び出しのパラメータとして使わなくなった |
カーネルイメージがリロケーション可能に
Vivek Goyalは「Relocatable kernel support」という一連のパッチを投稿しました。これは、Eric Biedermanが9月に投稿したものを改良したパッチで、CONFIG_RELOCATABLEが設定されている場合にカーネルのロードアドレスをロードの際に決定するというものです。
現状、kdumpを利用してダンプ処理用のカーネルをkexecでメモリ上にロードすると、ダンプ対象のメモリ空間を破壊しないように開始アドレスをずらし、利用していないアドレスにカーネルをロードします。カーネルの開始アドレスは固定であるため、開始アドレスを変更するには別のカーネルイメージを用意する必要があります。
今回のパッチを適用すればカーネルイメージがリロケーション可能になり、別のカーネルイメージを用意する必要がなくなります。つまり、kdump用のカーネルを別途作成せずに、同じカーネルを別のアドレスにロードできるのです。kdumpは今後普及が見込まれているので、このパッチが標準としてマージされれば複数のカーネルをメンテナンスする必要がなくなり、とても便利になります。
参考: | |
Eric Biedermanのreloc gitツリー git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/linux-2.6-reloc.git#reloc-v2.6.18-rc3 |
Linus「あまり頻繁にマージしないで」
Pierre Ossmanは、ソースコード管理ツールである「git」を使いこなしている人たちに対して「どのような使い方がよいのか教えてほしい」という質問を「Git training wheels for the pimple faced maintainer」というスレッドに投稿しました。このスレッドでは、一連の小技や最近のgitのワークフローなどが投稿されているので、その一部を紹介します。
Linusは「git上でlinusブランチを作ってLinusのソースツリーをトラッキングして、自分のパッチ作業用にfor-linusブランチを作成したらどうか」と回答しました。また、「Linusツリーにマージしたいときが来たら、for-linusブランチのアドレスを連絡してほしい」と付け加えました。さらに注意事項として「gitの管理する履歴情報が複雑化するため、コンフリクト(機能拡張などを行った際に複数のソフトウェアモジュールで干渉すること)が発生する場合以外は、あまり頻繁にマージはしないでほしい」「別の手段として、rebaseという方法もある」とも述べています。
一方、Andrew Mortonは-mmツリーについて「マージしてほしいツリーのURLとブランチ名を連絡してくれたら、マージするよ」と述べました。また、彼はマージ作業について「通常は1日1回作業をしている。現状、-mmツリーは70人くらいにコミット権限があるツリーなんだ」と説明しました。毎日小まめに手動で全ツリーをマージしているAndrew Mortonには脱帽です。
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」コマンドです。
|
|