大家,我正在尝试学习如何使用Linux Red Hat的内核,我尝试更改内核中的一些功能:
/*
* sys_execve() executes a new program.
*/
asmlinkage int sys_execve(struct pt_regs regs)
{
int error;
char * filename;
filename = getname((char *) regs.ebx);
error = PTR_ERR(filename);
if (IS_ERR(filename))
goto out;
printk("Hello World!"); // I added this function
error = do_execve(filename, (char **) regs.ecx, (char **) regs.edx, ®s);
if (error == 0)
current->ptrace &= ~PT_DTRACE;
putname(filename);
out:
return error;
}
这个系统调用执行程序,我的问题是为什么当我在终端中并编写一些函数(例如“日期”)时我没有收到我的hello world,提前感谢您的帮助
最佳答案
printk()
应记录到 /proc/kmsg
,然后由 syslog(8)
读取并记录。
关于linux - 改变Linux内核,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5508223/