首页 > 解决方案 > 用户程序的内核模式

问题描述

我知道内核模式是一种特权,因此在内核模式下,所有硬件功能和指令集中的所有指令都可用。我也知道,当我们进行过程调用(比如 read())时,它又会进行系统调用。但在此之前它会陷入内核模式。我想知道如果每个用户程序都可以在内核模式下运行,因为所有过程调用和系统调用都对用户程序可用,那么内核模式将有什么用处。

标签: kernelcpu-architectureprocessorinstruction-setkernel-mode

解决方案


操作系统的硬件、文件和其他安全关键部分的问题在于,它们只能以正确的方式操作,否则操作系统会被损坏(或发生其他坏事)。

如果没有内核-用户分离,应用程序本身会提供与操作系统关键部分一起使用的代码。此代码可以是任何. 因此,格式错误的应用程序可能会损坏操作系统。

在内核-用户分离的情况下,应用程序接触硬件的唯一方法是系统调用。这允许仅运行与操作系统的安全关键部分一起使用的有限代码。应用程序无法修改该代码

因此,在正确编写处理系统调用的代码后,操作系统可以保护其关键部分免受格式错误的应用程序的影响。


推荐阅读