linux-0.01 読み (6)
イマサラですが
という事が判明。386 なソレをいくつかチェックしてソースを見る事に。
上記マニュアルを参考にしつつ再確認な方向。
さ、読む
とは言え、コメントにあるように
- 0x7c00 に load されて
- 0x9000 にコピィ
- その後、0x1000 にコピィして云々
との事なんですがどうなのか。
とりあえず
init/main.c の main() が呼び出される仕掛けが分からん。boot/head.s な after_page_tables で $main というナニが push されてるのは承知してるんですが、setup_paging の末端の以下の処理を経て
orl $0x80000000,%eax movl %eax,%cr0 /* set paging (PG) bit */ ret /* this also flushes prefetch-queue */
prefetch-queue が flush された結果どうなるかが分からない。IA32_Arh_Dev_Man_Vol3_i.pdf の 9 章とか見てるんですが糸口ナシ。