Saturday, 6 June 2015

x.v6 読み会二日目

午前中は、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: