タグ

2007年3月23日のブックマーク (3件)

  • ブートコードの解析はBochsを使え

    ブレークポイントを設定する さて、ブートコードは0x7c00番地に読み込まれてから実行されるのであった。そこでブレークポイントをブートコードの開始番地である0x7c00に設定する。 Next at t=0 (0) [0x000ffff0] f000:fff0 (unk. ctxt): jmp f000:e05b ; ea5be000f0 <bochs:1> lb 0x7c00 そしてブレークポイントまで実行を進める。 <bochs:2> c こうすることでブートプロセスにおけるBIOSコードの実行を一気に済まして、0x7c00番地に読み込まれたブートコードの入口で止まることができる。このときのbochsコンソールは以下のようになっている。 (0) Breakpoint 1, 0x7c00 in ?? () Next at t=485348 (0) [0x00007c00] 0000:7c0

  • ブートコードの実行

    ここでは、CPUによって最初の制御が開始されるところから、 ブートコードがシステムに取り込まれ実行されるまでを説明する。 ここで説明される事項は、Linuxに限らずどのOSの起動時にもあてはまる。 制御の開始 給電が正常に行われ、初期化の済んだバスが問題なく利用できるようになると、 CPU は制御を開始する。 CPU のモードが強制的にリアルモードへ変更される。 CPUの制御は、物理アドレス0xfffffff0(4GB-16B目)へのジャンプによって強制的に開始される。この状態は、リアルモードにもかかわらずコードセグメントのベースアドレスが1MBの範囲を超えている値に設定されている点で、特殊である。この特殊な状況は、やがてCSレジスタが更新され新しいベースアドレスがコードセグメントに設定されるまでの間続く。 ただしPC/AT互換機の場合、CPUの制御開始と同時に、後述する「A20マスク」と

  • 【インフォシーク】Infoseek : 楽天が運営するポータルサイト

    日頃より楽天のサービスをご利用いただきましてありがとうございます。 サービスをご利用いただいておりますところ大変申し訳ございませんが、現在、緊急メンテナンスを行わせていただいております。 お客様には、緊急のメンテナンスにより、ご迷惑をおかけしており、誠に申し訳ございません。 メンテナンスが終了次第、サービスを復旧いたしますので、 今しばらくお待ちいただけますよう、お願い申し上げます。

    ogawast
    ogawast 2007/03/23