![](/flinux/rensai/watch2008/title.gif)
10月版 2.6.27はLTSに、命名規則の変更案も飛び出した
小崎資広
2008/11/4
2.6.27は2.6.16に代わるLTSに
Adrian Bunkは2.6.27のリリースを受けて、「2.6.16もちょっと古くなってきたし、2.6.27を2.6.16の代わりの長期サポートカーネル(Long Time Supported Kernel、LTS)としてメンテしていくよ」と宣言しました。
2.6.27はほかのバージョンと同じく、Greg K-Hが数カ月間-stableカーネルをリリースした後、Adrianにバトンタッチ。クリティカルなバグフィックスと新しい機器に対応する新ドライバのみがマージされるツリーとなります。
この提案は、コミュニティから賞賛をもって迎えられました。
最新のマシン環境でも動作する古いカーネルが1つあると、リグレッションの特定などに非常に重宝するのですが、考えてみると2.6.16のリリースは2006年3月、もう2年以上前のことです。そろそろバトンタッチには適切な時期なのかもしれません。
Ingo、またまたお説教を食らうの巻
O(1)やCFSスケジューラの開発で名高いIngo Molnarですが、LKMLでの評判は若干芳しくありません。というのも彼は、マージするときの基準がほかのメンテナに比べて甘過ぎるため、リグレッション率が非常に高いからです(取れないバグに悩みに悩んだ揚げ句、他人のリグレッションによるものだったときの脱力感は、筆舌に尽くし難いものがあります)。
Ingoは2.6.26のときも何回か連続してヘマをやらかして、Linusから「お前からはもう無条件pullはしない、よさそうなやつだけ選んでマージすることにするわ」と引導まがいの通告を食らっていたのですが、今回もやらかしてしまったようです。
彼は10月10日、11日の2日間の間に、何と14個ものgit repositoryのpullをリクエストします(普通は1サブシステム1リポジトリなので、通常のメンテナは1つです)。この行為に対して、Linusから激しく物言いが付きました。
まず、x86のPAT関連のリポジトリでは、コミットの約半分をrevert commit(バグなどの判明により、あるパッチの変更を元に戻すcommit)が占めていることについて、「おいおい、これはいくら何でもダメ過ぎだろう。そもそも、revertの原因が全然書いてないから、この失敗から何も学ぶことができないじゃないか。別の言い方をしようか? 何で僕は、君のツリーが完全に腐ってるって考えちゃいけないんだい?」と指摘。さらにapic関連のリポジトリは、そもそもコンパイルすら通らないことが分かり、空気はどんどん険悪化。fastboot関係も、Linusレビューでいくつかのパッチが「このパッチ、クソ」宣言をされてしまい、マージ中断……彼のツリーがこのままマージされるか、予断を許さない状況です。
サブシステムに進化するlinux-staging
ここ数カ月、Greg K-Hの管理するgit repositoryとして運用されてきた-stagingですが、「品質が低いドライバも、さっさとマージしてしまった方が早く品質が安定するだろう」ということで、サブシステムとして衣替えすることになりました。
今後はdrivers/stagingという特別なディレクトリに、Gregが管理する(品質的に)未完成なドライバが置かれることになります。
また、そういった未完成ドライバが原因でkerneloopsやLKMLでバグ修正プロセスが混乱してはイケナイという判断から、kernel taintedフラグに、新しくTAINT_CRAPフラグ(なんちゅー名前だ)が追加されました。これにより、drivers/staging以下のドライバをロードした場合は、自動的にフラグがONになるように、カーネル・コアコードが改造されました。
バージョン名規則が変わる? 「自転車置き場議論の始まりだ!」
Greg K-Hは、「Summitで議論しようと思ってたんだけど、できなかったんだよ」と前置きして、カーネルのバージョン名規則に対する自身の変更プランをポストしました。今後は、
2009.1.0 最初のリリース |
のように、
YEAR.NUMBER.MINOR_RELEASE |
のように変更したいとのことです。
「いまのバージョンスキームだと、-stableチームがすげー大変なんだよ。それにこの方が、ユーザーが自分の使っているカーネルがどのくらい古いのかすぐに分かるし」とGregは説明し、「さあ! 自転車置き場の議論の始まりだ!」とメールを締めました。
当然のごとく、原稿執筆時点では議論はまったく収束することなく、堂々巡りを繰り返しています。おいおい。
-stableの進ちょく
■2.6.25.y:
- 2.6.25.18(10月9日):Greg K-H
・MMC:drivers/mmc/card/block.cのmmc_block_open()におけるrefcountリークを修正
・udp:IPsecパケットの受信処理におけるロックの問題を修正
・rtc:デッドロックを修正
・ipv6:特定の負荷を掛けたときにip6_dst_lookup_tail()でパニックしてしまう問題を修正
・clockevents:周期ブロードキャストハンドラでの無限ループを防ぐ
・clockevents:init/shutdownが複数回実行されてしまうことを防ぐ
・clockevents:無限ループにより固まってしまうことを防ぐ
・netlink:アトリビュート・イタレーションにおけるオーバーランを修正
・sctp:peer機能が使用不可能なときはONにできないようにした
・sctp:相手がAUTHを非サポートのときのINIT-ACKにおいてパニックしてしまう問題を修正
・x86:VMIにおいてLDTの取り扱いが間違っていた問題を修正
・ACPI:ECがポーリングモードのときに間違ったECタイムアウトが発生してしまう問題を修正
ほか、29パッチ
- 2.6.25.19(10月23日):Greg K-H
・POSIX SCHED_SPORADICの実装に問題があり、負荷に弱くなってしまうケースがあったのを修正
・x86:CPU-hotplugとSMPが有効、かつ実ハードのCPUが1つのときの自己書き換えコードの高速化
・drm/i915:Intel G33以降のDRM処理において、root以外のユーザーでもユーザーアドレスに対してioremapすることを許してしまっていた脆弱(ぜいじゃく)性を修正(CVE-2008-3831)
・drivers/video/tvaudio.cにおいて、関数ポインタがNULLかどうかをチェックせずに呼び出しを行っていたセキュリティ問題を修正
・splice()にO_APPENDが使用できてしまっていた問題を修正
ほか、16件
■2.6.26.y:
- 2.6.26.6(10月9日):?
・MMC:drivers/mmc/card/block.cのmmc_block_open()におけるrefcountリークを修正
・sched:特定の条件でutime、stimeが負の値になってしまう問題を修正
・mm owner:swapoffとexitのレースを修正(mm-ownerはmem-cgroupで使っているmmからtaskを逆引きする仕組み)
・sg:sg_copy_buffer内では割り込みを禁止するようにした
・ipsec:xfrm_state_check_space()においてpskb_expand_head()に誤った引数を与えることによりデータを壊してしまう問題を修正
・udp:IPsecパケットの受信処理におけるロックの問題を修正
・rtc:デッドロックを修正
・block:submit_bh()のsync write処理において、うっかりバリアフラグを落としてしまっていたのを修正
・x86:fdiv命令のCPUバグ検知コードがメモリを壊してしまう問題を修正
・ipv6:特定の負荷を掛けたときにip6_dst_lookup_tail()でパニックしてしまう問題を修正
・mm:ダーティーページのトラッキング処理におけるレースを修正
・x86:SMP時のalternativeマクロによる自己コード書き換え処理においてロックをspinからmutexに変更
・x86_64:FPUのエラー状態がリークしてしまう問題を修正
・clockevents:周期ブロードキャストハンドラでの無限ループを防ぐ
・clockevents:init/shutdownが複数回実行されてしまうことを防ぐ
・clockevents:無限ループにより固まってしまうことを防ぐ
・netlink:アトリビュート・イタレーションにおけるオーバーランを修正
・sctp:peer機能が使用不可能なときはONにできないようにした
・sctp:相手がAUTHを非サポートのときのINIT-ACKにおいてパニックしてしまう問題を修正
・x86:VMIにおいてLDTの取り扱いが間違っていた問題を修正
・ACPI:ECがポーリングモードのときに間違ったECタイムアウトが発生してしまう問題を修正
ほか、73パッチ
- 2.6.26.7(10月23日):Greg K-H
・drivers/video/tvaudio.cにおいて関数ポインタがNULLかどうかをチェックせずに呼び出していたセキュリティ問題を修正
・POSIX SCHED_SPORADICの実装に問題があり、負荷に弱くなってしまうケースがあったのを修正
・splice()にO_APPENDが使用できてしまっていた問題を修正
・drm/i915:Intel G33以降のDRM処理において、root以外のユーザーでもユーザーアドレスに対してioremapすることを許してしまっていた脆弱性を修正(CVE-2008-3831)
・x86:CPU-hotplugとSMPが有効、かつ実ハードのCPUが1つのときの自己書き換えコードの高速化
ほか、28パッチ
■2.6.27.y:
- 2.6.27.1(10月15日):Greg K-H
・CONFIG_DYNAMIC_FTRACE(ftraceの非トレース関数のmcount呼び出しをNOPで書き換えて高速化するオプション)が腐っており、モジュールアンロードを考慮していなかったので、enableにすることをできなくした
以上
- 2.6.27.2(10月18日):Greg K-H
・XFS:I/Oバリアー失敗の検知論理が間違っており、ディレクトリが壊れてしまう問題を修正
・POSIX SCHED_SPORADICの実装に問題があり、負荷に弱くなってしまうケースがあったのを修正
・x86:CPU-hotplugとSMPが有効、かつ実ハードのCPUが1つのときの自己書き換えコードの高速化
ほか、14パッチ
- 2.6.27.3(10月2?日):Greg K-H
・drivers/video/tvaudio.cにおいて関数ポインタがNULLかどうかをチェックせずに呼び出していたセキュリティ問題を修正
・XFS:認識できないオプション付きでmountされたとき、不当にread onlyチェックがスキップされ、R/Wで動作してしまう問題を修正
・drm/i915:Intel G33以降のDRM処理において、root以外のユーザーでもユーザーアドレスに対してioremapすることを許してしまっていた脆弱性を修正(CVE-2008-3831)
ほか、19パッチ
(以上、敬称略)
編集部注:筆者都合により、来月11月号はお休みとさせていただきます。ご了承ください。 |
![]() |
2/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」コマンドです。
![]() |
|
|
|
![]() |