环和运行级别

环和运行级别

下面提出的问题在技术上可能不正确(误解),因此如果误解也得到解决,那就更好了。

哪个戒指级别做不同的*nix运行级别经营于?

环标签不可用。

答案1

Unix 运行级别与保护环是正交的(在“不相关”、“独立”的意义上 - 请参阅注释)。

运行级别基本上是整个操作系统的运行时配置/状态,它们描述了可用的服务(“对用户”) - 例如 SSH 访问、MTA、文件服务器、GUI。

戒指是一个硬件辅助概念允许对硬件进行更细粒度的控制(如您链接到的维基百科页面中所述)。例如,在更高的 Ring 中运行的代码可能无法执行某些 CPU 指令。

x86 架构上的 Linux 通常使用 Ring0 作为内核(包括设备驱动程序),使用 Ring3 作为用户空间应用程序(无论它们是由 root 还是其他普通或特权用户运行)。

因此,您不能真正说运行级别正在某个特定的环中运行 - 始终有1 个用户空间应用程序(至少 PID 1 - init)在环 3 和内核 (Ring0) 中运行。


1与往常一样,“始终”实际上意味着“几乎总是”,因为您可以在 Ring0 中运行“正常”程序,但在现实生活中不太可能看到这一点(除非您在 HPC 上工作)。

答案2

这两个概念完全无关。系统运行级别是指系统上运行的一组服务,例如gui桌面环境是否正在运行。环级别是 intel x86 处理器上的一种硬件保护机制,可将代码分为不同的权限级别。 Linux 仅将环 0 和环 3 分别用于内核和用户模式代码。因此,当系统处于任何运行级别时运行的所有用户模式进程都在环 3 中执行,直到它们调用内核代码,从而将 cpu 转换到环 0。

答案3

从您自己的链接:

在单片内核中,操作系统在管理模式下运行,应用程序在用户模式下运行。其他类型的操作系统,例如具有外内核或微内核的操作系统,不一定具有这种行为。

PC 世界的一些例子:

Linux 和 Windows 是两种使用管理员/用户模式的操作系统。为了执行专门的功能,用户模式代码必须执行进入管理程序模式甚至内核空间的系统调用,其中操作系统的可信代码将执行所需的任务并将其返回到用户空间。

所以你的答案是 2。主管 (0) 和用户 (1)。

相关内容