午前中は、Intel64 のマニュアルと格闘。
* Segment Register
* GDT/LDT
* CR3
* PD/PTE
Real mode (8086)からProtected mode(ia32)への切り替えは「こうやれ、余計なことするな」とマニュアルに書いてある。まぁ、要するに、
* マニュアルに書いてある通りにすれば良い
わけですね。Protected mode から64bit mode への切り替えは、
* PTEのフラグを設定した Code segment へ Jump
という方法だそうです。なので、午後一からは、
* アセンブラで GDT と Page table を作る部分
を読みまくりました。しかし、
* コメント皆無
ですね。まぁ、読みづらくはないんだけど。普通のアセンブラとCだから。最近の Linux は、
* コードを読みにくくするのを生きがい
にしているみたいなところがあって、それに比べればいさぎよい。
物理メモりはシングルリンクで簡単につなげるだけですか。良いね。その後、いろいろやるのでしょうが。
acpi でCPUの数を調べるところまで読んだので、明日は、system callっぽいところが読めるはずです。
http://www.cr.ie.u-ryukyu.ac.jp/~game/pukiwiki/index.php?xv6
この辺に、Vagrand box があります。でも、kernel gdbが成功するのは稀らしい。原因不明。通る人と通らない人とがいるらしい。
No comments:
Post a Comment