Unix のカーネルは,プログラムとハードウェアの仲介者として働きます. まず,すべての動作中のプログラム(プロセス)のメモリー管理(とそのための 調整)を行いますし,またそれらのプロセスが公平に(お好みとあらば不公平に) プロセッサのサイクルを共有できるようにします.さらに,プログラムがハード ウェアと対話するための素晴らしい,またかなり汎用性のあるインターフェース を提供します.
カーネルにはこれ以外にも機能がありますが,以上の基本的な機能だけは知ってお くべきでしょう.
新しいカーネルを使うと,たいていはより多くのハードウェアが使えるように なります(すなわち,より多くのデバイスドライバがついてくる)し,プロセス管理 もよくなりますし,古いバージョンより速く動作しますし,古いバージョンよ り安定しているかもしれませんし,また古いバージョンのくだらないバグが修 正されています.ほとんどの人は,新しいデバイスドライバが欲しかったり, バグを修正したいのでカーネルをアップグレードするのです.
Hardware-HOWTO を見てください.その代わりに,Linux のソースに入ってい
るファイル `config.in
'を見てもいいし,`make config
'
するときにもわかります.これで標準のカーネル配付でサポートされるすべて
のハードウェアを知ることができますが,これが Linux がサポートするハー
ドウェアのすべてというわけではありません.多くの共通のデバイスドライバ
(PCMCIA ドライバや一部のテープドライバなど)は標準カーネルとは別々に管
理・配付されるローダブルモジュールです.
Linus は Linux のソースに含まれている README
ファイルに書かれ
ているバージョンの gcc を推奨しています.もしこのバージョンを持ってい
なかったら,推奨されているバージョンの gcc のドキュメントに,libc をアッ
プグレードする必要があるかどうかが書かれています.アップグレード作業は
そんなに難しくはありませんが,説明にしたがうことが大切です.
ローダブルモジュールとは,カーネルには直接リンクされない(カーネル本体には含 まれない)カーネルコードのかけらです.個別にコンパイルし,ほとんどいつでも動 作中のカーネルに組み込んだり取り外したりすることができます.柔軟性ゆえ,特定 のカーネル機能を実現するのに,好んで用いられています.よく使われている デバイスドライバの多く,例えば PCMCIA ドライバや QIC-80/40 テープドラ イバは,ローダブルモジュールです.
あなたのシステム設定しだいです.まず,圧縮した Linuxの ソースはバージョ ン 2.2.9 で 14 メガバイト弱というところです.ほとんどのサイトでは展開 した状態のファイルも置いています. 展開してから適切な設定で構築を行うと,さらに 67 MB が必要になります.
新型のマシンでコンパイルすれば,古いマシンよりも劇的に早く終わります. AMD K6-2/300 に高速なディスクを付ければ,2.2.x のカーネルは約 4 分でコ ンパイルできます.古い Pentium, 486, 386 でカーネルをコンパイルしよう と思っていたら,時間単位,1 日単位で待つ覚悟をしてください….
これが嫌であり,かつ近くにたまたま高速なマシンがあるならば,高速なマシ ンでコンパイルして(適切なパラメータを指定していることや,ユーティリティ が新しいこと等を想定しています),そのカーネルイメージを遅いマシンに転 送するという手もあります.