オペレーティングシステムは何ですか?
あなたはそう、窓、UNIXやLinux、MacOSの、アンドロイド、IOS ....すべてのオペレーティングシステムを考えるかもしれません。この理解は間違っているが、あまりにも表面的ではありません。
オペレーティング・システムは、直接実行されるコンピュータプログラムのハードウェア上で。
以下のためのオペレーティングシステムの管理および制御するコンピュータのハードウェアおよびソフトウェアリソースを
以下のためのオペレーティングシステムのユーザーのソフトウェアに必要な開発提供するサービスとインタフェースを
現代のコンピュータ・システム・アーキテクチャー:
BIOS - 基本入力&出力システム
BIOSは、コンピュータの後に電源が投入されて実行されるプログラム
によって検出された直後のBIOS第1状態検出ハードウェア、ハードウェアの初期化
BIOSメモリがします割り込みベクタテーブルを確立する(提供されるハードウェアアクセス方法)
最後にBIOS の転送制御は、マスターブートプログラムの実行に引き渡さ
注:BIOS ではないソフトウェア(ソフトウェア)が、ファームウェア(ファームウェア)
ファームウェアは、前に固定ハードウェアに工場でプログラムされ、ハードウェアのプログラムで硬化されます
システム起動プロセス(X86アーキテクチャ)
BIOSは、マスターブートプログラム、オペレーティングシステムのカーネルをロードするために、マスターブートプログラムをロードし、その後、BIOSは、誰がそれを実行し、それをロードすることですか?
BIOS操作機構:
--BIOS ROMに格納され、0xF0000--0xFFFFF用のアドレスマッピング(実アドレス)
--BIOSエントリアドレスは次のとおりです。0xFFFF0
- 特別なハードウェア設計はようなものです:
ブーツ、CPUは0xFFFF0の場所からスタートしました。
上記から分かるように、特別なハードウェア回路、ブートするように設計されているBIOSをロードするための他のプログラムは、CPUの実行は0xFFFF0で開始しません。
BIOSの最後のミッション
ユーザそれぞれの記憶媒体を走査(CD-ROM、フロッピーディスク、Uディスク、等)によって提供されます
マスターブートが見つかった後、マスターブートプログラムは、マスター・ブート・メモリにロードされました
メモリ内のマスターブートプログラムのエントリアドレスが0x7c00です
実行される制御プログラムは、主ガイド(JMP 0x7c00)をいいます。アウト支払い方法を制御?JMPは、単一のアセンブリ命令によって達成されます。
記憶媒体にBIOSマスターブートプログラムを見つけるにはどのように?
マスターブートを確認する方法何のマスターブートプログラムはありませんか?
マスターブートセクタ(MBR:レコードのブートマスター)
-位置:記憶媒体の先頭に位置する、512バイトの大きさ
-特長:有効0x55AAの最後の2バイトの最初の512バイト(マスターブートプログラムが決定記号の合法性)
-データ:0x55aa前のデータがプライマリブートプログラムと考えられています
質問1:各ストレージメディアの最初の512バイトで、マスターブートプログラムがあり
ません。
質問2:あなたはすでに512のバイトがマスターブートで、そのデータは、それがマスターブートにそれを保存しない正当なマスターブートプログラムであることを事前に判断した場合は?
そうとも限りません
より詳細なシステム・ブート・プロセス(X86アーキテクチャ)
概要:
コンピュータのBIOSは、パワーラン後の最初のプログラムである
BIOSが必要な初期化、およびマスターブートプログラムを実行するロード
マスターブートプログラムは512バイトの記憶媒体の先頭に配置されて
実行され、ロード操作、マスターブートプログラム、その後の初期化のために責任がありますシステムのカーネル