Linux のカーネルをビルド

派遣先で使ってるパソコン(Windows7)の仮想環境に入れたCentOS7 で、Linux のカーネルのビルドを行い、最新のカーネルにしてみました。本番環境でここまでやることは無いと思うのですが、パラメータの編集も視野に入れているので、確認まで。

Linux のカーネルのビルドは、もう10ぶりくらいでしょうか。前にやった時は、2.4系と
2.6系、さらに、新しい3.x系とかなり選択肢があった時代だったと思います。できるだけ軽いカーネルが作れないかトライしたこともあります。しかし、パソコンで動かすことを前提に作ると結局多くのドライバーを使わざるえないので、最適化した効果がほとんど無いということだけは覚えています。当時も、/proc のパラメータは修正したものの、カーネルの再ビルドまでは必要ありませんでした。

なお、カーネルのビルドは、実は簡単です。

CentOS でソフト開発用一式をカーネル開発環境パッケージをインストールして、カーネルのソースをダウンロードします。そして、ソースを展開したら、CentOS の設定ファイルをコピーします。あとは、4つくらいのコマンドを実行するだけ。Makefile が全てやってくれます。そして、インストールしたら、OSをリブートすれば新しいOSで立ち上がります。

仮想環境の VirtualBox で起動すると、ホストOSとのインターフェースを作りなおししなければならないので面倒ですが、それさえやってしまえば yum でインストールしたカーネルと同じように使えます。

ただ、仮想環境ということもあって make にすごい時間がかかってました。最新のサーバーでネイティブで動作させれば、そこそこ速いと思うのですが。年々大きくなっているみたいだし。こんなものなのかもしれません。

しかし、ネットで調べる限り、カーネルパラメータを調整する記事はあったても、カーネルの書き換えが必要、という記事は見当たらない。Linux カーネルは毎年のように更新されているので、最新のカーネルの変数を自分用に合わせて編集してビルドして使う、なんていうのは過去の技術になったみたいですね。