x86

インテルのマニュアルについて返答があった!

以前の日記で、マニュアルの発注願いを出したとこまで書いたんだけど、なんと今日返信があって一応送付してくれるそうな。ただし、Instruction Set ManualはもうDownloadのみらしい。とりあえず、送り先の郵便番号が抜けてるということだったので、それを書…

Intelのマニュアルを発注

x86

http://www.intel.com/products/processor/manuals/ から、Intelのマニュアルを発注した直後、なぜか発注用のボタンが消えてなくなった(w メールの返信もないし、一体どういうことだろう。まー、pdfで十分だからいっか。# 2009/04/04 追記 私が発注しなかっ…

GRUBであそぼ

GRUBからelfバイナリを読み込んだあと、ページングがなかなかONにできずはまっていたのだけど、一段落したのでまとめ。今回のエントリでは、GRUBからelfバイナリを読み込み、実行するところまでを述べます。 GRUBがelfバイナリを読み込み、起動するまで まず…

ページングをONにして仮想記憶を有効にするまでの手順メモ

はじめて読む486を読み直して、ページングをONにするまでの手順を整理。 GDTを設定。 IDTを設定(割り込みベクタの0x0eがフォールトハンドラ用に予約されている)。 ページディレクトリ、ページテーブルを初期化。このとき、物理アドレスを仮想アドレス空間に…

ページングをONにした後に落ちる理由

そっかー。そりゃ落ちるわ。 リンク時に 0x40000000 用にコンパイルしてるのに、Grubから出た直後は0x100000にバイナリが読み込まれているんだから。 ----- 0x100000 ----- <- EIP # binary is loaded here by grub boot loader. binary compiled for 0x4000…

セグメント

x86

「Linuxのブートプロセスを見る」を見たら、セグメントについてわからなかったことが理解できたので、メモ。私が混乱していた原因はたった1つ。 リアルモードとプロテクトモードではセグメントレジスタの使い方が異なるから。 以下では、その詳細について述…