Linuxカーネルの新バージョン「2.6.0」が12月18日、公開された。Kernel.orgのサイトからダウンロードできる。従来バージョンの2.4から約3年ぶりのメジャー・バージョンアップになる。最大の特徴はスケーラビリティの向上。従来のカーネル2.4を搭載するLinuxは、8CPU以上を搭載する大型サーバーでは性能が出なかった。2.6は細かい改良を積み重ねることで、8CPU以上のサーバーでも性能を発揮できるようになった。

 デスクトップ・パソコン向けディストリビューションには、すでにカーネル2.6を搭載した製品がある。ターボリナックスが2003年10月に発売した「Turbolinux 10 Desktop」だ。2.6のテスト版を搭載している。2.6正式版にはアップデート・キットで対応する予定。サーバー向けディストリビューションでは、米レッドハットが2005年初め以降に出荷する見込みの「Red Hat Enterprise Linux」の次期製品が2.6ベースになると見られる。

 カーネル2.6ではスケーラビリティの向上のため、さまざまな点が改良されている。

 CPU関連では、ソフトウエアのプロセスを各CPUに割り振るプロセス・スケジューラとして「O(1)スケジューラ(オーダー・ワン・スケジューラ)」が採用された。従来のスケジューラでは、多くの実行可能なプロセスが存在する場合、それらをすべて走査して優先度の高いプロセスを検索するため、オーバーヘッドが生じていた。O(1)スケジューラでは、プロセスを優先度の高い順番に登録するようになったため、検索のオーバーヘッドがなくなった。また、「Non-Uniform Memory Architecture(NUMA)」にも標準で対応した。マルチプロセサの排他制御の機構も見直され、アクセス待ちがなるべく少なくなるよう改良された。

 ストレージなどのI/O(入出力)の制御にも改良が加わった。2.4では、I/O処理の際にデータを小さなバッファ単位でキャッシュしていた。このため、メモリーの管理単位であるページ単位のデータを、キャッシュのためにバッファ単位に分割し、データを取り出す際に再びページ単位に統合していた。2.6ではページ単位でデータをキャッシュするようにしたので、データの分割と再統合という無駄な処理が不要になった。

 エンタープライズ分野でのLinux普及促進を目的とするNPO(非営利団体)である米Open Source Development Labs(OSDL)は、1~8CPUのマルチ・プロセサ環境でカーネル2.4と2.6を比較したベンチマーク・テストの結果を公開している。これによると、2.4では4CPUまではCPU数に応じて性能が上がるものの、8CPUでは4CPUより性能が下がった。一方、2.6では8CPUまでCPU数に応じて性能が向上していた。

 スケーラビリティ以外の改良点もある。デスクトップ・パソコン向けの機能としては、ACPIの標準採用やUSB 2.0への正式対応がある。IPv6のプロトコル・スタックも標準で搭載した。

大森 敏行=日経コンピュータ