• ベストアンサー

カーネルの再構築の方法

punchan_jpの回答

回答No.2

「再構築の方法」については、OSに依存することであり、ackyさんが非常に詳 しく説明されていますし、多くのサイトでも解説されているので、省略します。 カーネルというのは、UNIXのような古典的なOSの場合、通常のプログラム自身 が処理できないような作業をしてくれるプログラムと理解すればいいと思いま す。OSを起動するというのは、なにはともあれカーネルをメモリ上に置いて、 それを実行することであるという面もあります。 カーネルがやってくれる作業には、入出力(デバイス操作、ネットワーク、割 込み処理を含む)、プロセス管理(最初のプロセスの生成を含む)、ファイル システム管理、仮想記憶管理、アクセス制御などがあります。通常のプログラ ムでも、入出力とか、ファイル操作をやってるじゃないかと考えるかもしれま せんが、通常のプログラムはシステムコールという方法でカーネルにお伺いを たてるだけで、実際の作業はカーネルがするわけです。 では、どんなときにカーネルを再構築するかというと、バグ修正やバージョン アップのパッチを当てたいとき、非標準のファイルシステムなどの新しい機能 を付加したいとき、カーネルがサポートしている以外のデバイスを組み込みた いとき、カーネルのパラメータを調整したいときなどが該当します。 最近のUNIXでは、動いているカーネルに対して、動的にモジュールを追加・削 除できる機能も付加されていますので、以前ほど頻繁にカーネルを再構築する という状況は減っていますが、まったく不要という具合にもなっていません。

関連するQ&A

  • カーネルの再構築とは?

    カーネルの再構築について調べています。 ネットで検索してみると色々なLinuxディストリビューションでのカーネル再構築方法が結果として出てきますが、そもそもカーネルの再構築とは一体何なのかが自分には分かりません。 デバイスに合わせてカーネルから不要なモジュールを削除する・・など部分的な動作は少し調べましたが、再構築の全体像がまだ見えません。 1:カーネル再構築とは何を行うことか。どのファイルを操作するか。 2:カーネル再構築はなぜ必要か。OSにどのような影響を及ぼすか。 以上を教えて頂けると有り難いです。よろしくお願いします。

  • カーネルの再構築について

    現在、カーネルの再構築を行っているのですが、設定後bootすると必ずkarnelpanicを起こしてしまいます。 boot時のエラーメッセージは mounting root filesystem mount: error 19 mounting ext3 pivotroot: pivot_root(/sysroot,/sysroot/initrd) failed: 2 Freeing unused kernel memory: 240k freed Kernel panic: No init found. Try passing init= option to kernel. で何らかの理由でファイルシステムのマウントが失敗してしまっているようなのですが、回復法が見つからないので教えてください。 現在使用しているkarnelは2.4.20で再構築で切り替えようとしたのは2.4.31と2.6.11の2つでどちらも同じエラーでした。よろしくお願いします。  osはredhat9です。

  • LINUXのカーネル再構築

     初めてLINUX Redhatでカーネルの再構築をしました。モジュールはmenuconfigで設定。再起動後に/usr /var /homeの中身がからっぽになってしまいました。何を失敗したのかわかりません。旧バージョンは残っているのでやり直しはきくのですが、原因がわからないと怖くて。どなたかわかりませんか?

  • カーネル再コンパイルについて

    ソースコードを書き換え、それを反映したカーネルを作りたいと思っているのですが、今現在のカーネルのコードを書き換え、saveした上でカーネルの再構築をすれば、できたカーネルには書き換えた内容が反映されているのでしょうか? また、書き換えた際に使っていたカーネルはどうなるのでしょうか? redhat2.4.20-8を使っています。 ブートローダはLILOを使っています。

  • カーネル?

    今まで読んだ本だとカーネルという中心部があって、その周りに色々なプログラムが 動作していると書いてありました。アバウトにイメージだけで理解していたつもりですが、 カーネルって何?と聞かれると上手く答えられません。 人間で言うと、何に該当するのでしょうか? それから、ウィンドウズはヴァージョンが変わっても、カーネルは殆ど変わらないと 聞いた事があります。 カーネルというものは、ヴァージョンが上がって行かないものなのでしょうか? その周りのプログラムだけがどんどん新しくなっていくのでしょうか? どうぞ宜しくお願いします。

  • RedHat8.0 カーネル再構築

    RedHat8.0 のデフォルトのカーネルの再構築を しようとしています。 make xconfig で IP multicast を y にしました。 make bzImage は正常に終了しました。 make modules が失敗します。 dummy.c dummy_init内 invalid suffix on integer constant と言ってますが、このエラーはどうすればなくなるの でしょうか。

  • カーネルの再構築について

    どうも、Linuxの初心者です。RHL7.2を使っています。 最近カーネルの再構築をしたいと思っているのですが、 make xconfig の個々の設定をどのようにすればよいか、分かりません。 各々の設定について詳しく解説、または"こうしたほうがいい"と解説してくれるページ等はないでしょうか? JFというページを見たのですが、カーネルのversionが古い上に英語がわからないため、困っています。どうか、じぶんがさんこうになったサイトでもあれば教えてください。宜しくお願いします。

  • 設定の変更だけしたいのに、それでもカーネルをコンパイル??

    こんばんは。atsu1100といいます。 今使っているRedHat7Jに「IPROUT2」ってのをインストールしたくていろいろ調べて見たところ、カーネルを再構築して設定しないといけないような事が書いてありました。 別にバージョンアップをしたい訳ではなく設定だけ変えたいのですが、それでもやっぱ、カーネルのmakeからしないといけないのですか?? 宜しくお願いします。

  • カーネル再構築とベンチマーク

    カーネルを再構築して、不要なモジュールを削除してスマートにしたいと思っています。それによってどのくらい変化があるか、ベンチマークテストなどによって数値的に確認したいのですが、何か良いソフトウェアはありますか?あるいはこういうことを解説しているサイトなどありますでしょうか? ちなみに、いまWindowsからVMwareでLinux を起動していますが、さすがに少し重たいです。カーネルを再構築してOSを軽くすることで、明らかに体感できるほどの大きい変化が期待できるものでしょうか? よろしくお願いします。

  • カーネル再構築にて、現在の値を引き継ぐ

    Redhat9のカーネル再構築を行いたいです。 DISCからインストールした状態(カーネル再構築を行おうとしているカーネルの状態)を全て引き継ぎ、  SCSI SupportのProbe all LUNs on each SCSI device を Y にする という1点だけ変更を加えて、実行したいです。 これを目標に、以下の流れでコマンドを実行しました。 cd /usr/src/linux-2.4.**/ make mrproper cp ./configs/kernel-2.4.20-i686.config .config sudo make xconfig  ・[SCSI support]→[Probe all LUNs on each SCSI device]をオンにする。  ・セーブ&exitで終わる。 make bzImage && make modules make modules_install installkernel 2.4.20-8-LUNs arch/i386/boot/bzImage System.map ここで、 参考したサイトの手順を鵜呑みにして cp ./configs/kernel-2.4.20-i686.config .config というコマンドを実行して.configを書き換えているのですが、 これは「DISCからインストールした状態」を引き継いでいないですよね? 「DISCからインストールした状態」を引き継ぐには、 インストールした時点で/usr/src/linux-2.4.**/に存在している.configが、/usr/src/linux-2.4.**/にある状態で、 make xconfig を実行すれば良いのでしょうか。 make oldconfigというコマンドが現在の値を引き継いでいるらしいのですが、 実行後に聞かれるいくつかの選択肢の意味がよくわかりません。