題 為什麼BIOS以16位而不是32/64位運行?


我的老師告訴我BIOS(或傳統模式) 總是 以16位啟動我的電腦。

換句話說,我可以擁有23.9GHz的英特爾酷睿i291832,但如果我使用傳統模式,我的電腦將以16位模式運行。真的嗎?如果是這樣,為什麼會發生?

P.S:你可以非常技術化,我在掌握計算機科學可能會理解你所說的。 P.S2:我知道UEFI和傳統模式之間的區別。 


2
2017-10-18 12:11


起源


維基百科:“BIOS限制(例如16位處理器模式,1 MB可尋址空間和PC AT硬件)對Itanium所針對的大型服務器平台的限制已經過於嚴格。解決這些問題的努力始於1998年,最初稱為英特爾Boot Initiative;後來改名為EFI。“ - ChrisInEdmonton
跆拳道?為什麼我的問題遭到了貶低?你的回答沒有回答任何問題,@ ChrisInEdmonton,對不起,但我真的沒有從你的解釋中得到它。 - Fernando Paladini
我沒有貶低你。我只是指出當前的標準,EFI(或UEFI)是32位。 - ChrisInEdmonton
好的,謝謝你的回答,抱歉粗魯,我以為你不喜歡這個問題而且沒有任何明顯的理由對它進行投票。對不起,謝謝您的時間/耐心/評論<3 - Fernando Paladini


答案:


向後兼容性。

現代x86處理器可以運行為原始軟件編寫的軟件 8088 例如MS DOS而不訴諸軟件仿真。請注意,有些東西可能無法運行 例如,許多遊戲都依賴於時鐘速度進行計時,因此過去在5 MHz時發生的事情現在發生在2.5 GHz時接近0.02秒。祝你好運及時反應。

實模式(16位)的行為與保護模式(32位)和長模式(64位)不同。為實模式編寫的程序不能在受保護或長模式下運行,它使用不同的指令。

由於向後兼容性是x86最重要的特性之一,因此所有x86處理器都繼續以實模式啟動。 (否則我們現在可能會轉向一個不太瘋狂的架構。請記住,即使是英特爾也希望切換到 安騰。)

BIOS和UEFI是主板的一部分,而不是CPU。因此,BIOS保持向後兼容原始IBM PC,並且本身非常簡單,因為CPU將控制傳遞給引導加載程序,因此CPU處於實模式。 UEFI不是為了這種向後兼容性而設計的,因此可以在傳遞控制之前自由切換到保護模式。但是如果從UEFI計算機中取出相同的x86 CPU並將其放入具有兼容主板的BIOS計算機中,它仍然可以工作,在加載引導加載程序之前跳入32位保護模式的現在仍處於16位模式在引導加載程序之前。


5
2017-10-18 14:31