答案 0 :(得分:6)
更新:
1. 0x80处理程序在2.4和2.6之间基本相同,尽管从处理程序调用的函数由2.6中的x86-64的'syscall'指令处理程序调用。
2. 0x80处理程序可以像内核的其余部分一样进行修改
3.除非删除向后兼容性,否则不会通过修改来破坏任何内容。例如,如果您有这种倾向,可以添加自己的跟踪或后门。如果您修改处理程序,则表示您将破坏libs和工具链的另一篇文章不正确。如果你破坏了调度算法,或者错误地修改了调度表,那么你就会破坏它们
3A。正如我最初发布的那样,扩展0x80服务的最佳方法是扩展系统调用处理程序
正如核心消息来源所说:
What: The kernel syscall interface Description: This interface matches much of the POSIX interface and is based on it and other Unix based interfaces. It will only be added to over time, and not have things removed from it.Note that this interface is different for every architecture that Linux supports. Please see the architecture-specific documentation for details on the syscall numbers that are to be mapped to each syscall.
arch/i386/kernel/syscall_table.S
irq_vectors
中定义.h system_call
设置set_system_gate
函数的地址,这将该条目放入中断描述符表中。 system_call
函数本身位于entry.S中,并从系统调用表中调用请求的指针。
system_call
函数内的entry.S中完成的。以更加理智的方式,您可以修改系统调用表,插入自己的函数而无需修改调度机制
答案 1 :(得分:5)