保護環
作業系統在不同的層級上執行,並且每個層級都有其特權。這些特權使用保護環來表示,用於共享資源和硬體系統,這些系統管理儲存在計算機系統中的資源,例如 CPU 處理時間和記憶體訪問時間。保護環按從最可信到最不可信特權的層次順序排列。位於核心級別的中心環可以訪問所有資源,並具有最高特權,而後續層級則具有較低的訪問許可權級別。此機制是由 CPU 架構在不同訪問模式下硬體強制執行的。具有 x86 的處理器使用四個級別的環,使用環 0 到環 3 實現,其中環 0 具有最高特權。
保護環的重要性
這種提供分層保護模型的方法提供了以下列出的優勢 -
-
當一個程序需要一組包含多個CPU資源的指令時,它會向作業系統發起請求,以確保計算機安全。在收到請求後,作業系統可能會決定是否授予訪問許可權。此活動可防止系統受到惡意攻擊或來自其他程序或外部來源的惡意行為。
-
透過為可以直接訪問核心空間(具有環 0 保護)的應用程式提供容錯能力,可以減少系統崩潰。
保護環中的級別
如前所述,x86 指令集使用從環 0 到環 3 的四個特權級別。環 0 可以訪問核心部分,該部分稱為作業系統的核心。在核心模式下執行的程序可以訪問系統的所有資源。它可以訪問 CPU 和主機板晶片組中硬體的物理功能。計算機架構師已將與該層的互動限制為最低限度,因為它包含所有系統程序的功能。
-
環 1 和環 2 具有比環 3 支援的不同的特權。環 1 用於與硬體互動,該硬體將執行使用攝像頭將影片流式傳輸到顯示介面的命令。環 2 中執行儲存、載入和儲存所需的命令。
-
環 3 具有使用者應用程式的訪問許可權,並且它提供最低特權。當程序需要任何資源時,它應該請求靠近核心的環 0 以訪問所需的應用程式,並將所有資訊傳遞到較低級別。
x86 處理器的保護環
系統不需要使用所有四個級別的保護環。Windows、Mac OS、Android 和 UNIX 作業系統使用分頁機制將特權模式定義為監督模式或使用者模式。環 0 和環 3 是必需的,其他級別(環 1 和環 2)是可選的。
特權環之間的互動
在瞭解環的級別如何與程序互動之前,應該熟悉兩種型別的模式。
-
監督模式可以由在系統軟體級別執行的程式碼或程序修改。系統級程序或執行緒已設定此監督標誌,而其他使用者級應用程式則無法執行此操作。此模式提供執行程序的指令,並且可以修改暫存器功能或停用中斷訊號。使用微核心的作業系統通常在監督模式下執行。
-
虛擬機器監視器模式由最近的具有 x86 配置的 CPU 支援,以提供對環 0 中硬體空間的控制。Intel VT-x 和 AMD-v 建立了一個新的環 1,它由客戶作業系統使用,並且可以在不中斷客戶使用者或主機使用者的情況下執行環 0 功能。
環 0 在監督模式下執行,不需要使用者的任何輸入互動。如果對此模式進行任何互動都可能導致安全威脅和系統錯誤的高風險。由於這些安全原因,並非所有主機使用者都可以訪問此級別。Linux 和 Windows 作業系統將環 0 和環 3 用於核心和應用程式,而具有新 CPU 配置的現代作業系統也使用了其他兩個環級別。
環的保護可以與任何處理器模式結合使用,無論是監督模式、核心模式還是虛擬機器監視器模式。硬體支援的系統使用這兩者中的一個或兩個保護層。早期版本的 Windows 95 和 Windows 98 在環的特權級別之間提供了較少的遮蔽因素,這反過來導致了更多安全錯誤。
結論
使用保護環來限制訪問和操作並啟用不同安全層次結構級別以提高容錯問題的作業系統。為每個程序新增這些額外的環層可能會降低系統的效能,並且維護這些特權級別是一項非常繁瑣的任務。處理器在各種作業系統中內建的最新進展使用保護環的組合來支援額外的安全並提高系統在網路環境中使用時的整體效能。