保護模式
维基百科,自由的百科全书
保護模式 (Protected Mode,或有時簡寫為 pmode) 是一種 80286 系列和之後的 x86 相容 CPU 操作模式。保護模式有一些新的特色,設計用來增強 多工 和系統穩定度,像是 記憶體保護,分頁 系統,以及硬體支援的 虛擬記憶體。大部分的現今 x86 作業系統 都在保護模式下運行,包含 Linux、FreeBSD、以及 微軟 Windows 2.0 和之後版本。
另外一種 286 和其之後 CPU 的操作模式是 真實模式,一種向前相容且關閉這些特色的模式。設計用來讓新的晶片可以執行舊的軟體。依照設計的規格,所有的 x86 CPU 都是在真實模式下開機,來確保傳統作業系統的向前相容性。在任何保護模式的特色可用前,他們必須要由某些程式手動地切換到保護模式。在現今的電腦,這種切換通常是由 作業系統 在開機時候必須完成的第一件工作的一個。它也可能當 CPU 在保護模式下運行時,使用 虚拟86模式 來執行設計給真實模式的程式碼。
儘管用軟體的方式也有某些可能在真實模式的系統下使用多工,但保護模式下記憶體保護的特色,可以避免有問題的程式破壞其他工作或是 作業系統 核心所擁有的記憶體。保護模式也有中斷正在執行程式的硬體支援,可以把 execution content 交給其他工作,得以實現 先佔式多工。
大部分可以使用保護模式的 CPU 也擁有 32 位元暫存器 的特色 (例如 80386 系列和其後任何的晶片),導入了融合保護模式而成為 32 位元處理的概念。80286 晶片雖有支援保護模式,但是仍然只有 16 位元暫存器。Windows 2.0 和之後版本中的保護模式增強稱為 "386 增強模式",是因為他們除了保護模式外,還需要 32 位元的暫存器,並且無法在 286 上面執行 (即使 286 支援保護模式)。
即使在 32 位元晶片上已經打開了保護模式,但是 1 MB 以上的記憶體並無法存取,是由於一種仿照 IBM XT 系統設計特性的 memory wrap-around(記憶體連續) 的因素。這種限制可以由打開 A20 line 來迴避。
在保護模式下,前面 32 個中斷都是保留給 CPU 例外處理用。舉個例子,中斷 0D (十進制 13) 是 一般保護模式錯誤 而 中斷 00 是 除以零。

