Linux Kernel OOPS 会不会是用户进程引起的?

Can Linux Kernel OOPS be cause by user process?

在我的开发环境中,我遇到了内核错误。 有人建议我的一个守护进程正在发出内核 oops。

这对我来说很有趣。根据定义 (http://en.wikipedia.org/wiki/Linux_kernel_oops) :

   "oops is a deviation from correct behavior of the Linux kernel - one which produces a certain error log "

因此异常将出现在内核代码中。 我做了更多搜索,但找不到确切答案。

有人可以澄清一下,内核 oops 是否可以由任何用户进程发出?

P.S。 : 我知道内核代码在某些用户进程上下文中执行(在上下文切换之后)但是在上下文切换之后它正在执行的内核代码而不是用户进程代码。

它们可以在内核中触发 oops。理论上这是不可能的,因为用户 space 进程不应该崩溃或强制内核进入导致内核 oops 的代码路径。

但是,内核中可能存在错误,使用户 space 进程能够触发 oops。即,如果您的进程导致内核 oops,则内核中存在错误,或者您的进程使内核与故障硬件交互

只有当用户执行系统调用或存在硬件/软件中断时,内核中 运行 的任何代码才会发生。

所以内核 oops 将通过用户进程发生