Linux内核OOPS可以由用户进程引起吗?

时间:2015-03-02 13:09:54

标签: linux linux-kernel kernel embedded-linux

在我的开发环境中,我正在获得内核oops。   有人建议我的一个守护进程正在制作内核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。 :我理解内核代码在某些用户进程上下文中执行(在上下文切换之后),但是在上下文切换之后,正在执行的内核代码&不是用户进程代码。

2 个答案:

答案 0 :(得分:2)

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

但是,内核中可能存在错误,导致用户空间进程触发oops。即如果你的进程导致内核oops,内核中存在错误,或者你的进程使内核与错误的硬件交互

答案 1 :(得分:0)

只有在用户进行系统调用或存在硬件/软件中断时,才能在内核中运行任何代码。

因此内核oops将通过用户进程

发生