Operating system 是";“保护环”;及;“CPU模式”;同样的事情?

Operating system 是";“保护环”;及;“CPU模式”;同样的事情?,operating-system,cpu,cpu-architecture,cpu-registers,Operating System,Cpu,Cpu Architecture,Cpu Registers,我知道CPU有特殊的寄存器来跟踪CPU的运行模式。 我认为“保护环”和“CPU模式”是一样的,但是 当我读到维基百科上关于“保护环”的文章时, 我对什么是真正的“保护环”感到困惑。 我感到困惑的是维基百科文章中的以下几行: 在某些系统中,环保护可以与处理器模式(主/内核/特权/主管模式与从/非特权/用户模式)相结合。在支持两者的硬件上运行的操作系统可以使用两种保护形式,也可以只使用一种 那么,“保护环”是操作系统级抽象吗? “保护环”和“CPU模式”有什么区别? 如有任何进一步解释,我们将不胜感

我知道CPU有特殊的寄存器来跟踪CPU的运行模式。 我认为“保护环”和“CPU模式”是一样的,但是 当我读到维基百科上关于“保护环”的文章时, 我对什么是真正的“保护环”感到困惑。 我感到困惑的是维基百科文章中的以下几行:

在某些系统中,环保护可以与处理器模式(主/内核/特权/主管模式与从/非特权/用户模式)相结合。在支持两者的硬件上运行的操作系统可以使用两种保护形式,也可以只使用一种

那么,“保护环”是操作系统级抽象吗? “保护环”和“CPU模式”有什么区别? 如有任何进一步解释,我们将不胜感激

“保护环”和“CPU模式”是一回事吗

这主要取决于CPU设计者/制造商如何定义他们的术语

用于80x86;术语的定义应确保存在多种CPU模式(实模式、保护模式、长模式等),并且某些CPU模式具有非CPU模式的特权级别。然而,如果英特尔愿意,他们可以将其定义为“受保护模式有4个子模式,每个特权级别一个子模式”

对于其他CPU,术语可以定义为“主管模式”和“用户模式”(可能还有其他模式——“虚拟化模式”、“IRQ模式”等)。ARM这样定义他们的术语(但如果他们愿意的话,他们可以将他们的术语定义为“CPU只有2种模式(正常模式和虚拟机监控程序模式),其他一切都是其他的(特权级别)”

那么,“保护环”是操作系统级抽象吗?“保护环”和“CPU模式”有什么区别

一般来说,保护环的概念(将操作系统拆分为多个层并具有不同权限/特权的层)比80x86早得多(至少与20世纪60年代的multics一样古老,但可能更古老,可能可以追溯到20世纪50年代的批处理系统),80x86保护模式的设计仅仅是一个预先存在的概念的实现


但是,据我所知,没有一个现代操作系统使用这个概念(例如,“单个保护域中的所有用户代码”);相反,它们使用了更多的隔离(例如,“每个单独的进程在其自己的隔离保护域中”),这使得拥有2个以上的特权级别(一个用于控制隔离,另一个用于相互隔离的所有内容)是毫无意义的.

我认为环1/环2可能对微内核的半特权部分有用。IDK,如果任何x86微内核以这种方式使用环,或者这甚至是合理的。