为什么进程无法在内核模式下运行?

时间:2015-07-25 01:22:01

标签: linux-kernel operating-system real-time

操作系统使用内核模式(特权模式)和用户模式。出于安全原因,这似乎很合理。进程无法生成任何命令,只有操作系统才能生成这些命令。 另一方面,所有上下文切换需要很长时间。在用户到内核模式之间切换,反之亦然。 操作系统的陷阱需要很长时间。

  1. 我认为操作系统为什么不能在内核模式下运行以提高性能(这可以是非常大的改进)?

  2. 在实时系统中,它的工作方式是否相同?

  3. 感谢。

2 个答案:

答案 0 :(得分:2)

  1. 存在安全性和稳定性原因,不允许用户空间进程直接访问内核空间函数。
  2. 内核代码保证,没有用户空间进程(直到使用root priveleges执行)可能会破坏操作系统。这是现代操作系统的重要特性。同样重要的是,用户空间应用程序的开发比内核模块开发要简单得多。

    如果应用程序需要比使用空间更多的性能,则可以将其代码(或部分代码)移动到内核空间中。例如,网络协议和文件系统作为内核驱动程序实现,主要是出于性能原因。

    1. 实时应用对稳定性要求更高。他们还使用系统调用。

答案 1 :(得分:0)

我认为这样做毫无意义。

1。)如果你想在内核上下文中使用内核模块API运行某些东西,那有什么问题呢?

2。)为什么你认为它会有多个处理速度?在内核和用户空间之间切换只是额外的寄存器状态保存/恢复。它运行得更快,但我认为用户甚至不会注意到它。