aka LWN JAPAN
[ C H A N G E L O G ]
[Tux]

ChangeLog
カーネル
[1999/10/28〜11/03]
Section Editor: Jonathan Corbet
ChangeLog
[ Kernel ]  

最新開発版カーネル 2.3.25

最新の開発版カーネルのリリースは 2.3.25 です。

※ カーネルリリースの最新情報はこちら(日本語)をご確認下さい。

いつもの通り、このリリースに伴うアナウンスはありません。 パッチを見てみた所では、 かなりの数のアーキテクチャ依存部分とドライバの変更が入っていました。 また、 カーネルのどこか別の場所 --- 特に netfilter や IPSEC のような外部のアドオンパッチついて --- で、 いくつかの除去しきれない問題を起こしていた procfs のコードの再構成もありました。 これらの問題は、迅速に解消されているところです。
[ Kernel ]  

最新安定版カーネル 2.2.13

現在の安定版カーネルリリースは 2.2.13 です。

※ カーネルリリースの最新情報はこちら(日本語)をご確認下さい。

Alan Cox 氏が 2.2.14 pre パッチをリリースしています。最新のものは2.2.14pre3 (英語) です。 このパッチには、 (とうとう) 最新の Tulip イーサネットドライバや多くの修正など、 すごくたくさんの変更が含まれています。 このパッチ内には H.J. Lu 氏の knfsd 0.4.7 が残っており、これは (一つか二つの修正を加えたうえで) 2.2.14 に入る版のようです。 その後の knfsd パッチは、まだ安定版カーネルには「開発中の品質」過ぎるようです。
[ Kernel ]  

IA-32 で 64GB メモリをサポート

IA-32 での 64G バイトの物理メモリのサポートがいまや現実のものとなりました。

※ IA-32 - Intel 社の 32 ビット CPU のアーキテクチャです。386,486,Pentium,PentiumII/III,Celeron 等に加えて、AMD 社や Cyrix 社の Intel 互換 CPU もこれに含まれます。
わずか数ヵ月昔には、その限界は 1G バイトだったことを覚えていますか? あれから事態は進展しました。

64G バイトのサポートは、 Ingo Molnar 氏によって書かれ、 (現在フィーチャーフリーズ中にもかかわらず) 2.3.23 に入りました。 これは、 Pentium Pro (とそれ以降の) CPU でサポートされた特別なアドレッシングモードを使って、 ページテーブルエントリを 64 ビットに拡張します。 64 ビットあれば、信じられないくらいの量のメモリをサポートできます。 64G バイトという制限があるのは、 それが現状のプロセッサが扱える量の上限だからなのです。

個々のプロセスがアクセスできる仮想メモリの量は、4G バイトのままです。 これは 32 ビットプロセッサ上では変わることはなさそうです。

それでも挑戦の余地は、まだあります。 何よりもまず、 ページテーブルの変更によって、 まだ解決できない問題がいくつか残されています。 これらは、(SAP の Christoph Roland 氏など)数人の方々が修正中です。 また、巨大なメモリを効果的につかうには、 カーネルのページキャッシュを、 高位のメモリによる恩恵を受けられるようにする必要があります。 これについては、Ingo が現在もう動いていると主張しています。 さらに、64 ビットの DMA 操作をデバイスドライバに行わせることについても、 努力がいくらか必要となるでしょう。

これ (※ Ingo によるページテーブルの 64 ビットへの拡張)は、極めて重大な仕事です。 Linux 上のかなりばつの悪い制限が、完全に取り除かれたのですから。 Ingo 、その他のこの仕事を成し遂げた方々を祝福しましょう。 (より詳しい情報は、64G バイト化の作業についての Ingo の解説 (英語) をご覧下さい。上の記事はほとんどこちらを情報源にしています。)

[ Kernel ]  

いんちきな Bogomips?

Linux システムがブートするところを観察したことがある方ならどなたでも、 "bogomips" の計算結果がプロセスの開始前に行われるのを ご覧になったことがあるでしょう。 bogomips は、プロセッサのスピードを単純化したものです。 bogomips の値は、短いビジーウェイトのループを計算するのに使用されます。

※ ビジーウェイト - 何らかのタイマを使用するのではなく、プロセッサがプログラムのループを何回も繰り返し回って時間待ちを行うことです。 プログラムがループを実行する時間は、当然、プロセッサのスピードに依存するので、 速いプロセッサではループ回数を多くし、遅いプロセッサでは少くする必要があります。 この調整に使用されるのが bogomips です。つまり bogomips とは「プロセッサが無駄なループを回る際のスピード」を表しており、「何か有益な仕事をさせる時のスピード」との間には大きな違いがあります。これが bogo(いんちき)-mips の名前が意味するところです。

一部の方々は、bogomips の計算には基本的な欠陥、 つまり、プロセッサのスピードが変化することを仮定していない、 と指摘しています。 実際、スピードが変化するプロセッサは存在し、より一般的になりつつあります。 そのようなプロセッサの最も分かりやすい実例はおそらく、 ノートパソコンのものでしょう。 電池が少くなると、 プロセッサをスローダウンして電力消費を抑えることができるようになっています。

※ 一般に、半導体は動作周波数が高くなる程、消費電力が増える傾向があります ので、動作周波数を低く(スローダウン)することによって、 消費電力を押えることができます。
また、温度が高くなり過ぎるとプロセッサを遅くするシステムもあります。

※ それによって電力消費を少くし、結果として発熱を抑えます。

プロセッサのスピードが変わる時には、 カーネルが使用する bogomips の値も変わるべきです。 さもなければ、待ち時間が長すぎたり短すぎたりしてしまいます。 前者の場合、システムは単にスローダウンするだけですが、 後者の場合、その影響はより深刻です。 あいにく、 動作するために適切な待ち時間を必要とするハードウェアが、 かなりの数、世に出ているからです。 もしシステムが必要なだけ待ち合わせなかったら、 ハードウェアが動作不良を起こしたり、 システムがクラッシュしたり、 データが壊れたり、 あなたの全財産を LinuxOne の株(日本語) に投資してしまう ;-) かもしれません。 これらは望ましくない結果です。

ではどうすればいいのでしょうか? 良い質問ですね、、、^^;   bogomips を動的に再計算するのは高く付き、時間を食う操作ですし、 すべてのシステムがクロックスピードが変化した際に律義に OS に通知してくれるとは限りません。 ハードウェアによるリアルタイムクロックは、どんなクロックスピードにおいても正確な時間の基準となるものの一つですが、短い時間待ちに必要とされる精度を欠いています。 現在のところ、出番を待っているような、良い解決策はないようです。

[ Kernel ]  

今週のその他のパッチとアップデート

今週リリースされたその他のパッチとアップデートは以下の通りです:
  • ストリーミング SIMD 命令のデバッグに対する最初のサポート (英語) が Jim Blandy 氏からアナウンスされました。

    ※ ストリーミング SIMD 命令とは Intel 社の Pentium III から採用された、マルチメディア/3D グラフィック向けの命令です。
    この仕事は Intel の支援の元、Cygnus 社によって行われました。

  • PPSkit 0.8.1 (ナノ秒単位での時間管理) (英語)が Ulrich Windl 氏からリリースされました。

  • ESS Maestro チップを使ったサウンドカードのドライバのVersion 0.10 (英語) が Zach Brown 氏よりリリースされました。

    ※ このバージョンのドライバは Alan Cox 氏の 2.2.14pre3 に収録されました。

  • Creative 社は同社の SB Live 用の GPL のドライバをリリースしました。詳細は今週のビジネスのページ(日本語)をご覧下さい。

  • Richard Gooch 氏の devfs パッチはバージョン 133 (英語) になりました。 これは devfsd 1.2.8 (英語) と 2.2 カーネル用の devfs v99.6 (英語) を伴っています。

  • Borislav Deianov 氏は SMP システム用の hierarchical fair (※階層化された公平な) スケジューラの "プレα版" の実装をアナウンスしました (英語)。

    ※ 簡単に言うと、このスケジューラはシステム中のプロセスを階層化されたグループに分けて、そのグループ毎に設定された重み付けにしたがって「公平」に CPU 時間を割り付けます。このスケジューラは QoS (Quolity of Service) 機能を強化した QLinux プロジェクトの一部として開発されました。

  • Version 1.6 の SMP HOWTO (英語) が David Mentre 氏からリリースされました。

  • Netfilter 0.1.11 (新しいファイアウォールとマスカレードのシステム) (英語) が Paul Rusty Russell 氏他の方からリリースされました。

  • USB HOWTO の Version 0.8 (英語) が Brad Hards 氏からリリースされました。
[ Kernel ]

関連 URL

LWN
カーネル(原文)
Kernelnotes
他のカーネル関連リソース(英語)
Kernel traffic
他のカーネル関連リソース(英語)
Kernel Newsflash
他のカーネル関連リソース(英語)
※11/24 リンク先の移動に追従しました。(Thanks to 佐野さん)


Copyright (C) 1999 Metachannel Systems Corp. all rights reserved. ChangeLog
Copyright (C) 1999 Eklektix, Inc. all rights reserved. Linux Weekly News
Linux (R) is a registered trademark of Linus Torvalds.