2. 权限级别

接下来的几课将涵盖更多理论概念。如果您更喜欢动手实践,请随时跳过这些内容,稍后再返回学习这些主题。

Apect of the Linux architecture is the separation between user space and the kernel. But why can't we combine their powers into a single layer? The reason is security and stability, which is achieved by having them operate in different modes.

内核模式与用户模式的区别

系统在两种截然不同的模式下运行:内核模式和用户模式。这种分离对于保护系统硬件和资源免受应用程序直接、不受控制的访问至关重要。

内核模式下,内核对硬件拥有完全且不受限制的访问权限;它控制一切。这是最高级别的权限。

用户模式下,应用程序对一小部分安全内存和 CPU 资源的访问权限非常有限。

当用户应用程序需要执行涉及硬件的操作时——例如从磁盘读取、通过网络发送数据或访问外设——它不能直接执行。这些操作必须由内核在内核模式下处理。这种设计可以防止出现故障或恶意的程序危害整个系统。例如,您不希望间谍软件拥有直接的硬件访问权限,因为它可能会读取您的所有数据或控制您的网络摄像头。

保护环与特权访问

这些不同的模式通常被称为权限级别保护环。想象一座带有同心墙的堡垒:最里面的区域最安全,拥有最高的权限。计算机中的保护环工作方式类似,最内层的环对应于最高的权限级别。

在标准的 x86 计算机架构上,主要有两个级别:

  • 环 0 (Ring 0): 内核运行的地方。它拥有最高级别的内核权限,可以执行任何系统指令,并被完全信任来管理硬件。这是特权访问的核心。
  • 环 3 (Ring 3): 用户模式应用程序运行的级别。它是权限最低的环,无权直接访问硬件。

这种基于环的安全模型确保了用户应用程序与关键系统组件隔离。但是,如果应用程序始终与内核处于不同的模式,它们如何执行必要的硬件操作呢?

系统调用与内核权限

用户模式和内核模式之间的桥梁是系统调用。当用户应用程序需要执行特权任务时,它会发出系统调用,请求内核代表它执行该操作。

这个过程允许应用程序临时且安全地从用户模式切换到内核模式,以执行特定的、受控的指令。任务完成后,系统会切换回用户模式。这种机制确保了应用程序可以在获得危险的、直接的特权访问硬件权限的情况下,获得它们需要的服务。

登录以保存您的学习进度

登录

练习

实践造就完美!理解用户空间、内核空间和权限级别的理论概念至关重要,但动手实践有助于巩固这些概念如何在实际的 Linux 管理中体现。以下是一些实践实验,以加强您对用户级别操作如何与底层系统交互的理解:

  1. 使用 useradd, usermod 和 userdel 管理 Linux 用户账户 - 练习创建、修改和删除用户账户,这直接关系到管理在用户空间中运行并需要内核交互以执行特权操作的实体。
  2. 管理 Linux 中的文件和目录权限 - 学习控制对文件和目录的访问权限,这是一个核心安全概念,它依赖于内核根据用户权限来强制执行权限。
  3. 管理和监控 Linux 进程 - 探索如何与进程交互和监控进程,进程是向内核发出系统调用以进行资源管理和执行的用户空间应用程序。

这些实验将帮助您应用用户与 Linux 系统交互的概念,其中内核在管理资源和强制执行权限方面的作用至关重要,并增强您对基本 Linux 管理任务的信心。

测验

哪个环编号拥有最高的权限?