BIOS --linuxコア設計原理の研究ノートを開始します

RAM:ランダムアクセスメモリは、情報は、停電後に消え、書き込み、読み取る力の下で、任意選択により特徴付けられる、メモリRAMの一般的なタイプです。
RAMは、どのようなプログラムではありませんでした場合は、誰が作業負荷のフロッピーディスク・オペレーティング・システムを完成させますか?
答えは:BIOS。

BIOSの原理を開始

BIOSがメモリにオペレーティングシステムをロードする方法を見る前に、まずBIOSプログラム自体が起動する方法を見て。知っているコンピュータを使用しての我々の経験から:プログラムを実行するには、ウィンドウでそれをダブルクリック、またはコマンドライン・インタフェースの適切な実装を入力する必要があります。実際には、オペレーティングシステムのビジュアルインターフェイスでプログラムを実行するか、コマンドラインインターフェイスは、基礎となるメカニズムの面でコンピュータにすでに稼動しています。しかし、一瞬のブートパワーで、プログラムは、何のプログラムが実行されていない、オペレーティング・システムのユーザー・インターフェースを持っていない、何のオペレーティングシステムが存在しないことができるもののないメモリがありません。私たちは、人為的にそれを実行しますBIOSプログラム、順番にBIOSプログラムを実行することはできませんか?
秘密は次のとおりです。0xFFFF0!

システムの観点から見ると、それを締結することは困難ではない:それは、BIOSソフトウェアの方法を実行することは不可能であるので、ハードウェアのみのアプローチによって行うことができます。ハードウェアの観点からは、インテル80X86ファミリのCPUは、それぞれ16ビットの実モードと32ビットプロテクトモードで実行することができます。互換性のために、そして最初の問題を解決するために開始するために、CPUのハードウェアの最新モデルを含むインテル80X86シリーズすべてのCPUは、電力の16ビットリアルモードの状態動作に、であるように設計されています。同時に、CPUのハードウェアロジック設計は瞬時電力値がCS 0XF000に設定されている強制することは非常に重要な存在である、IP値は0xFFF0に設定されている、このCS:IPは1 -として、このアドレス0xFFFF0位置を指すように図1に示します。これは明らかにBIOSのアドレス範囲に図1-1、0xFFFF0ポイントから見ることができます。
BIOSの原理を開始
図1-1 BIOSは、メモリに初期状態と開始位置で実行されます

ヒント

  • IP / EIP(命令ポインタ):命令ポインタレジスタは、CPUに存在する、コードセグメント、命令レコードを実行すべき命令のメモリアドレスは、アドレスオフセット、およびCSは、実行される組み合わせです。リアルモードは、命令ポインタ16、すなわち、IPの絶対アドレスであり、保護されたリニアアドレスモード、命令ポインタ32、即ち、EIPです。

  • CS(コードセグメントレジスタ):コード・セグメント・レジスタは、CPU、現在実行メモリ領域のCPUコードポイント(コードメモリに記憶された開始アドレスを規定する)中に存在します。
    これは、アクションを完了するために、純粋なハードウェアであることに注意してください!この時点では位置は、実行可能なコードではない場合、それは言う必要はありませんでした、このコンピュータがクラッシュします。実行可能コードがこの位置に存在する場合、コンピュータはここにコードを開始します逆に、それは一緒に行くためのフォローアッププログラムの実施となっています。
    BIOSプログラムのエントリアドレスを正確0xFFFF0です!つまり、この位置に設計するためにBIOSプログラムの最初の命令です。

おすすめ

転載: blog.51cto.com/14441798/2421406
おすすめ