【问题标题】:CPU with more than 2 modes具有 2 种以上模式的 CPU
【发布时间】:2018-06-29 15:45:07
【问题描述】:

我是“操作系统”的新手,请不要抨击我。

我研究了 CPU 的用户模式和内核模式。我刚刚发现某些 CPU 在用户模式和内核模式之间具有中间模式。 但为什么这是必要的?始终将内核模式用于特权指令是否危险?或者是一个prestations的问题?

【问题讨论】:

  • 什么CPU?您必须先选择一种架构。
  • 阅读 protection rings 上的维基页面。 Linux 不会在 x86 上使用所有这些(只有 0 个用于内核,3 个用于用户模式)。另请阅读有关x86-64 的更多信息。阅读Operating Systems: Three Easy Pieces - 可免费下载。见OSDEV。你的问题在这里是题外话(与一些minimal reproducible example无关)
  • 顺便说一句,prestation 不是一个常见的英文单词(而是一个法语单词)。请解释你的最后一句话。
  • 另请阅读 System Management Mode 上的维基页面 - 主要用于 BIOS。阅读更多关于Intel Management Engine
  • 看来你对上一个问题没有理解my answer(你基本上必须在内核模式下才能运行特权指令,它们不会在用户模式下运行,否则它们不会特权)。如果有什么不清楚的地方,请评论我的答案,我会再次改进。

标签: linux-kernel operating-system kernel


【解决方案1】:

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

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

命令解释器在比用户模式高一级的“管理员模式”下运行。然后保护它免受用户模式访问的影响。同时,命令解释器中的任何错误都不会导致系统崩溃。

调试器也存在于它正在调试的进程中的超级用户模式下。

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

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

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

理想情况下,操作系统会尽可能少地在内核模式下运行。当您的操作系统又快又脏且功能很少时,它们只会使用内核模式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-18
    • 2014-10-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多