鍍金池/ 問答/Linux  Office/ bootloader與實模式到保護模式關系?

bootloader與實模式到保護模式關系?

bootloader與實模式到保護模式關系?最近在學習操作系統(tǒng),然后自己也看了幾本書,30天自制操作系統(tǒng)和一個操作系統(tǒng)的實現(xiàn),其實我比較喜歡計算機底層相關知識,也想如果自己能寫一些操作系統(tǒng)內(nèi)核真好,但是在關于操作系統(tǒng)啟動方面就一直問題重重,比如bootloader與實模式到保護模式關系?這些很多東西就恨不能理解,其實我學過匯編,但是很多東西就是理解不到。理論我覺得來講,啟動盤的512引導扇區(qū),在這512扇區(qū)里面直接弄一個跳轉(zhuǎn)到操作系統(tǒng)內(nèi)核不就行了嗎?為什么還涉及很多實模式呀,保護模式這些問題,bootloader這些,就讓我很不解,也不明白bootloader與實模式到保護模式關系?一個操作系統(tǒng)實現(xiàn)這本書寫了很多實模式到保護模式的東西,但是一直看不太懂,進步很慢~

回答
編輯回答
脾氣硬
XP實現(xiàn)切換的動作是在NTLDR里完成的,但跟你理解的不一樣的是,不是說一下子切換到保護模式就OK了,而是在實模式和保護模式之間來回切換很多次。原因是:NTLDR里是沒有硬盤驅(qū)動的,讀盤是通過INT 13實現(xiàn)的,而INT 13只在實模式下能用,怎么辦?所以NTLDR先算出來要讀的扇區(qū)的位置(在保護模式下),然后切換到實模式調(diào)用INT 13,讀完以后再返回回來。因為要頻繁調(diào)用INT 13,所以會在保護模式和實模式之間切換多次,這種設計從Win2000開始到XP一直都是這樣的,因為Win2000和NT4有源碼泄露,去看一下就明白了。如果是XP和Win7混裝(先裝XP),也有類似的動作。直到處理完所有讀盤請求以后,才徹底切換到保護模式。

作者:北極
鏈接:https://www.zhihu.com/questio...
來源:知乎
著作權歸作者所有。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權,非商業(yè)轉(zhuǎn)載請注明出處。

轉(zhuǎn)過來供你參考

2018年3月27日 03:42