2001年の1月に2.4.0がリリースされて以来,久しぶりの安定版リリースとなるカーネル2.6.0が,現在,最終的なテスト段階に入っている。本稿執筆時点では2.6.0-test5が公開されている。

 この新しいカーネルは,1年9カ月に及ぶ開発版カーネル(2001年11月に公開された2.5.0から2003年7月の2.5.75までの)の成果を踏まえた安定版カーネルである。エンタープライズ分野の大規模サーバーに対するニーズに対応できるよう,スケーラビリティの強化と洗練を中心に様々な改良が加えられている。

 本稿では,いよいよリリースが真近に迫った2.6.0カーネルについて,その概要などを解説する。

12歳になったLinux

 2.6.0カーネルの新機能を見る前に,しばしLinuxの歴史を振り返ってみよう。当時,ヘルシンキ大学の学生だったLinus Torvalds氏が自らのPC互換機上でUNIX環境を利用するために開発したLinuxの最初のバージョン(0.01)が完成したのが1991年の9月のことであった。すなわちこの9月でLinuxは満12歳になるわけだ。「ドッグイヤー」とも呼ばれるIT業界では,12歳というのは思春期や青年期を過ぎ,そろそろ壮年期にかかる時期であろうか。

図1●カーネル・サイズの変遷
 この12年間のカーネル・サイズの変遷をグラフ化したものが図1[拡大表示](拡大表示)である。グラフの横軸は0.01が完成した1991年9月17日からの経過日数,縦軸はカーネルのソースコードをtar+bzip2で圧縮した状態でのサイズになっている。グラフ上の各点がそれぞれのカーネルで,1.2系や2.4系といったカーネルの系列は線で結び,安定版カーネルは青,開発版カーネルは赤で示している。

 図中にも示したように,カーネル0.01はtar.bz2の状態でわずか63Kバイトであったが,2.6.0-test5では33Mバイトに達し,12年間で約530倍の増加となっている。また,ソースコードを展開すると,0.01では100ファイル512Kバイトだったが,2.6.0-test5では15853ファイル,211Mバイトとなっていた。圧縮した状態でも2.4.0カーネルから10Mバイト以上サイズが増加している。

スケーラビリティを強化した2.6.0カーネル

 さて,それでは2.6.0カーネルの概要を見てみよう。

 新しい安定版カーネルのための開発版カーネルである2.5系カーネルは2001年11月に2.4.16から分岐し,1年10カ月ほどの開発期間を経てきた。

 2.5系のカーネルでは新しいCPUへの移植や新しいハードウエアの対応なども行われてきたが,開発の中心はエンタープライズ分野における大規模なサーバーのニーズに対応するためのスケーラビリティの強化と洗練,すなわち,より多数のCPU,より大きなメモリー,より巨大な記憶装置を,より効率的に駆使するための機能強化であった。

 データ入出力を効率化するための「ブロックI/Oキュー」や,アルゴリズムを改良したプロセス・スケジューラ「O(1)スケジューラ」,より多数のデバイスを扱うためのデバイス変数kdev_t型の拡張など,カーネル2.6では大規模なシステムを効率よく扱うためのさまざまな改良が行われている。

 また,米SGIが開発したxfsファイル・システムもカーネルに取り込まれた。これにより,ジャーナリング機能をもったファイル・システムとして従来のext3,reiserfs,jfsと合わせて4種類のファイル・システムが利用できるようになった。ジャーナリング機能とは,ディスクへの更新をジャーナル(ログ)に記録することにより,障害が発生した場合に短時間で復旧できるようにする機能である。

 対応するCPUも64ビットCPU,組み込み用CPUそれぞれに対応機種が増え,64ビット版PowerPCやAMDのOpteron/Athlon64,日立のH8/300やNECV850EといったCPUにも対応するようになった。

 一方,図1のグラフでも見られるように,安定版カーネルといっても2.0や2.2とは異なり,2.4カーネルのサイズの増加速度は開発版カーネルとほぼ同等だ。このことは,2.5カーネルで開発された新機能のうち安定したものが積極的に2.4系へバックポートされたことを示している。この結果,2.6カーネルの新機能の中には後期の2.4カーネルでも利用可能になっているものがいくつもある。

いつ2.6カーネルへ移行すべきか

 2.6カーネルへはいつ移行すべだろうか。難しい問題だが,前述のように,このカーネルの中心的な改良点はエンタープライズ分野への適応を目指したスケーラビリティの向上である。8way以上のSMP(対称型マルチプロセッサ)や2Tバイト以上のディスクを必要とする大規模環境では,米Red Hat Softwareなどのディストリビュータからの正式な2.6カーネル・パッケージのリリースを待って移行が進むと思われる。

 また,サポートするCPUの種類が増えると共に,カーネルに組み込む機能選択の柔軟性が高まった(スワップ機能すらカーネルから取り除けるようになった)2.6カーネルは,各種リソースの制限が厳しい組み込み機器の分野においても採用しやすいカーネルになっていると言える。

 一方,そのような大規模環境や制限条件の厳しい環境を必要としない一般のデスクトップ・ユーザーの場合,事情はやや複雑なことになる。

 かっての安定版カーネルであった2.2カーネルから2.4カーネルへの移行の際には,2.2カーネルではUSB機器が安定して使えないなどの問題があったため,多少不安定でも2.4カーネルへ移行せざるを得なかった。しかし,最近の2.4カーネルでは,図1のグラフのサイズ増加にも示されているように,開発版カーネルで開発された新機能がどんどんバックポートされ,スケジューラやラン・キューといった根本的な部分以外では,2.6カーネルに比べてもそれほどそん色のない機能を誇っている。

 また,2.6カーネルのプリエンプティブ機能による反応性の向上はデスクトップ環境やマルチメディア再生時には有効と思われるが,最近の高速CPU環境下ではそれほど顕著な差には感じられないだろう。

 これらの点を考慮すると,2.6カーネルはハイエンドとローエンドの分野から採用が進むと予想される。一般的なデスクトップの分野では比較的長期間2.4カーネルとの併存が続くだろう。

 しかしながら,Linuxに代表されるオープンソース・ソフトウエアの世界ではユーザーが増えれば増えるほどバグの洗い出しが進み,システムの安定性が増すのは周知の事実である。その意味でも,腕に覚えのあるLinuxユーザーは本稿などを参考に積極的に2.6カーネルに挑戦し,Linuxの新たな進歩を手助けして欲しい。

大鳥 信弘 (Ootori Nobuhiro)


■最新カーネル・リリース


・カーネル2.6系列 2.6.0-test5(2003年9月8日)
・カーネル2.4系列(安定版) 2.4.22(2003年8月25日)

■主要なLinux関連セキュリティ・アップデート(2003年8月~9月19日)


メール・サーバーsendmail(バージョン8.12.10より前)にセキュリティ・ホール[2003年9月18日]

OpenSSH(バージョン3.7.1よりも前)にセキュリティ・ホール[2003年9月16日]

■著者紹介 大鳥 信弘 (おおとり のぶひろ)
株式会社テンアートニ 第二事業部シニアマネージャ。株式会社テンアートニは1997年設立のLinuxとJava専業とする企業。第二事業部はLinux/OSS関連のソフトウェア開発,SI(企画,コンサルティング,構築,運用等),サポート,教育,製品の販売等を手がける。