2

一个进程有两种模式:用户模式和管理员模式。CPU也有不同的特权级别来运行。这两个概念是一样的吗?在 Gary Nutt 的 Linux Kernel Projects 中提到,要进行系统调用,进程必须首先获得监督模式。这种模式是否与 CPU 在启动时以特权模式运行(当 BIOS 程序运行,例如 POST 或加载 MBR 时)以及当它调用低级 BIOS 例程时相同?或者当这些系统调用发生时,CPU 仍在用户模式下运行?另外,如果第二个是真的,有没有办法让用户在特权模式下运行 CPU ......我听说 int 0x80 这样做了,但是我再次对它是否使操作系统运行在特权模式下产生了同样的疑问模式或CPU...

任何与此相关的链接也将不胜感激......请告诉哪个是真的?先感谢您...

4

2 回答 2

0

OS 模式是在具有硬件模式的机器上建模的,并且可以很好地使用硬件支持,但不一定。问题是某些 CPU 没有“主管”模式,因此操作系统必须以某种方式对其进行模拟。

这篇维基百科文章相当不错。

更新

严格来说,Linux 中没有“主管模式”之类的东西——你拥有的是内核模式。是的,至少部分中断处理程序和系统调用将处于内核模式。

是一篇关于它如何发生的好文章。这是另一个包含一些很好信息的 SO 问题

我认为我们遇到了术语问题。有操作系统的内核模式,它通过中断 x80 进入 x80 系统(很巧合)。但也有一些特权操作必须处于硬件管理员模式。 是对如何在 x86 中完成的详细描述。

于 2011-02-26T16:35:53.727 回答
0

它们是相同的:“内核模式”与处理器的“主管模式”(x86 上的环 0)相同,而“用户模式”是处理器的具有最低权限的模式(x86 上的环 3)。请注意,在 x86 上,存在两个额外的特权级别(环 1 和 2),但 Windows 和 Linux 都没有使用它们。

请参阅Wikipedia 上有关“戒指”的文章

由于硬件支持,即这些“特权级别”(Rings),实现了内存保护、进程之间的隔离等。例如,与内核相反,用户进程可能不会更改内存页表。

于 2011-02-26T16:36:44.507 回答