中断描述符表(IDT)修改

时间:2011-01-11 05:06:55

标签: linux linux-kernel interrupt system-calls interrupt-handling

在linux内核的控制流程中,发现控件移动到具有中断位置的IDT(例如:0x80系统调用)。然后控制移动到适当的系统调用。另请阅读IDT仅在启动时初始化。

我想了解更多关于真实内核的IDT信息,比如它的位置。还想知道,在任何其他时间它被修改了吗?

请帮忙。

2 个答案:

答案 0 :(得分:5)

写一个rooktit,是吗?

无论如何,您可以使用LIDT / SIDT x86指令直接查找和操作IDT。 你也可以找到关于IDT挂钩的一些关于这个主题的好phrack articles的信息。

答案 1 :(得分:1)

在Linux中,可以在include/linux/interrupt.h中找到IRQ处理函数的声明。可以在kernel/irq/中找到通用处理代码,在arch /目录下找到特定于平台的代码 - 查看例如arch/x86/kernel/irq.c和该目录中的其他irq * .c文件。

您应该阅读kernel / irc / * .c文件中的注释,以了解Linux中有关IRQ的锁定规则和机制。请注意,其他操作系统可以并且将具有不同的锁定规则。祝你好运!