お前ら*BSDのカーネルをハックしますか? (378レス)
上下前次1-新
155(1): 02/07/06 20:57 AAS
>>151
その通り。なぜ、&= ~(0xff000000)じゃないのかよう分からんけど。
で、じゃあ何故ELFヘッダの開始番地が0x100XXXなんかじゃ無くて
0xc01000XXになってるかっていうと、paging開始後はカーネル仮想メモリ
アドレスは全て0xc0000000以降になっていて、 カーネルで使用している
メモリアドレスは全てそこにマップされるから。(リンカとELFフォーマット
の機能を使えばそういう状況にも実は対応できたりするような気もするけど)
特にkernelとISAメモリ空間は(物理アドレス+0xc0000000)の位置にマップされます。
locore.sでページングを開始するまでに絶対アドレッシングが必要な
時は
#define R(foo) ((foo)-KERNBASE)
定義されるマクロを使ってアクセスしてます。
上下前次1-新書関写板覧索設栞歴
あと 223 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.004s