小编Rah*_*tel的帖子

用户程序的内核模式

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

kernel processor instruction-set cpu-architecture kernel-mode

2
推荐指数
1
解决办法
669
查看次数

所有系统调用都在内核模式下执行吗?

标题说明了一切:)。

但是,让我扩展一个具体案例。

到目前为止,我已经研究了所有需要与硬件进行交互的系统调用(例如 read()、write() 等),因此在执行这些系统调用(陷阱指令)之前切换到内核模式是有意义的。

据我了解,信号纯粹是软件构造,这意味着它们不是由硬件直接生成的(与中断不同)。我将它们理解为进程(内核-内核、内核-用户或用户-用户进程)之间的消息传递机制。

Kill是一个系统调用,用于向进程发送信号。它不直接与硬件交互。那么为什么我们需要昂贵地切换到内核模式来执行该系统调用呢?我还没有发现任何“特殊”系统调用在开始执行之前不会陷入内核模式的证据。因此,问题。

linux operating-system signals system-calls linux-kernel

0
推荐指数
1
解决办法
1882
查看次数