我的问题涉及内核空间编程。假设我们有 2 个处理程序: - 硬件中断 - /proc 文件
是否有可能在执行硬件中断处理程序时通过 /proc 处理程序中断它,因为用户将某些内容写入 /proc 文件?
在这种情况下,两个处理程序的优先级是什么?
让我试着回答你的问题或让你的问题更清楚。
硬件处理程序在中断上下文中运行。当然,一个硬件处理程序分为两部分:一个较小但关键的部分,在中断上下文中执行,而另一部分较大,可以延迟并在软中断上下文中执行。
而“/proc 文件处理程序”(您称之为)在用户进程上下文中执行。当您访问 /proc 文件时,将触发并执行处理程序。
在硬件中断上下文中,有时,本地硬件中断被禁用。在软中断上下文中,有时,BH 被禁用或内核抢占被禁用。也就是说,在中断上下文中,有时调度不会发生。所以基于此,我可以说“/proc 文件处理程序”的优先级低于“中断处理程序”。
至于问题“是否有可能在执行硬件中断处理程序时通过 /proc 处理程序中断它,因为用户将某些内容写入 /proc 文件?”。在当前的内核中,这是不可能的。我认为如果你愿意,它不值得黑客攻击,因为它没有任何意义。