計算機開機時會做些什麼

2022-07-10 23:09:16 字數 1413 閱讀 6777

作業系統其實是乙個取指執行的過程.

其中的指就是指標,pc(program count程式計數器)指標,然後從記憶體找到命令找到位址給cpu處理執行.

以x86 windowx作業系統為例

計算機開機時

(1) 讓cpu處於實戰模式.

cpu模式分兩種,實戰模式和保護模式,兩種模式的定址不同,實戰模式是cs<<4+ip定址.

(2)定址

cs=0xfff;ip=0x000 定址找到0xfff0 (rom bios對映區) 唯讀記憶體 base input/output system,這裡面有一段**.

(3)檢查

因為前面讀取的那段記憶體會執行一段**,檢查硬體(ram,鍵盤,顯示器,軟硬磁碟)所以有時候電腦出故障了就會開不了機.

(4)讀取磁碟

將磁碟0磁軌0扇區讀入0x7c00處.512位元組為乙個扇區,0磁軌0扇區就是引導扇區bootsect.s,也就是作業系統的第一段**

(5)bootsect

bootsect叫引導扇區其實就是起乙個引導作用,輸出開機畫面,並且轉入0x9002 setup的地盤.

(6)進入setup

setup佔四個扇區,做了很多重要的事情,這裡重點說5個

1.知道你計算機長啥樣,進行一些引數的獲取(游標位置,擴充套件記憶體數,顯示卡引數,根裝置號...)

2.將作業系統的system模組移動到記憶體的0位址處.

3.初始化gdt表(全域性描述符表)

4.進入cpu保護模式也就是將pe修改成1,也就是讓cpu的電路改一下更改cpu定址操作.此時保護模式定址cs的含義為索引從gdt中查表,然後加上ip進行定址(cs所以叫選擇子)

5.定址進入system模組.

為什麼進入保護模式呢,原因是如果是實戰模式的定址計算操作最多表示20位也就是1m的記憶體大小,但計算機的記憶體是很大的所以要換一種定址計算操作.

(7)進入到system模組.

也就是到了模組的第一部分**head.s,head.s又會初始化一遍gpt表.然後進入main.c(是通過函式是方式,壓棧進入)

(8)main.c進入

main.c是乙個死迴圈,裡面是一些init初始化函式:記憶體,中斷,裝置,時鐘,cpu... 如果main.c斷了,棧彈出然後棧頂為head.s設定的乙個中斷,然後宕機.

最後乙個鮮活的桌面誕生了.

總結

所以巨集觀的說作業系統一開始在磁碟,然後從磁碟轉入記憶體,然後進行一些初始化的操作

作業系統的故事從現在開始!

結構體 86 計算機開機時間

要求說明 程式設計實現計算機開機時間,要求每次開始計算時間時都能接著上次記錄的結果接著向下記錄 計算開機時間 include include include struct time 定義時間結構體 t int main int argc,char argv t.second 0 秒數置0 else ...

計算機開機報警

award bios 1短 系統正常啟動。表明機器沒有任何問題。2短 常規錯誤,請進入cmos setup,重新設定不正確的選項。1長1短 記憶體或主機板出錯。換一條記憶體試試,若還是不行,只好更換主機板。1長2短 顯示器或顯示卡錯誤。1長3短 鍵盤控制器錯誤。檢查主機板。1長9短 主機板flash...

計算機如何開機

作業系統是軟體,那麼計算機如何認識作業系統軟體並且執行它,開機時計算機還沒有任何軟體系統,那麼它如何讀取硬碟內的作業系統檔案,這裡就不得不講到開機程式了。bios 開機主動執行的乙個韌體 也是乙個軟體程式 會認識第乙個可開機的裝置 cmos 記錄各項硬體引數且嵌入在主機板上面的儲存器。介紹完這兩個,...