カーネル2.4.0導入活用術

1月4日に、Linuxの次期カーネルといわれてきたLinux Kernel release 2.4.0がリリースされました。今回は、Linuxでのカーネルとは何なのか? そして今回リリースされた新しいカーネルの新機能や変更点をご紹介し、最後に実際のインストールにチャレンジしたいと思います。

主な内容
Linux kernelとは
Linux kernel 2.4の新機能
 大規模リソースが利用可能に
 LVM(論理ボリュームマネージャ)
 rawデバイス
 kHTTPd
kernel 2.4.0導入実践記

 まずはダウンロードから
 ソースのインストール
 カーネルの設定
 カーネルのコンパイル
 Rio500を使ってみる

濱野 賢一朗(Project BLUE)
hamano@todo.ne.jp
2001/1/13

Linux kernelとは

 Linuxというと、Red Hat LinuxとかTurboLinuxといったものを頭に浮かべる方が多いと思います。これはディストリビューションと呼ばれており、利用者の利便性を考えていろいろなアプリケーションなどをパッケージ化したものです。現に、サーバとして使うのに便利なものや、日本語機能を使うのに便利なものなど、それぞれ利用の仕方にあわせてパッケージ化されています。

 しかし、本来Linuxといわれているものは、この中のカーネルと呼ばれるもののことだけを指します。すなわち、ディストリビューションの中に含まれているライブラリやアプリケーションなどはLinuxとは呼ばないものなのです。実際、Linuxを作ったといわれているLinus Torvalds氏はこのカーネルの開発を始めた方で、周辺のアプリケーションなどのパッケージ化をした方ではありません。

 ただ、最近では日常的に利用するライブラリやアプリケーションなどを1つにまとめたディストリビューションをLinuxと呼ぶようになってきているのです。

 ところで、このカーネルと呼ばれているものですが、一体どういうものなのでしょうか?

 カーネルとは、アプリケーションからハードウェアを容易に操作したり、また、ハードウェアの資源管理やアプリケーションのプロセスを管理・制御していたりするものです。純粋に利用している立場だと感じることがほとんどできないのですが、なければ何も始まらないという空気のような存在なのです。

 カーネルには通常、バージョン番号が割り振られていて、改良や新機能などで変更になるたびに新しい番号が割り当てられるようになります。今回はこのバージョンの2つ目の数字が2から4になり、2.4.0というバージョンになっています(2つ目の数字が3などの奇数のカーネルは開発用のもので、通常利用するためのものではないとされています)。

Linux kernel 2.4の新機能

 アットマーク・アイティのニュースにもあるとおり、今回の2.4.0のリリースは大幅に遅れたといえます。その理由の1つは、さまざまな機能を数多く追加することに非常に時間がかかってしまったからです。

 ここでは、その新機能や変更点などをいくつか紹介しましょう。

大規模リソースが利用可能に

 まず、メモリが64GBまで利用できるようになりました(x86系のCPUで利用する場合)。また、従来は2GBを越えるファイルを扱ったり、同時に4092以上のプロセスを実行したり、65536以上のユーザーやグループを登録することができなかったのですが、このハードルも越えて、どれも実質的には無制限にできるようになっているといえます。

LVM(論理ボリュームマネージャ)

 LVMは、商用UNIXでは以前から実装されていた機能です。これは、複数ディスクにまたがったファイルシステムなどを1つのパーティションとして利用できるようにしたり、データを残したままの状態でパーティションのサイズ変更ができたりするというものです。この機能を使うことで、従来に比べてファイルシステムなどの管理効率がよくなるといえます。

rawデバイス

 通常のファイルの書き込みや読み込みは、カーネル内にあるバッファキャッシュと呼ばれる機能を介して実現しています。このバッファキャッシュは、先読み込みや遅延書き込みなどを行うことで、入出力のパフォーマンスを向上させているのです。しかし、高度なキャッシュ機能を自ら持っているデータベース管理システムなどでは、このバッファキャッシュによって逆にパフォーマンスや信頼性を下げてしまうことがあるのです。そこで、バッファキャッシュを介さずにデバイスを利用できるようにしたものがrawデバイスと呼ばれるものです。rawデバイスを使うことで、入出力の高速化や安全性の向上が望めるとされています。

kHTTPd

 kHTTPdは、カーネルの中に搭載された簡単なWebサーバです。Apacheなどを利用してWebサーバを立ち上げた場合、ApacheがHTMLなどのファイルを読み込んだりする際にカーネルとの通信が必要になるため、パフォーマンス的に無駄なところが生じます。そこで、カーネル内に直接Webサーバ機能を実装しようというアイデアで作られたものです。

 ただ、現実的には、Webサーバのボトルネックは提供する際に利用するネットワーク(インターネット)回線の帯域であることがほとんどですから、どの程度現場で利用されるのかは疑問も残ります。

 このほかにも、NFSバージョン3への対応やSMP利用時の効率向上、USB機器への対応(一部は2.2.18から)などさまざまな機能追加が行われています。詳しくは、カーネルに添付されているファイル(Changesなど)を参照してください。

 さて、次はいよいよkernel 2.4.0のインストールです!

 
1/2

Linux Square全記事インデックス


 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カーネルの開発体制などについて伺った

MONOist組み込み開発フォーラムの中から、Linux関連記事を紹介します


Linux & OSS フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Linux & OSS 記事ランキング

本日 月間