2

Linux カーネルのプログラミングを学びたいので、www.kernel.org から Linux カーネル 3.7.6 のソースをダウンロードしました。ただし、何かを編集する前に、オンライン チュートリアルを使用してコンパイルしようとしました。

コンパイルにはmake時間がかかり、まだ完全には完了していません。ソースコードを変更してテストする簡単な方法はありますか? カーネルのコンパイルには約 1 時間かかると読んだことがあります。

また、変更したカーネルを USB ドライブにコピーしてテストすることは可能ですか? GRUB を USB ドライブにインストールし、カーネルを USB にコピーし、USB で GRUB を構成してから実行することはできますか? もしそうなら、同じことをする手順があるリソースを教えてください。また、ラップトップにGRUBをインストールしています。ラップトップの構成を乱すことなく、USB で新しい GRUB をセットアップする方法は?

ありがとう.. :)

4

2 に答える 2

6

あなたは Linux カーネル プログラミングを学びたいとおっしゃいましたが、あなたはこれらすべてに慣れていないので、より良い提案があると思います。

手始めに、カーネルをコンパイルする必要さえなく、非常に単純なドライバーや netfilter (これを使用して TCP/IP 全体をほぼ制御できます) と関係のあるものを導入するなど、カーネル プログラミングをほとんど行わないでください。

カーネル モジュールはあなたの友達です :)
これらは単純なコードで、個別にコンパイルし、(Linux コマンドを使用して) 実行中のカーネルにこのコードを実行insmod中のカーネルにアタッチするように要求します。カーネル空間で独自のコードを実行しています。

これがあなたの質問に正確に答えているわけではないことは承知していますが、このように始める方があなたにとってより簡単で、さらに役立つかもしれないと本当に思います。ここにある多くのことに慣れてきたら、実際に既存のカーネル コードを変更してみてください。

カーネルモジュールでできることを教えてください: - ドライバー - カーネルに新しい機能を追加する -私は個人的にそれを
netfilter (カーネル内の関数とフックのセット) と一緒に使用して、ネットワークトラフィックの処理を変更しました - あなたはできるまた、カーネルにパッチを適用し(ソースコードを変更し、コンパイルし、全体を実行します)、カーネルモジュールを使用して、システムコールの編集など、通常は全体の再コンパイルが必要なものを編集します。このアプローチは推奨されませんが、テストを実行するたびにコンパイルして再起動する必要がなくなり、テスト時間を短縮できます。 -もっと..



ある時点で混乱していた場合はお知らせください。

于 2013-02-10T17:33:29.663 に答える
2

起動したい場合は、最後までカーネルを構築する必要があります。ただし、コードを少し変更しただけで2回目は高速になるはずです。カーネルの必要な部分だけが再構築されます。

grub.cfggrub2の場合)に新しいエントリを追加することで、(異なるカーネルを使用して)複数のブートオプションを設定するのは非常に簡単です。ただし、ここで複数ページのドキュメントを繰り返すことはできません。

于 2013-02-10T17:05:44.943 に答える