1. 程式人生 > >操作系統學習(四)、系統啟動過程

操作系統學習(四)、系統啟動過程

中斷向量 初始化 地址 I/O 向量 錯誤 cpu 系統初始 系統初始化

一、操作系統啟動部分主要執行流程

  • 當PC電源打開後,80x86結構的CPU將自動進入實時模式。並從地址0xFFFF0 (FFFF:0) 開始自動執行程序代碼,這個地址通常是是ROM-BIOS中的地址。

  • PC機的BIOS將執行某些系統檢測,並在物理地址0處開始初始化中斷向量。 此後,它將可啟動設備的第一個扇區(磁盤引導扇區,512字節)讀入絕對內存地址 0x7C00 處,並跳轉到這個地方。

註:啟動設備通常是軟驅或硬盤。

二、具體執行過程

  1. 開機後,CPU自動進入到FFFF:0 單元處執行,此處有一條跳轉指令。CPU執行該跳轉指令後,轉去執行BIOS中的硬件系統檢測和初始化程序。

  2. 初始化程序將將建立BIOS所支持的中斷向量,即將BIOS提供的中斷例程的入口地址登記在中斷向量表中。

  3. 硬件系統初始化完成後,調用 int 19h 進行操作系統引導工作。

  • 如果設為從軟盤啟動操作系統,則int 19h 將主要完成以下工作。

        a. 將控制0號軟驅,讀取軟盤0道0面1扇區的內容到0:7C00
    
        b. 將CS:IP 指向0:7C00
  • 如果在0號軟驅中沒有軟盤,或發生軟盤I/O錯誤,則int 19h將主要完成以下工作

        a. 讀取硬盤C的0道0面1扇區的內容到0:7c00
        b. 將CS:IP 指向0:7C00

註:如果從軟盤啟動軟盤的0道0面1扇區中裝有操作系統引導程序,int 19h 將其裝在到0:7c00處後,設置CPU從0:7c00開始執行此處的引導程序,操作系統被激活,控制計算機。

操作系統學習(四)、系統啟動過程