3
我写的字符设备驱动程序自己在LKM,其只需在读/写字符设备:如何在Linux内核模块
dev_open(struct inode *inode, struct file *filp);
dev_read (struct file *filp, char __user *buf, size_t count, loff_t *f_pos)
dev_write(struct file *filp, const char __user *buf, size_t count, loff_t *f_pos)
dev_release(struct inode *inode, struct file *filp)
然后在我的内核模块,我也想写的字设备,和写必须居然打电话给我的功能:
dev_write(struct file *filp, const char __user *buf, size_t count, loff_t *f_pos)
我发现一个类似link在这里SE,但这种方式也不会叫我dev_write()
函数写,但一些深层次像vfs_write()
,右?
特别是,'dev_write'必须使用'copy_from_user'类的函数来安全地从用户空间复制数据,这将阻止它从内核空间缓冲区复制数据。原则上,您可以设置一个虚拟用户空间上下文来处理,但为自己创建一个后门更容易。 – bdonlan 2012-04-22 02:56:21
@bdonlan我是linux内核编程的新手,请给我一个关于如何设置一个虚拟用户空间上下文来处理或创建一个后门的详细指令 – keywind 2012-04-22 07:23:12