保护环
操作系统在不同的层级上运行,并且每个层级都有其特权。这些特权使用保护环来表示,用于共享资源和硬件系统,这些系统管理存储在计算机系统中的资源,例如 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 在环的特权级别之间提供了较少的屏蔽因素,这反过来导致了更多安全错误。
结论
使用保护环来限制访问和操作并启用不同安全层次结构级别以提高容错问题的操作系统。为每个进程添加这些额外的环层可能会降低系统的性能,并且维护这些特权级别是一项非常繁琐的任务。处理器在各种操作系统中内置的最新进展使用保护环的组合来支持额外的安全并提高系统在网络环境中使用时的整体性能。