intel的ibm pc上i386晶元是遵循intel與ibm共同制定的boot協議的
1. pc機的復位線和系統中的所有部件相連,包括cpu的reset引腳//
2. 系統上電開機時,主機板電源系統傳送低電平的"power good"訊號,該訊號送到復位介面電路的#res端,產生時鐘同步的復位正脈衝訊號reset,該脈衝傳送到上面提及的復位線上,經由cpu的 reset引腳被cpu採集到,當正脈衝從1返回0時(下降沿),cpu啟動內部初始化程式,初始化完成後進入實位址模式,其中cs:ip暫存器的狀態是cs=f000h,ip=0000fff0h;顯然,cpu自初始化完畢後,系統的真正啟動才開始,那麼,也決定了第一條指令的位址為cs:ip=f000:fff0h=ffff0h單元。
3. 與此同時,ibm開機協議規定,reset時,bios rom被載入到f0000h~fffffh,幾乎所有bios在ffff0h的指令為jmp bini,這個bini就是bios啟動程式的首位址了
4. 結合2,3兩點,pc機開機後的第乙個程式就是bios啟動程式了,這個啟動程式的執行流程分為二步:
i. post(power on self test)
ii. 按bios設定好的順序逐一嘗試載入啟動**(硬碟,光碟機,軟碟機,u 盤)的啟動程式。對於我們常用的硬碟,則把0面,0道,1扇區的內容(512位元組),也就是我們說的mbr載入到0000:7c00h單元開始的區域
結論:在pc機上的重啟(其實重啟也是正常啟動的一種形式而已),post一定發生在載入mbr之前,這是由久而來的ibm開機協議所定的。只要你是使用pc機,你無法僅從作業系統的角度來改變這個事實,更何況,從邏輯上而言,這些發生在作業系統運作之前的舞台。或許你的bios提供這種設定,使bios啟動程式中跳過post這一步(但也同樣作用於正常啟動,不能僅作用於重啟),又或許你使用其他硬體架構如 c或者arm嵌入式系統!
之所以產生這種設想,估計是誤解了我們計算機教學一直以來的初級概念,軟重啟和硬重啟。注意,前者的reset訊號由鍵盤發出,後者的reset訊號由物理按鍵動作發出!但無論是哪種重啟,都必須遵循開機協議,post一定發生在載入mbr之前!
1 1 1 BIOS的啟動原理
1.1.1 bios的啟動原理 在了解bios是如何將作業系統程式載入到記憶體中之前,我們先來了解一下bios程式自身是如何啟動的。從我們使用計算機的經驗得知 要想執行乙個程式,必須在視窗中雙擊它,或者在命令列介面中輸入相應的執行命令。從計算機底層機制上講,這其實是在乙個已經執行起來的作業系統的視覺...
啟動BIOS虛擬化
啟動bios虛擬化 學習了 在thinkpad t430中,機器啟動的時候輸入enter進入bios,設定路徑為 security virtualization inter virtualization technology enabled 在thinkpad t470中,機器啟動的時候按下f1進入...
BIOS啟動並載入OS
回顧cpu加電的第一條指令 在0xfffffff0處是存放著一條長跳轉指令,直接跳到bios可執行 區,而這些 都是固化在主機板上的rom區里的。0xf0000 0xfffff被對映到bios rom。bios 初始化過程 bios載入os過程mbr 主引導扇區 位於硬碟的 0 磁軌 0 柱面第1扇...