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