SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けに、EnterpriseZine Day、Security Online Day、DataTechという、3つのイベントを開催しております。それぞれ編集部独自の切り口で、業界トレンドや最新事例を網羅。最新の動向を知ることができる場として、好評を得ています。

直近開催のイベントはこちら!

Security Online Day 2022

2022年9月16日(金)10:00~17:10

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けの講座「EnterpriseZine Academy」や、すべてのITパーソンに向けた「新エバンジェリスト養成講座」などの講座を企画しています。EnterpriseZine編集部ならではの切り口・企画・講師セレクトで、明日を担うIT人材の育成をミッションに展開しております。

お申し込み受付中!

japan.internet.com米国最新IT記事

Linux:カスタムカーネルでスリム化とパフォーマンス向上を実現

今回の記事ではLinuxカーネルをカスタマイズするさまざまな方法の一部を取り上げ、紹介していきます。まず、以前から一般的に使用されている信頼できる方法について説明し、その後でFedoraおよびDebianでカーネルをカスタマイズする方法を紹介します。

はじめに

 衝撃的なニュースをお知らせしましょう。近年Linuxは目覚しい普及を遂げていますが、そのなかで、これまで一度もカーネルをコンパイルしたことがないという新しい世代のLinuxユーザーが出現しているのです。この嘆かわしい事態を一体どう説明すればいいのでしょうか? 原因はおそらく、ディストリビューションメンテナーがこの作業を完璧に済ませてしまい、個々のユーザーが行う必要がなくなっているからだと思われます。あるいは、自分でもできるということをユーザーが知らないだけかもしれません。原因の究明はさておき、今回の記事ではLinuxカーネルをカスタマイズするさまざまな方法の一部を取り上げ、紹介していきます。まず、以前から一般的に使用されている信頼できる方法について説明し、その後でFedoraおよびDebianでカーネルをカスタマイズする方法を紹介します。

 カスタムカーネルの構築はそれほど難しい作業ではありませんが、複雑で時間がかかります。最後まで終えたあかつきには、非ブートカーネルのコンパイルをやり遂げたと言って大きな顔をしてもいいでしょう。ありがたいのは、システムを壊すことを恐れずに何回でも好きなだけやり直しができる点です。どのLinuxシステムでも複数のカーネルを持つことができ、どのカーネルを使ってブートするかを選択できます。したがって、古いカーネルを削除するのは、新しいカーネルが正しく動作することを確認してからにしてください。明示的に設定しなければ新しいカーネルにブートすることはないので、知らないうちに新しいカーネルが使われてしまうおそれはありません。したがって、新しいカーネルをいくつでも好きなだけビルドし、テストすることができます。

 作業用に数ギガバイトのディスク空き容量を確保してください。これはカーネルソースを格納したりツールや他のユーティリティをビルドしたりするのに必要になります。その他に、ビルド中に作成される中間ファイル用に500メガバイト、また、新しいカーネルやカーネルモジュールを保存する場所も必要です。

 ハードウェア情報が必要になる場合があるので、lshwコマンドとlspciコマンドをインストールします。まず、update-pciidsコマンドを実行し、情報を最新の状態にします。cat /proc/cpuinfoを実行すると、CPUの仕様が表示されます。

カーネルを自分でコンパイルする理由

 なぜ、こんな作業が必要なのでしょうか? 理由はいくつか考えられます。たとえば、カーネルを自分でコンパイルすることにより、追加の機能を利用したり、不必要な機能を削除したり、パフォーマンスを向上させたりできます。さらに、新しいパッチのテストに役立つから、あるいは単にその方法が知りたいだけ、という理由も考えられます。特に、最後に挙げた2つの理由は大切です。私は、どんな人にも常に好奇心と向上心を持っていてほしいと思っています。

 広く使用されている汎用Linuxのほとんどは、すべての人を満足させるために、ありとあらゆるハードウェアをサポートするカーネルとモジュールを備えています。その結果、カーネルとモジュールが200~300メガバイトにもなり、システムが肥大します。これは、セキュリティ上の懸念をもたらしますし、中にはバカげてるとしか言いようがない機能もあります。たとえば、赤外線、アマチュア無線、そしてデスクトップコンピュータには無用の数々のラップトップ用機能などです(この3つは、私が個人的に考える三大役立たず機能です)。そもそも、なぜこのような「贅肉」がついているのでしょうか? 自分のCPU用にカスタマイズされ、必要なハードウェアや機能だけをサポートするカーネルをビルドするのは楽しい作業ですし、それによってパフォーマンスの向上も期待できます。

一般的な方法でカーネルをカスタマイズする

 最新のカーネルとパッチはKernel.orgから取得できます。ここには、修正されていないオリジナルのカーネルがあるので、「バニラカーネル」と呼ばれます(「プレーンなバニラ味のカーネル」の意味)。次に、ビルド環境を用意する必要があります。この作業は、FedoraとDebianを使用すれば簡単です。Fedoraでは、Development Toolsパッケージグループをインストールします。

# yum groupinstall 'Development Tools'

 QTも必要です。

# yum install qt-devel

 Debianでは、次のコマンドを使用します。

# aptitude install build-essential libqt3-mt-dev qt3-dev-tools

 解凍されていないソースtarballにあるDocumentation/Changesファイルには、ビルド環境に必要なアプリケーションの基本リストがあります。実際、カーネルのtarballのドキュメントには大量の情報が格納されているので、ぜひ時間をかけて調べてみてください。

 新しくダウンロードし解凍したカーネルソースは、/usr/srcに置かないでください。この/usr/srcに置くよう指示する人もいますが、その指示に耳を傾けてはいけません。ソースツリーを保存するディレクトリをホームディレクトリに作成します。カーネルのREADMEファイルでは、次のように説明しています。

「...カーネルのtarballを、自分が権限を持つディレクトリ(たとえば自分のホームディレクトリ)に置いてください.../usr/src/linux領域は使用しないでください! この領域には、ライブラリヘッダーファイルによって使われる一連のカーネルヘッダー(大抵は不完全)があります。これらはライブラリと一致する必要があり、“本日のカーネル”が何であっても混乱してはなりません。」

 私の場合は、「/home/carla/kernel」を使用します。

次のページ
パフォーマンス

この記事は参考になりましたか?

  • Facebook
  • Twitter
  • Pocket
  • note
japan.internet.com米国最新IT記事連載記事一覧

もっと読む

この記事の著者

Carla Schroder(Carla Schroder)

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

EnterpriseZine(エンタープライズジン)
https://enterprisezine.jp/article/detail/86 2007/08/30 12:00

Job Board

PR

おすすめ

アクセスランキング

アクセスランキング

イベント

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けに、EnterpriseZine Day、Security Online Day、DataTechという、3つのイベントを開催しております。それぞれ編集部独自の切り口で、業界トレンドや最新事例を網羅。最新の動向を知ることができる場として、好評を得ています。

2022年9月16日(金)10:00~17:10

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング