02/07/03 03:05
FreeBSDのブートについて質問させてください。
sys/boot/common/load_elf.c を読んでるんですが、
/kernelのエントリアドレス(当方では0xc012b130)に0xff000000をマスクして
符号反転してオフセット(off)を0x40000000にしている意味がわからないです。
コメントの「i386 relocates after locore」っていうのも呪文ですし…
で、結局/kernelのプログラムヘッダの仮想アドレス(当方では0xc0100000)と
さっきのoffを加算して桁あふれさせて0x100000にして、
最終的にはこのアドレスに/kernelをロードしてるようなんですが、
なんかえらくまわりくどくないですか?私の読みが浅いだけでしょうか。