2017-04-04 38 views
4

私は自分のLinuxディストリビューションを作っています。開発はうまくいっていますが、カーネルロードアドレスとエントリポイントの違いを理解することは難しいです。カーネルのロードアドレスとエントリポイントの違い

カーネルがuBootによって読み込まれるようにするには、カーネルがロードされるメモリアドレスは、カーネルのエントリ(開始点)が実行される場所)。

しかし、これらは、必ずしも同じである必要はない2つの値が分かれているため、それらが分離される理由があると推測しています。

誰も私に2つの違いを説明できませんか?

私はまだカーネル開発に新しいので、おそらく1日の質問です。

ありがとうございました!

トーマス

+1

参照http://stackoverflow.com/questions/31725605/building-kernel-uimage-using-loadaddr – sawdust

答えて

4

ロードアドレスは、カーネルバイナリイメージがコピーされるRAMの場所です。 Entry Pointは、カーネルをブートするためにubootによって実行される、コピーされたバイナリの場所です。

RAMは80000000にマッピングされ、カーネル・ロード・アドレスは80008000. bootmコマンドである80008000のアドレスにコピーされた画像の位置からuImageを解凍した後、カーネル・エントリ・ポイントを(同じアドレスであってもよい:80008000)を呼び出している場合はカーネルを実行します。

関連する問題