自分のシステムに最適なカーネルを構築するLinux Hacks(1/3 ページ)

ユーザー自身のハードウェアや必要性に合わせてカーネルのコンパイルを行なえば、小手先の高速化をはるかに超えた高速化が図れる。ここでは、昔ほどハードルが高いものではなくなったカーネルのコンパイルについて解説しよう。

» 2007年08月21日 06時00分 公開
[Federico-Kereki,Open Tech Press]
SourceForge.JP Magazine

 ディスクの性能を最適化する方法についての記事を書いた後、設定を調整することはシステムの高速化のためにできることの一部にすぎないというコメントを読者からもらった。つまり、ユーザー自身のハードウェアや必要性に最も合うようにカーネルのコンパイルを行なえば、さらにシステムを高速化できるという指摘だ。カーネルのコンパイルは昔ほどハードルの高いことではなくなっている。最近ではカーネルのコンパイルの手順は簡素化されていて、メニュー形式で提示される選択肢の中から選んだ後、幾つかのコマンドを入力するだけでよくなっている。

 ほとんどのディストリビューションでは、誰にでも使えるように最も汎用的なオプションを用いてコンパイルした、いわゆる「フリーサイズ」的なカーネルが提供されている。しかしIntel 386ファミリーのプロセッサではなくAthlon XP CPUを使用している場合や、大容量のRAMや特定のグラフィックスカードを使用しているといった場合には、自分のハードウェア上で最大限の性能を得るように調整してカーネルをコンパイルすることができる。さらにその過程で、不必要なオプションを除外することでメモリを幾らか解放したり、ブート時間を短縮したり、システムの反応を良くしたりすることができる可能性も非常に高い。

予行演習

 カーネルのコンパイルはそれほど難しくはないとはいえ、マシンが機能しなくなって紙を押えるためにしか利用できなくなってしまう可能性は紛れもなく存在する(これはわたしの経験上、確かだと断言できる)ので用心する必要がある。したがってカーネルのバックアップを用意するようにしよう。そうしておけば、何か重大なミスをしてしまった場合にも、コンピュータを再起動して再びやり直すことができる。今回はopenSUSEを使用して、2種類の異なるバージョンのカーネルをインストールした。openSUSEでは、YAST管理ツールやSmartパッケージマネージャを使用して、複数のカーネルを簡単にインストールできる。今回は2.6.18.8-0.3と2.6.18.8-0.5という2つのバージョンのカーネルを使用したので、ブート画面は次のようになった。

openSUSE 10.2 - 2.6.18.8-0.5 Failsafe -- openSUSE 10.2 - 2.6.18.8-0.5 openSUSE 10.2 - 2.6.18.8-0.3 Failsafe -- openSUSE 10.2 - 2.6.18.8-0.3


 わたしのマシンは、デフォルトでは前記の3番目の選択肢でブートするようになっている。従って3番目の選択肢はそのままにしておき(いざというときに使用するため)、最初の選択肢を使って実験することにした。新しく構築したカーネルに満足できたときには、標準的なツール(openSUSEの場合であればYASTなど)を使用して、新しいカーネルをデフォルトにすることができる。冒険好きな人は、GRUBやLILOの設定ファイルを手動で編集してもよいだろう。

 なお、kernel-source(コンパイルするソースコード)、gcc(コンパイラ)、bzip2(内部的に必要)、ncurses(設定メニュー用)といったような幾つかのパッケージもインストールしておく必要がある。

 カーネルを最適化するためには、手持ちのマシンのハードウェアについて知っておく必要がある。以下のようなコマンドを使用すれば、マシンが使用しているプロセッサの種類やRAMなどについて知ることができるので、この情報を印刷しておいて作業中すぐに参照できるようにしておくことをお勧めする。

lspci -v cat /proc/cpuinfo cat /proc/meminfo


 準備ができたと思ったら、まずは特にカーネルの設定を変更しないまま、そもそもカーネルの再構築ができる環境が整っているかどうかを確認してみよう。ルートになって、以下のコマンドを入力しよう。

cd /usr/src/linux make clean make make modules_install make install reboot


 makeの実行にはしばらく時間がかかり、また警告が幾つか表示されるかもしれないが、エラーは出ないはずだ。再起動しても何も問題がなければ、カーネルを再構築してシステムを最適化するための準備が整ったということだ(実際にはもう準備だけでなく、すでに最適化の作業を開始しているとも言える)。例えば何らかのパッケージが欠けていたなどの原因によって深刻な問題が実際に起こってしまった場合には、バックアップのカーネルを使用して再起動して問題を修正し、再びこの「予行演習」を試してみればよいだろう。

関連キーワード

Linux Hacks | カーネル | Linux


       1|2|3 次のページへ

Copyright © 2010 OSDN Corporation, All Rights Reserved.

注目のテーマ