CPU 超过 2 种模式

CPU with more than 2 modes

我是 "Operating Systems" 的新手,请不要喷我。

我研究了CPU的用户态和内核态。我刚刚发现某些 CPU 在用户模式和内核模式之间具有中间模式。 但为什么这是必要的?始终对特权指令使用内核模式是否危险?还是预定的问题?

VAX/VMS系统是一个使用四种模式的系统。 VMS 的工作方式与 Eunuchs 完全不同。在 Eunuchs 变体中,您有一个 shell 过程。每次你 运行 一个程序,你都会创建一个新进程。事实上,Eunuchs变体中的shell只是一个程序,没有什么特别之处。

在 VMS 中,命令解释器与 运行ning 程序存在于同一进程中。程序可以(并且经常)与命令解释器交互。当您的程序结束时,命令解释器会收回控制权。 运行 另一个程序和你保持在同一个进程中,并加载了一个新的可执行文件。

命令解释器运行在"supervisor mode"中,比用户模式高一级。然后保护它免受用户模式访问的干扰。同时,命令解释器的任何错误都不会导致系统崩溃。

调试器在它正在调试的进程中也以管理员模式存在。

对于在 Windoze 和 Eunuchs 环境下长大的人,您无法理解他们的文件处理方式有多么原始。 VMS 与大多数真正的非玩具操作系统一样,具有不同的文件结构。它支持像 Eunuchs 和 Windows 这样的流文件。但是,它也支持顺序文件结构、固定记录文件结构和按键索引的文件。用于在执行模式下管理此 运行 的系统服务(在主管之上和内核之下)。同样,这允许拥有不会使整个操作系统崩溃的受保护系统服务。

我还应该提到非玩具操作系统支持文件版本。如果您打开一个文档,对其进行编辑并保存,则会创建一个同名文件的新版本。如果您犯了一个错误或错误,您可以返回并修复它。

您的问题的一般答案是,这些其他模式为操作系统提供了向服务提供接口的方式,这些服务在其他方面受到保护,不会受到用户干扰,在出现问题时不会影响整个操作系统。

理想情况下,操作系统会在内核模式下做尽可能少的事情。当你的操作系统又快又脏而且做的很少时,它们只会使用内核模式。