进程有两种模式:用户模式和管理员模式。 CPU也有不同的权限级别来运行。这两个概念是一样的吗? 在Linux内核项目中由Gary Nutt提到,要进行系统调用,进程必须首先获得监督模式。此模式是否与CPU在启动时以特权模式运行(当BIOS程序运行,例如POST或加载MBR)以及何时调用低级BIOS例程时相同?或者,当这些系统调用发生时,CPU仍在用户模式下运行?此外,如果第二个是真的,有没有办法在用户的特权模式下运行CPU ...我听到int 0x80这样做了,但是我再次怀疑它是否使操作系统以特权运行模式或CPU ......
任何与此相关的链接也将不胜感激...... 请告诉我哪个是真的?提前谢谢你......
答案 0 :(得分:0)
在具有硬件模式的计算机上,OS模式建模,并且很可能使用硬件支持,但不一定如此。问题是某些CPU没有“超级用户”模式,因此操作系统必须以某种方式模拟它。
这Wikipedia article相当不错。
<强>更新强>
严格来说,Linux中没有“管理员模式”这样的东西 - 你所拥有的是内核模式。是的,至少部分中断处理程序和系统调用将处于内核模式。
This是关于它如何发生的好文章。 this是另一个有一些好信息的SO问题。
我认为我们遇到了术语问题。有操作系统的内核模式,它在具有中断x80的x80系统中输入(很巧合)。但也有特权操作必须处于硬件管理员模式。 This是对x86中如何完成的详细描述。
答案 1 :(得分:0)
它们是相同的:“内核模式”与处理器的“管理员模式”(x86上的响铃0)相同,“用户模式”是具有最小权限的处理器模式(x86上的响铃3)。请注意,在x86上,存在两个额外的权限级别(环1和2),但Windows和Linux都不使用它们。
请参阅the article about “Rings” on Wikipedia。
由于硬件支持,即这些“特权级别”(环),实现了内存保护,进程间隔离等。例如,与内核相反,用户进程可能不会更改内存页表。